■MELスクリプトで太陽系各惑星の正確な軌道と公転アニメーションを作る



Mayaの中で太陽系の惑星の運行を正確にシミュレーションできるスクリプトを作ってみました。 ただしゼロから自分で作ったわけではなく、下記サイトにJavaでプログラミングされたアプレットがあったので、 そのソースコードをMELに書き換えて利用させていただきました。

鳳ソフト - 太陽系の簡単なシミュレーション www.marble-cafe.com/planet/solar/solar.html ←これは僕が作ったものではありません。参考サイトです!

ケプラーの法則を使って現実と同様の軌道、公転になります。僕のほうで作ったMELスクリプトはこちら。

太陽系作成MELスクリプト



<使い方>

まずは太陽および惑星となる計9個の球を作ってください。大きさは自由ですが、作られる軌道の大きさの都合上、スケールを0.1〜0.5程度にしておくと良いでしょう。 また各惑星の大きさの比率は、実際の惑星の大きさの比率に近づけたほうが雰囲気は出ます。 そしてそれぞれにsun, mercury, venus, earth, mars, jupiter, saturn, uranus, neptuneという名前をつけてください。全て小文字です。 スクリプトはこの名前を見て動作するので、違う名前だとエラーになります。 また、下図のようにAnnotation機能でそれぞれの球に名前をつけておくと見た目がわかりやすくなります。

sun ... 太陽
mercury ... 水星
venus ... 金星
earth ... 地球
mars ... 火星
jupiter ... 木星
saturn ... 土星
uranus ... 天王星
neptune ... 海王星


ここまでの準備ができたら、上の太陽系作成MELスクリプトをスクリプトエディタで読み込んで実行してください。
するとNurbsカーブで各惑星の軌道が描かれ、タイムスライダを動かすと各惑星も動きます。
0フレーム目が1979年7月1日の様子を示しており、1フレームで1日が進みます。
すなわち、1フレーム目は1979年7月2日、30フレーム目は1979年7月31日という具合になり、2012年7月1日は12054フレーム目になります。
日付は画面上部のヘッドアップディスプレイで表示されるようになっています。 日付の計算には「ユリウス通日について」というサイトのCプログラムを参考にしました。