2014年9月22日月曜日

Maxscript その13 「リスナーへのアウトプット print format」

「リファレンス>値>値の共通プロパティ、演算子、メソッド」

以降、エディターで記述し、その実行結果。実行は「CTRL+E」もしくは「ツール>評価」で。
print、formatは主にデバッグなどでよく用いられる事が多いようだ。リスナーに必要な情報を表示して、動作確認などで使われる事が多い。また、テキストファイルに出力する際にもprint、formatを用いる。
-----------------------------------------------------------------
リスナーに情報を表示する print <value> 1つの値をリスナーに出力する

※リスナーへの出力が2つされると思うのですが、あまり気にしないように。
(1つが実行結果で、1つが式の戻り値だと思われます)
-----
print 3

-----
a = "Yamagishi"
print a+" Tatsuya"


-----
print は表示した値をそのまま戻り値として返すようだ。

a = "yamagishi"
b = print a

なので、リスナーにアウトプットしつつbに代入する事が出来るようだ。結果大量の山岸をリスナーにアウトプットする事が出来る。ウザイ

-----------------------------------------------------------------
1~複数の値をリスナーに表示する format <format_string> <value>
---------------
a = 10
b = 20
format "a:% b:%\n" a b


formatは <format_string>部分の文字列を表示する。文字列内に%があると、%が呼び出されるごとに<value>の値が代入される。上のスクリプトの場合は最初の%でa、次の%にbの値が代入されて表示される。また、改行をしないため改行させたい場合は\n (改行)を用いる。

---------------
a = 10
b = 20
format "a:%\t\tb:%\n" a b --見づらいけどaとbの間にタブ2つ空けたい場合はこうなる

---------------
%の数が値の数より多いとランタイムエラー
(ここで、シーンに球体一個作った。)

obj = $Sphere001
format "name:% pos:% radius:%\n" obj.name obj.pos


---------------
%の数より渡す値が多いのは許される。

obj = $Sphere001
format "name:% pos:% radius:%\n" (obj.name)(obj.pos)(obj.radius)(obj.segs)

---------------
obj = $Sphere001
format "name:% pos:% radius:% segs:%\n" obj.name obj.pos obj.radius obj.segs

---------------
obj = $Sphere001
format "Name:% Class:% \n" obj.name (classof obj)


---------------
printと違い、formatの戻り値はokなので、

a = "yamagishi"
b = format "%\n" a

とした場合、bの中身は「ok」となるようだ。

0 件のコメント:

コメントを投稿