トップページ > .CELXスクリプトガイド > .CELXスクリプトの作成方法

.CELXスクリプトの作成方法


オブジェクトの種類


.CELXスクリプトでは様々なオブジェクトがあります。これらを用いてスクリプトを作成します。
Celestiaの起動直後は、Lua固有のオブジェクトを除けば、celestiaオブジェクトのみが存在します。
その他のオブジェクトはメソッドを用いて作成します。
例:
obs = celestia:getobserver()
pos = obs:getposition()
例文中のobsposはそれぞれobserverオブジェクト、positionオブジェクトの変数となります。また、変数名は任意の名前です。
変数に対してメソッドを実行するには変数:メソッドと記述してください。

オブジェクトの演算

各オブジェクトは+、-、*の演算子を用いて次のように演算できます。なおsは数値です。

例: 天体へ移動


地球へ移動します。
天体へ移動する為にobserverオブジェクト、天体を取得するためにobjectオブジェクトを使用します。
-- 地球へ移動
obs = celestia:getobserver() -- 視点のobserverオブジェクトを取得
earth = celestia:find("Sol/Earth") -- 地球のobjectオブジェクトを取得
obs:goto(earth, 10) -- 移動
天体へ移動するにはobserverオブジェクトのgotoメソッドを使用します。
まずgotoメソッドを使用する為にobs = celestia:getobserver()でobserverオブジェクトを取得します。
次に地球に対して操作を行う為にearth = celestia:find("Sol/Earth") 地球のobjectオブジェクトを取得します。
そしてgotoを実行します。gotoメソッドは引数としてobjectオブジェクトと数値を順に引数に取ります。
次に一旦地球を画面の中心に移動させてから移動します。
-- 地球へ移動
obs = celestia:getobserver() -- 視点のobserverオブジェクトを取得
earth = celestia:find("Sol/Earth") -- 地球のobjectオブジェクトを取得
obs:center(earth, 3) -- 地球を中心に
wait(3)
obs:goto(earth, 10) -- 移動
centerメソッドは指定した天体を画面中心にします。gotoオブジェクトと同様な引数をとります。
すなわち、上の例では3秒かけて地球を画面中心にします。
waitは指定した時間だけ次のメソッドの実行を待ちます。この場合は3秒待ちます。
centerやgotoといった視点の動作を伴うメソッドでは次に同様のメソッドを実行する前に継続時間分以上待つ必要があります。
上のcenterメソッドの継続時間は3秒なのでgotoメソッドを実行する前に3秒待っています。
observer:gotoobserver:centerも参照してください。

例: 時刻設定


.CELXスクリプトではシミュレーション時刻を設定できます。時刻の設定にはユリウス日を使用します。
time = celestia:tojulianday(2007, 1, 1, 9, 0, 0)
celestia:settime(time)
tojuliandayメソッドではsettimeメソッドで使用するためのユリウス日を設定します。
引数は順に年、月、日、時、分、秒となっています。なお時刻はUTCです。
この例では日本時間の2007年1月1日0時00分00秒に設定されます。
そして次の行のsettimeメソッドでシミュレーション時刻が設定されます。
celestia:gotocelestia:settimeも参照してください。

例: 表示設定


Celestiaにおける様々な表示のON・OFFを設定します。
celestia:show("orbits", "boundaries", "grid")
celestia:hide("cometails", "lightdelay")
showメソッドでは表示をONにします。hideメソッドでは表示をOFFにします。
以上の例では軌道、星座境界線、天球座標をONにし、彗星の尾、光速考慮をOFFにしています。
celestia:showcelestia:hideも参照してください。
celestia:showlabel("planets", "moons")
celestia:hidelable("comets", "asteroids")
同様にshowlabelメソッドとhidelabelメソッドで天体名表示をON・OFFにできます。
以上の例では惑星名、衛星名をONにし、彗星名、小惑星名をOFFにしています。
celestia:showlabelcelestia:hidelabelも参照してください。

トップページ > .CELXスクリプトガイド > .CELXスクリプトの作成方法