2.スクリプトの使い方


Mitaka Plusでは、メニューやツールバー、スクリーンメニュウからの操作、キーやジョイスティックボタンからの操作など、ほとんどすべての動作をスクリプトの実行によって実現しています。 スクリプトの使い方を習得することで、これらの操作を自由にカスタマイズすることができるようになります。またスクリプトによる状態の保存や復帰、自動番組の作成なども可能になります。

はじめは数多くのコマンドや決まり事に大変そうだと感じるかも知れませんが、興味のある部分から少しずつ習得していけば難しいことはありません。Mitaka Plusのスクリプトでは、簡単な動作のカスタマイズから、一般のプログラム言語のような高度な機能の実現も可能です。ぜひ様々な応用にチャレンジしてみましょう。

スクリプト動作の確認

まずはMitaka Plusの機能がスクリプトによってどのように実現されているかを確認してみましょう。

Mitaka Plusを起動し、スクリプト編集ウィンドウ(スクリプトエディタ)が表示されていることを確認します。もし表示されていなければ、メニューから[ツール]->[スクリプトエディタ]を選択します。

以後の操作のためにスクリプトエディタを空にしましょう。スクリプトエディタのメニューから[ファイル]->[新規作成]を選ぶか、ツールバーの[新規作成]ボタンをクリックしてスクリプトエディタを空にします。もし編集中のスクリプトがあれば保存するかどうか聞かれるので、保存または破棄を選択します。

ツールバーにある赤丸アイコンの[記録]ボタンをクリックします。以後、もう一度このボタンを押して解除するまでのあいだ、実行されるすべてのスクリプトがスクリプトエディタ内に記録されていきます。

このまま、Mitaka Plusで様々な操作を試してみてください。例えば3Dウィンドウで[S]キーを押して離陸したり、メニューから[表示]->[星座]->[星座線]を選択して星座線の表示を切り替えたりしてみましょう。これらの操作の結果として実行されるスクリプトが、スクリプトエディタに記録されていきます。なお、マウスやキー操作などによる視点の操作(見まわしやズームなど)は記録されません。視点の操作をすべて記録すると、量が多く煩雑になってしまうからです。現在の視点情報を記録するにはスクリプトエディタのツールバーからカメラアイコンの[視点の状態を保存]をクリックします。

スクリプトが記録される様子を確認したら、再びツールバーの[記録]ボタンをクリックしてスクリプトの記録を解除します。

以上で、Mitaka Plusがスクリプトによって操作されている様子が確認できました。それぞれのスクリプトの意味についてはスクリプトについて、およびスクリプトリファレンスを参照してください。

スクリプトの実行

簡単なスクリプトの実行やテスト、値の確認には、スクリプト出力ウィンドウを利用します。スクリプト出力ウィンドウが表示されていない場合は、メニューから[ツール]->[スクリプト出力]を選択します。

スクリプト出力ウィンドウは上下に分かれており、広い上部はスクリプトの実行結果を表示するエリア、下部ではスクリプトを入力して実行できるようになっています。

下部のスクリプト入力エリアに、Stars:toggle(); と入力して改行キー(または横の[実行]ボタン)を押してみましょう。表示されていた恒星が表示(または消えていた恒星が表示)されるのがわかります。このように、このスクリプト入力エリアではスクリプトを入力してすぐに試してみることができます。入力されたスクリプトは上の実行結果エリアに表示されます。もし入力ミスがあれば、エラーメッセージがここに表示されます。

スクリプト入力エリアでカーソルキーの[↑]を押すと、前回実行したスクリプトの履歴を呼び出すことができます。このまま改行キーを押して再び同じスクリプトを実行することもできますし、一部修正して実行する場合にも便利です。

スクリプト出力ウィンドウではスクリプト内の値を確認するためにも利用できます。例えば恒星の表示状態を表す Stars.visible プロパティの値を表示したい場合は、スクリプト入力エリアに print(Stars.visible); と入力して実行します。実行結果エリアに今実行したスクリプトに続いてプロパティの値が表示されます。このようにスクリプトのprint()関数は、プロパティや変数の値を確認するのに便利です。

スクリプトファイルの作成

複数行に渡るような長いスクリプトは、スクリプトファイルとして保存しておき、必要に応じて呼び出すと便利です。スクリプトエディタはこのようなスクリプトファイルの編集に利用できます。

スクリプトエディタの編集エリアでは、通常のテキストエディタと同じようにスクリプトをファイルから読み込んだり、編集して保存したりすることができます。保存の際には拡張子".lua"を付けて保存するようにしてください。通常、スクリプトファイルはscriptsフォルダ内に置きます。

スクリプトエディタのツールバーにある[実行]ボタンをクリックすると、編集エリア内のスクリプトが実行され、実行結果またはエラーがスクリプト出力ウィンドウの実行結果エリアに表示されます。

スクリプトファイルとして保存したスクリプトは、dofile("scripts/sample.lua"); として実行することができます。

状態の保存と復帰

Mitaka Plusの状態を、スクリプトとして実行可能な形で取得することができます。このスクリプトは、状態を表す各種プロパティへの値設定が羅列された形式になっています。 つまり、このスクリプトをスクリプトファイルとして保存しておけば、好きなときに実行して保存したときの状態に復帰することができるわけです。また、スクリプトの内容を編集することで、いつもスクリプトを実行した日の夜8時に時刻設定をする、といったことも可能です。

実際に状態の保存と復帰を試してみましょう。まず、Mitaka Plusを操作して保存したい状態にします。次に、スクリプトエディタを開き、ツールバーの[新規作成]ボタンをクリックして編集エリアを空にします。 スクリプトエディタのツールバーにある[状態の保存]ボタンをクリックすると、編集エリアに現在のMitaka Plusの状態がスクリプトとして記録されます。このままでファイルに保存すれば、いつでもこのスクリプトファイルを呼び出してMitaka Plusを現在の状態に復帰することができます。 ここで、Time:setTime(...);と日時が設定されている行を、Time:setCurrent(); Time.localHour=20; Time.localMin=0; Time.localSec=0; と書き換えます。これで、スクリプトを実行した日の夜8時に時刻設定されるようになりました。

なお、状態を記録したファイルもスクリプトファイルの一種ですが、整理のために通常stateフォルダ内に置きます。

デフォルトスクリプトについて

Mitaka Plusは、起動時に自動的にscriptsフォルダ内のinit.luaスクリプトファイルを実行します。デフォルトでは、起動時にinit.luaスクリプトファイルからメニューやツールバーを定義するgui_jp.luaファイル、スクリーンメニューを定義するscreenmenu_jp.luaファイル、ショートカットを定義するshortcuts_jp.luaファイルを読み込んで実行しています(ファイル名は言語により変わります)。続いて、描画品質や操作スタイルなどをオプション設定ダイアログで設定・保存したスクリプトファイル、scripts/option.luaを読み込んで実行します。最後に、初期状態としてstates/init.luaファイルを読み込んで実行します。初期状態を設定したい場合は、このstates/init.luaスクリプトファイルを編集すると良いでしょう。