[3dsMax]
スクリプトでオブジェクト名を使うときの注意点

例:hako001という名前のオブジェクトが存在するとき、それをスクリプトで選択したい場合

taisyou = "$'" + "hako" + "001" + "'"
select taisyou

↑の記述だとエラーになる。

select $’hako001’と記述すれば、ちゃんと動作するのに、
なぜ変数taisyouに入った$’hako001’だとエラーになってしまうのか。

●select関数を使う際の決まりが守られていないからエラーになる。

select関数の引数は、ノード値でなければならないのに、
↑の例だと変数taisyouの中身は、String値(文字列値)になっている。
なのでエラーが発生する。

●エラーの解決方法

文字列値だと駄目なら、ノード値に変換すればいいじゃない。

文字列をノード値に変換するには、execute関数を使う。

taisyou = "$'" + "hako" + "001" + "'"
taisyou = execute(taisyou)
select taisyou

※taisyou = execute(taisyou)の部分は、
 taisyou = execute taisyouと記述しても問題ない。

データ型を文字列値からノード値へ変換したので、
問題なくオブジェクトhako001を選択できる。

●データ型を確認する方法

classOf関数を使ってデータ型を調べる。

taisyou = "$'" + "hako" + "001" + "'"
classOf taisyou

実行すると、↑の変数taisyouの中身は、string(文字列値)になっているのが確認できる。

●数値と文字の違いについて

数値の場合:1+1=2
文字の場合:1+1=11

↓execute関数を使うと、文字列値の1+1が2になる。
"1" + "1"          --←結果は11になる。
execute "1+1"      --←結果は2になる。

●用語について

・引数(ひきすう)って何?
 関数に渡す値の事。

・関数って何?
 特定の処理に名前をつけて、再利用しやすくしたもの。
 値を渡せば、処理され結果が返ってくる。
 値を渡さず、処理を行う関数もある。

 select関数は、ノード値を渡すと、
 そのノードを選択する処理をしてくれる。

・ノードって何?
 オブジェクトの事

・データ型って何?
 値の種類の事。
 数値、文字列値、カラー値、その他色々
 3ds Max 2017 ヘルプ 基本的なデータ値

●参考文献へのリンク

↓select関数について
3ds Max 2017 ヘルプ ノードの共通プロパティ、演算子、メソッド
ノード選択のメソッド

↓classOf関数について
3ds Max 2017 ヘルプ 値の共通プロパティ、演算子、メソッド

↓execute関数について
3ds Max 2017 ヘルプ 文字列値

広告

コメントを残す

メールアドレスが公開されることはありません。

スパム対策用の計算式と画像認証です。↓の欄を入力しないとコメントが出来ません。 *

*