では、Celestiaの起動時に実行されるstart.celを見てみましょう。
実際の動作に関わる部分だけ抜粋します。
{
# 中略
preloadtex { object "Sol/Earth" }
preloadtex { object "Sol/Earth/Moon" }
renderflags {set "automag"}
renderflags {set "cloudmaps"}
renderflags {set "eclipseshadows"}
renderflags {set "galaxies"}
renderflags {set "nebulae"}
renderflags {set "markers"}
renderflags {set "nightmaps"}
select {object "Sol"}
goto {time 3.0 distance 30}
wait {duration 3.0}
select {object "Sol/Earth"}
follow {}
goto {time 3.0 distance 6.0}
wait {duration 2.0}
print {text "Welcome to Celestia!" row -3 column 1 duration 3}
wait {duration 3.0}
# 中略
}
では上から順番に見てみましょう。
preloadtexコマンドでは事前にテクスチャを読み込む事ができ、これによって実際に天体のテクスチャを表示する段階で、スムーズにその天体を表示できます。
renderflagsコマンドでは表示するオプションを設定できます。
ここでは引数setで自動限界等級調整、雲テクスチャ、食の影、銀河表示、星雲表示、マーキング表示、夜テクスチャ表示をONにしています。
なお、これらのコマンドは
renderflags {set "automag|cloudmaps|eclipseshadows|galaxies|nebulae|markers|nightmaps"}
とひとまとめに書く事もできます。
次に太陽に移動するコマンドです。selectコマンドで太陽を選択し、gotoコマンドで太陽に向かいます。
gotoコマンドでは引数timeに3.0、とdistanceに30が設定されており、3秒間で太陽の直径の30倍(太陽の表面より29倍)の距離まで近づきます。
なおwaitコマンドで直前のgotoコマンドと同じだけ引数durationの値を設定しています。
gotoコマンドなどの動作を伴うコマンドでは、次の動作コマンドとの間に動作をする時間だけwaitコマンドを挟まないと動作が起こりません。
次に地球に移動します。
地球を選択し、followコマンドで追尾します。そしてgotoコマンドで3秒で地球の6倍(表面より5倍)の距離まで近づきます。
次にprintコマンドで"Welcome to Celestia!"を左下から上に3行、右に1文字ずらして3秒間表示しています、
スクリプトの時系列とコマンドの関係は以下の通りです。
動作系コマンドとwaitコマンドを色分けしています。
0:00 preloadtex
renderflags
select { object "Sol" }
goto {time 3.0 distance 30 }
wait {duration 3.0}
0:03 select {object "Sol/Earth"}
follow {}
goto {time 3.0 distance 6.0}
wait {duration 2.0}
0:05 print { text "Welcome to Celestia!" row -3 column 1 duration 3 }
wait { duration 3.0 }
0:08 # スクリプト終了
gotoとgotoの間に、最初のgotoの継続時間だけwaitコマンドが実行されているのが分かります。ここで挙げた他にもコマンドはたくさんあります。ここより参照してください。
<< Lesson 3 - 時間の速さを変える 各コマンド解説 >>