シミュレーションの作り方 14



その14 物体まわりをよりリアルに回るよう表現する



 地球のまわりを回る衛星を3次元で表現する時、そのままだと円で描いた地球の裏側に行っても見えてしまいどのように回転しているのかが分からなくなってきます。

 そこで地球の裏側に入ったら、「見えなくする」 または 「見えにくくする」などの工夫をすることによってよりリアルな回転運動が表現できます。

 今まで適当に使い分けていた方法を整理してみたので参考になれはと思い 紹介します。

 

1)裏に回ったら「見えなくする」には。

 

 XーZ平面をY軸周りに回転している物体を考えることにする。

 見る方向(視線)はZ軸方向なので、中央の球体の影に隠れて見えない領域は、まずZが+の領域である。

 (A)この条件だけで作成するとしたら回転する物体をZ<=0のときの「表系列」とZ>0のときの「裏系列」に分け、系列順序を下から表系列」「球体系列」「裏系列」に並び替えることで実現できます。

 次にその方法を紹介します。

 まず、スピンボタンを作り手動タイマーを作ります。

 B2はスピンボタンとリンクさせたカウンター。C2は1カウントで進む時間⊿t。D2はカウント数☓⊿t=t(時刻)とします。

 次に、中心にある球体をX-Z面を回っている物体について、C6には回転半径=8を、C7には回転角速度  π/10 [rad] を設定します。

 そして、B9、C9、D9にはーZ軸上-8の点からX-Z面上を角速度π/10で回転する計算式[X=8Sin(ωt)、Y=0、Z=8Cos(ωt) ]を記述し、E9,F9,G9にはこれをX軸まわりに回転させる変換式[X’=X、Y’=YCosβーZSinβ、Z’=YSinβ+ZCosβ]を記述します。

 最後に、H9,I9には「表系列」の条件(Z<=0)をつけ、J9,K9には「裏系列」の条件(Z>0)を付け裏表の系列表示が切り替わる数式を記述します

 続いて、「挿入」タグ⇒「散布グラフ」⇒散布図の中から「点のみ」を選択し新規グラフを作ります。

 グラフが出来たらグラフ上で右クリックし出てくるサブメニューから「データ選択」を選択し中心んの「球体系列」、「表系列」、「裏系列」の3つの系列データ設定を行ないます。(右図参照)

 3系列とも取りあえずデータ系列書式ダイアログのマーカーオプションで「組み込み」の〇、サイズ12に指定しておきます。グラフ上には中心に1個と他にもう一個の〇が表示されます。

 データ系列書式ダイアログで

 「表系列」、「裏系列」は「マーカーの塗りつぶし」⇒「単色」⇒「赤」としサイズ12のとします。

 「球体系列」は「挿入」タグ⇒「図形」⇒楕円を選択し、半径5位の球体を作図し(どこで作図してもOK)、グラデーションなどを利用して立体球としてきます。

 次に、データ系列書式ダイアログを使い「マーカーオプション」⇒「組み込み」⇒「図形」を選択し、出てくるフォルダーの中から適当のもの(ダミーなので何でも良い)を開くと中央にその図形が現れます。

 先ほど作図した球体をクリックしコピーします。表示されたままになっているデータ系列書式ダイアログに戻り、「マーカーオ塗りつぶし」⇒「図またはテクスチャ」⇒「クリップボード」をクリックします。すると、さきほど作図しコピーしておいた球体にとって代わります。枠線がある場合は、「線なし」とします。

適当に視角をつけてタイマーを動かしてみて下さい。球体の影に入った時タイミングよく物体がきえますか?多分うまくいってないと思います。そんな時はデータ系列の並び順を変えます。

************************

 グラフ上で右クリックし出てくるサブメニューから「データ選択」を選択し、右図のように▼▲を使い奥から手前にかけて「裏」「球体」「表」となるよう並べ替えます。

今度はちゃんときゅうたいの影では消えるようになるはずです。

 以上で、(A)の説明は終わりです。

 

 作成事例は ここ

  

****************************

 


(B)Zが+の領域であるという条件の他にX’Y’が球体の影部分にのときすなわちX'^2+Y’^2<5^2 のとき」という条件を付加すれば影の時確実に消すことができます。

 この方法はX’、Y’、Z’の式の他にX’’,Y’’式を作りそこに2つの条件を同時に満たす時消す(1000の位置に飛ばして見えなくする)ような計算式を以下のように記述します。

 

 A9~G9までは(A)とおなじです。

H9には =IF(AND(E9^2+F9^2<C11^2,G9>0),1000,E9)

I9には =IF(AND(E9^2+F9^2<C11^2,G9>0),1000,F9)

いうAND条件付きの式に書き換え、これを回る物体系列のデータに設定すればよい。

 中心の球体は(A)と同じ方法で球体系列として設定してもいいし、グラフのブロットエリアとグラフエリア両方を「塗りつぶしなし」で透明化しそこにダイレクトに貼り付け、」最背後」に設定すれば良い。

 ダイレクトに貼り付けた例は ここ からダウンロードできます。参考にして下さい。 


2)裏に回ったら「見えにくくする」方法とは。 

 

 

 この手法は何回か使用していますが、要は裏(Z>0領域)と表(Z>=0領域)で色の違ったDATA系列を使うようにすることで実現します。物体が中心の球体の裏側を通過する様子をかすかに見せる時などに使用しました。

 設定は1)-(A)と同じで、最後のデータソースの並べ替えの部分を右図のように「裏」を「球体」の手前に並べ替えて、以下のように「裏」の書式設定をし直します

 このままだと、球体の手前に「裏」がきますから、裏にまわった時も球体の手前に「裏」が見えてしまいます。

 そこで、右図の様に「裏」の「データ系列の書式設定」ダイアログを表示させ、

「マーカーの塗りつぶし」および「マーカーの色」で、中心の球体の色に近い色に設定する。

 以上でZ>0の時は物体の色が中心の球体とほぼ同色になり、球体通貨の時はかすかに見えるようになります。


 3方法の特徴

 

 1)-(A)は中心物体の形状に関係なく極めてナチュラルに回り込む様子が表現できる手軽な方法です。

 1)-(B)は理屈通り影に入ると完全に視界から消えますが、形状が複雑になると条件式も複雑になります。また、消え方が(A)より少しアンナチュラル気味です。でも、軌跡などを表現する時は利用価値があります。

 2)は1)-(A)の変形で、影に回った時の様子をチラチラみせるのに役立ちます。

 

 その時々に合わせ使い分けてみて下さい。紹介した方法以外にも工夫次第で色々表現できると思います。  以上で私の使用している方法の紹介は終わりです。

 

 )-(A)、)-(B)、) を3Sheetにしたものは ここ からダウンロードできます。