自動型変換

自動変換

Maya の自動型変換により、明示的に指定しなくても型を変換することができます。指定した型が適切でなかった場合も、データ型が自動変換されます。

このため、予期せぬときに自動的に型が変換されてしまい、問題が発生することがあります。型変換の規則を理解しておけば、このようなタイプのエラーを修正できるようになります。

自動変換の規則を表にまとめると次のようになります。

演算 演算結果のデータ型
int 演算子 float float
float 演算子 int float
int 演算子 vector vector
vector 演算子 float vector
vector 演算子 matrix vector
matrix 演算子 vector matrix
matrix 演算子 string string
string 演算子 int string
$var1 = 7 + 1.3; // Type: float (8.3)
$var2 = 7.9 + 2; // Type: float (9.9)
$var3 = 2 + <<4, 5, 6>>; // Type: vector <<6, 7, 8>>
$var4 = 0007 + " Lives!"; // Type: string ("7 Lives!")

最後の例では、0007 は値 7 の int で文字列に変換され、「Lives!」と連結されます。結果は文字列になり、暗示的に var4 が値「7 Lives!」の文字列型になると宣言します。

明示的な変換(キャスト)

明示的に型変換をする方法には 2 種類あります。値の前にカッコで囲んで型を指定するのが最も一般的な方法です。例:

$Z = (vector) "<<1, 2, 3>>"; // Type: vector (<<1, 2, 3>>)
$cools = (float) 7;         // Type: float (7)
$ools = (string) 47.554;    // Type: string ("47.554")

また、型に続けてカッコで囲んだ値を指定して、明示的に型変換することも可能です。例:

$ly = vector("<<1, 2, 3>>"); // Type: vector (<<1, 2, 3>>)
$ooly = int(3.67); // Type: int (3)