07) Scriptを作ろう
◎何から始める?
CS Help を見ると Script → Sript Tutorial と言う項目がちゃんと用意されています。
そこの“My First Script”と“My Second Script”をじっくり読んで貰うと・・・。
と言いたいのですが、言われるまま作業をして「はい理解できましたね」ってのはなかなか無いですよねぇ。(自分もあの形式のチュートリアルは嫌いw)
でも、必要な事は一通り書いてあるので一度は読む事をお勧めします。
幸いな事にOblivionのModは暗号化されておらず、必要な情報は全て開示されてるに等しいです。自分が使ってるModで面白い動きをしてるなら、そのModをCSで開いてどういう処理方法で実現しているかを調べてみると良いかも。
自分の場合は上に書いたようにチュートリアルはすっ飛ばしていきなりModを見てました。
やりたい事に近いModをCSで開き、前に書いた方法で何をされているのか見当をつけ、
そこの記述がどう弄られてるのかを調べる事で勉強してます。
Scriptの場合も同様で、使用されているScriptを開きどういう処理されてるかを眺め、
知らないコマンドの類をCS Helpのキーワードで検索したり、TES Construction Set Wikiで調べて意味を把握すると。
OBSEのコマンドはCSHelpには乗ってませんが、Wikiの方には詳細に書かれています。場合によっては参考になるサンプルも載ってるので活用すると便利。
ここで便利なのが“高機能なテキストエディター”による色分け表示。
(一番最初の項目参照)
変数の宣言やコマンド・コメントなどが色分けされて表示されるので、文面の意味を把握しやすくなります。
◎マメ知識
- 変数がよくわからん!!
とりあえず、CS Help のキーワードで一番末尾の方に変数に関して説明してる項目が幾つか有るので読んでみてくださいw
Script上で変数を使用する場合、その変数はどういう形式の物かを記述する必要があります。
(Short とか Ref とか)型宣言という言い方もされます。
宣言の無い変数が存在するとScriptをSaveした時にエラーメッセージが出てSaveできません。
- ;(半角セミコロン)てなにさ?
半角セミコロンの後に書かれてる文面はコメント文として判断され、Scriptの実行からは無視されます。
メモ書き等を使えScriptの理解を補助する手段に使えます。
親切な作者は「ここから先はこういう事してる」とか、「これは何に使う変数」といったメモを書いてくれてます。
- 変数(X)に値を代入する
Set X to 値 ; X に値 が代入される。
- Begin には End、if には Endif が必ずペアとして存在。
数が合わないとエラーになる。EndとEndifを間違えないように。
- if の 後に書くべき記号は?
等しい時 : == 超える : > 以上 : >= 以下 : <= 未満 : < 同じで無い : !=
- 複数の条件を比較したい
and の場合は &&、or の場合は || で 2つの条件を繋ぐ。
(例えば if A == 1 && B != 1 など)
- 順番に条件を比較したい(パターン1)
if 条件1
何かの処理1
if 条件2
何かの処理2
endif
endif
条件1が成立すると「何かの処理1」を実行。
その後、条件2をチェックし条件2も満足すれば「何かの処理2」が実行される。
( if 条件1 && 条件2 と似た感じだが、途中で何かの処理1を挟める)
条件1が成立していなければ、何もせずに一番下のendifへ移動する。
- 順番に条件を比較したい(パターン2)
if 条件1
何かの処理1
elseif 条件2
何かの処理2
else
何かの処理3
endif
条件1をチェックし成立していれば「何かの処理1」。
条件1が成立していなければ条件2がチェックされ、成立していれば「何かの処理2」。
条件1も条件2も成立していなければ「何かの処理3」が実行される。
elseif は 複数入れる事も可能だが、else は1つのみ。
- 記述の省略
コンソールコマンドと同じくコマンドを省略して書く事が可能。
(ModActorValue を ModAV など)
大文字と小文字は区別されない。
(大文字を混ぜる方が見た目で把握し易いか)
if 条件 == 1 の場合は if 条件 と言う記述でもOK
とりあえず思いつくまま書いてみた。
| 固定リンク
「Oblivion/Mod」カテゴリの記事
- 03) CSを弄ろう(その1)(2008.01.12)
- 11) 具体例に入る前に(2008.01.17)
- 10)Scriptを作ろう(補足(2008.01.15)
- 09) Scriptを動かす(その2)(2008.01.14)
- 08) Scriptを動かす(その1)(2008.01.14)


コメント