Bladeのスクリプトが難しいと感じる人!開始1分で一番基礎となるスクリプト書けますよ!
基本ルールさえ分かればかなり簡単なスクリプトなので、ぜひこのページの冒頭で説明していることを自分で実践してみてください。
さて、皆さんはBladeスクリプトはスクリプトウィンドウの●(コマンド録画ボタン)を有効にしてからBladeを操作したことありますか?
事前にシーンデータを読み込んだ上で、
●を押下してから、perspective ウィンドウ内のオブジェクトを選択してみてください。
スクリプトウィンドウ内に操作履歴がスクリプトとして自動的に書かれますよね?
難しいと感じていた人でも、非常に簡単にコーディングできましたw
Bladeでスクリプト書こうと思えば●を押す。
たったこれだけを知っていればいいのです。
■出来上がったスクリプト
[cpp]
select "object_name";
[/cpp]
しかし、出来上がったスクリプト見てもらうとわかるのですが一切変数が書かれていません。
Bladeスクリプトの5つの掟がわかっていないと汎用的なスクリプトを書けないので紹介していきます。
・掟その1:C++がベース
・掟その2:変数宣言が必要(特殊ルールあり)
・掟その3:宣言できる一般的な型と定義の仕方(特殊ルールあり)
・掟その4:-の取り扱い方
・掟その5:戻り値の取得
■掟その1:C++がベース
[cpp]
select "LFWT"; // OK
select "LFWT" // syntax error
[/cpp]
この例ではselectコマンドを使って”LFWT”という名称のオブジェクトを選択しています。
このオブジェクトが何であるかはわかっていません。
この例で重要なのは 『;』 を抜かさないようにしましょうということです。
特にpython,rubyの使い手の方々は要注意です。
■掟その2:変数宣言が必要(特殊ルールあり)
[cpp]
string $str; // OK
string str; // syntax error
[/cpp]
ここで注意したいのは変数宣言をする時に必ず『$』が必要になることです。
C言語をやっている人がはまりやすいエラーです。
■掟その3:宣言できる一般的な型と定義の仕方(特殊ルールあり)
[cpp]
int $num = 0;
string $name = "abc";
array $arr[] = [[,]];
vector $vec = <0,0,0>;
[/cpp]
array型の定義は、[] ではなく [[,]] のように二重に重ねないと定義できません。
■掟その4:-の取り扱い方
[cpp]
int $a,$MAX = 10;
// first pattern
$a–; // NG
$a -= 1; // OK
// second pattern
$a = $MAX -1; // NG
$a = $MAX – 1; // OK
for($i = 0; $i < $MAX -1; $i++) // NG
[/cpp]
fisrt pattern で示したように、C++がベースなのに 『—』 といった演算子は利用できません。『++』 も同様に使えません。
理由はわかりません(^^;
second pattern で書いてあることは、ちょっとでもC言語の書き方を知っている人からしたら不思議でたまりませんよねぇ。。。
これはBladeの引数のオプションの指定の仕方が -onMod のように 『-』 を使う仕様になっているためです。
Bladeにおいて 『-』 という記号は、直後に演算子が来ない限りハイフンとして優遇されているということなのでしょう。
結果として、『-』 の後ろにスペースを入れないとハイフンとして取り扱ってしまい、エラーが返ってきます。
要は仕様によるバグですよね。
for文でよく引っかかるので注意しましょう。
■掟その5:戻り値の取得
[cpp]
string $name = "object_name";
string $obj = getModule $name; // NG
string $obj = `getModule $name`; // OK
[/cpp]
この戻り値の取得が一番の曲者、というかこれを理解していないと何もできないです。
いわゆるget関数がBladeにも備わっています。
ここではgetModuleという関数を使っています。
これは引数に与えられた文字列と同じ名称のオブジェクトをstring型で返してくれる関数です。
が、get関数という以上は戻り値を取得する必要があります。
C,pythonのノリでは戻り値が取得できません。
Bladeでは、get関数(引数込みで)を『`』で囲む必要があります。
以上、5つの掟を理解できた人はBladeの知識として一般的なものは手に入れています。
あとは引数の取り方とHelpの読み方を理解すれば誰にでも使えます。
引数の取り方は次回に書きますのでお楽しみに。