randomize

2016/06/26

Killzone KidのArmaスクリプト講座:スクリプトの始め方

Arma 3 Alphaは最近0.54にアップデートされ、新しく追加された機能の一つが…

Added: improved public debug console

この機能によってスクリプティング、デバッグがとても簡単になった。コンソールはエディット中にミッションをプレビューしたとき、Escを押すと開ける。これによりミッションの変数やオブジェクトを素早く変更出来るようになった。

動画では"hello world"とヒントとして表示する簡単なスクリプトの作り方と使い方を示している。ヒントは手っ取り早く返り値を確認したい時に有効だ。 hint命令は文字列を引数として採る。文字列ではない値、定義未定義、文字列やそうじゃないもの、nullやその他を表示したいときはhint format [“%1″,(値)];を使おう。
_somevariable = 123;
hint format ["%1", _somevariable]; //"123"を表示
_somevariable = objNull;
hint format ["%1", _somevariable]; //"<null-object>"を表示
_somevariable = compile "a = b";
hint format ["%1", _somevariable]; //"{a = b}"を表示
_somevariable = call {};
hint format ["%1", _somevariable]; //"<null>"を表示
_somevariable = nil;
hint format ["%1", _somevariable]; //"any"を表示
ヒントは数秒間表示された後、消える。また、連続してhint命令をした時、それ以前に表示されていたヒントは上書きされる。よって複数回に渡って出力が必要なら、diag_log命令を – diag_log format [“%1″,(値)];のように使おう。diag_logは.rpt (reportの略?)ファイルに出力され、毎回diag_log命令のたびに新しい行に書かれる。ファイルは(注:デフォルトでは)C:\Users\[ユーザー名]\AppData\Local\Arma 3\arma3_[更新日時].rptに置いてある。
_somevariable = call {};
diag_log format ["%1", _somevariable];
_somevariable = nil;
diag_log format ["%1", _somevariable];
//.rptの出力結果:
//"<null>"
//"any"
デバッグのためにformathintdiag_logで使うのは大変重要だ。返り値がany<null>でも可視化されるためだ。 <null>は値がnullであることを示し、先の例のcallは何も返さなかったためにnullを返した。anyは値が未定義であり、いかなる値の形にも成りうることを示す。例でnilを代入しリセットしたためにanyが返された。.rptファイルはスクリプト構文のエラーも示してくれる。スクリプトがエラーに直面した場合、スクリプトは中断される可能性があるため、エラーがないか確認する必要がある。次にちょっとおもしろいことをしてみよう。
//空中で泳がせる
player playMove "AbswPercMrunSnonWnonDf";

//プレイヤーを非表示に
player hideObject true;

//オブジェクトすり抜け
null = [] spawn {
    while {true} do {
    {
        player disableCollisionWith _x;
        } forEach ((position player) nearObjects 100);
    sleep 1;
    };
};
(注:現在では様々な仕様変更により一部KK氏が意図した挙動を示しません)
ところで、上の例に使われているsleepをデバッグコンソールで使ってみたいと思ったなら、spawnを使ってこんな感じにnull = [] spawn {…スクリプト…};カプセル化する必要がある。理由としてデバッグコンソールはcallを使っているため、処理の遅延は使えないのだ。詳細はまた後で紹介しよう。

Enjoy,
KK

KK's blog – ArmA Scripting Tutorials: Getting Started by Killzone Kid
Translated by POLPOX

補足


Eden Editorにおいては、.rptファイルは画面左上のメニューから素早くアクセスすることができます。
Open Log Folderを選択するとプロファイルのフォルダが表示され、.rptファイルがズラーッと並んでいるはずです。
.rptファイルは「arma3_YYYY-MM-DD_HH-MM-SS.rpt」の形で保存されているので、コンソールなり何なりでdiag_logを実行した後、最新の日付の物を探して開いてみましょう。

0 件のコメント :

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。