トップページ > .CELスクリプトガイド > .CELスクリプトレッスン Lesson 4

start.celを読み解く


では、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コマンドでは引数time3.0、distance30が設定されており、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	# スクリプト終了
gotogotoの間に、最初のgotoの継続時間だけwaitコマンドが実行されているのが分かります。
また地球への移動中にメッセージが表示されるのも読み取れます。

ここで挙げた他にもコマンドはたくさんあります。ここより参照してください。

<< Lesson 3 - 時間の速さを変える 各コマンド解説 >>
トップページ > .CELスクリプトガイド > .CELスクリプトレッスン Lesson 4