月の移動
最終更新:
30pin
-
view
'08/11/1
┼ 月の移動
概要
- 月を任意の位置に移動させます。
- 月をリアルタイムに移動させます。
ノウハウ資料
今回はゲーム性とは縁遠いテーマですが、当研究室ではビジュアル面も重要視したいと思います。
時間をリアルタイムに更新させた時、太陽は動きますが月は停止したままです。これは少し残念です。
◇ 月の位置を決める
月の位置を決めるパラメータは RollupBar の Environment の中に存在します。
パラメータ名の中で Latitude (緯度)、Longitude (経度)というものが有り、ここで月の位置を指定するのですが、実際には 「 方位 」「 高度 」 の方が合っていると思います。
Moon パラメータ
パラメータ名 | 意味 |
Latitude | 方位 ( 0 ~ 360 : 反時計回り or 北を中心に ±180 単位 : °) ※1 |
Longitude | 高度 ( ±90 単位 : °) ※1 |
Size | 大きさ ( 0 ~ 1 ) ※2 |
※1 意味が有ると思われる数値の範囲で、設定できる数値はこの限りではない
※2 単なる(倍)ではない様子
※2 単なる(倍)ではない様子
◆ 方位・高度の関係図
※ 数値の単位は全て 「 度(°) 」
※ もちろん Longitude 経度(高度) は、この方向の限りではない。
※ もちろん Longitude 経度(高度) は、この方向の限りではない。
経度 ( 高度 ) を示す線が M 字形をしているのは間違いではありませn。
次の項目にある動画で、その様子の一部を確認する事ができます。
次の項目にある動画で、その様子の一部を確認する事ができます。
ここで一つ注意が必要なのは、 「 月は 180° 向かい合わせで2つ存在する事 」で、月を地平線に沈めて隠したつもりが、逆の空に出ているというハプニングが発生するかもしれません。月を隠す必要がある場合は、やはり Time Of Day ウインドウで月の輝きを調節する必要があるみたいです。
◇ 月の位置を自由に決める
先程、月の位置は RollupBar の Environment から指定すると書きましたが、いちいち数値を入力して確認するのは面倒なので、見た方向に月を移動できるツールをフローグラフで作成しました。
─ 使い方 ─
R キーを押している間だけ画面の中央に月が付いて来るので、好きな位置に移動させ、確定したい場所で R キーを離します。
R キーを離すと、 console に Latitude と Longitude の値が表示されるので、それをパラメータにコピペして下さい。
R キーを押している間だけ画面の中央に月が付いて来るので、好きな位置に移動させ、確定したい場所で R キーを離します。
R キーを離すと、 console に Latitude と Longitude の値が表示されるので、それをパラメータにコピペして下さい。
なお、出力されるデータの Latitude 緯度(方位) は、北 の 0° を中心に ±180° の形式です。そのままでも問題有りませんが、360° 形式が必要な場合は、申し訳ないですが手計算で変換をお願い致します。
動作の様子を動画にしてみた。
動画中で Longitude 経度(高度) を 80°まで上げた際に月が徐々に拡大して見えましたが、それが月の軌跡を M 字にした理由です。
Longitude 経度(高度) を上げてゆくと、だんだん月は大きくなるので、場合によっては Size で調整が必要となります。 90°になると、月のテクスチャが空全体を覆ってしまい、Size を 0 にしても効果はありませn。
この事より、自然に見せるのであれば、高度はせいぜい 80°まで。 後述する様にリアルタイムに動かすのであれば、60°前後までが適当ではないでしょうか。
この事より、自然に見せるのであれば、高度はせいぜい 80°まで。 後述する様にリアルタイムに動かすのであれば、60°前後までが適当ではないでしょうか。
※ フローグラフについて
基本的にはプレイヤーの向きと視線の向きをそれぞれ DirToAngle ノードによって角度に変換し、月の位置を設定する MoonDirection ノードに渡しているだけのものです。
しかし、この DirToAngle ノードはその名の通り方向を角度に変換してくれるノードですが、、他ノードの dir から dir へ直接つなげば良いというものではなかった為、データの変換が必要となり、やや大げさなものとなりました。
この DirToAngle の研究結果については、別の機会に致したいと思います。
基本的にはプレイヤーの向きと視線の向きをそれぞれ DirToAngle ノードによって角度に変換し、月の位置を設定する MoonDirection ノードに渡しているだけのものです。
しかし、この DirToAngle ノードはその名の通り方向を角度に変換してくれるノードですが、、他ノードの dir から dir へ直接つなげば良いというものではなかった為、データの変換が必要となり、やや大げさなものとなりました。
この DirToAngle の研究結果については、別の機会に致したいと思います。
◇ リアルタイムに月を動かす
上記の様に月の位置を決めても、停止しているのには変わりはありません。
やはり、リアルタイムに位置を動かして、現実に近づけたいと思います。
やはり、リアルタイムに位置を動かして、現実に近づけたいと思います。
ちなみに、現実世界はこうなっているらしい…
- 太陽は東から昇る
- 地軸のズレは 23.4°
- 月の軌道のズレは、さらに 5°
一方、エディターの中はこうなっている
- 太陽の昇る(沈む)方角は自由に決められる。
- 地軸のズレ(太陽の通り道の傾き)も設定出来る。
(ただし、場所を赤道付近限定としているのか、「日照時間の変化」がつけられない。)
- 月は常に満月
この条件で、太陽と月の動きにリアリティを持たせたいと思うなら、マップが赤道上に有るとして、次の様に設定する事になります。
- 太陽を真東から昇らせる
- 地軸(太陽の通り道の傾き)を、(北半球で言う)夏なら北から 66.6°、冬なら南から 66.6°傾ける
- 月の通り道の傾きは、夏なら北から 61.6°冬なら南から 61.6°傾ける
─ 地軸のズレ(太陽の通り道の傾き)を測るには ─
太陽が頂点に来るように現在時刻を 12時 に合わせ、「 月の位置を自由に決めるフローグラフ 」 で太陽と同じ位置に月を合わせると、おおよその情報が得られます。
※ Environment:Lighting ノードは太陽の位置を出力するノードと思われるのですが、正しい情報が得られない様子だったので、上記の方法で我慢するしかなさそうです。
太陽が頂点に来るように現在時刻を 12時 に合わせ、「 月の位置を自由に決めるフローグラフ 」 で太陽と同じ位置に月を合わせると、おおよその情報が得られます。
※ Environment:Lighting ノードは太陽の位置を出力するノードと思われるのですが、正しい情報が得られない様子だったので、上記の方法で我慢するしかなさそうです。
月の位置をリアルタイムに更新する為のフローグラフを作成しました。
◆ 時計回り( CW )
◆ 反時計回り( CCW )
※ ページの最後で、フローグラフ xml ファイルのダウンロードを試験的に行っています。
◆ 時計回り( CW )
◆ 反時計回り( CCW )
※ ページの最後で、フローグラフ xml ファイルのダウンロードを試験的に行っています。
─ 使い方 ─
左下の3ノード ( 頂点時の時刻・頂点時の方位・頂点時の高度 ) に、月が最も高い位置に有る時の時刻と方位と高度を入力する。
左下の3ノード ( 頂点時の時刻・頂点時の方位・頂点時の高度 ) に、月が最も高い位置に有る時の時刻と方位と高度を入力する。
Timer ノードの period パラメータで月の位置を更新する間隔を変える事ができます。
公式マニュアルによると、空の更新スピード ( Time of Day ウインドウ Current Time の Play Speed ) は 0.005 が良い値となっており、その場合、月の位置の更新間隔が 1 秒だと少しカクカク感が気になるかもしれません。気になる場合は 0.5 ~ 0.2 秒程度に変更するのが良いと思います。
─ フローグラフの解説 ─
基本として、
- 方位 0° に月が有り
- そこで月の高度は頂点に有り
- 時刻は 0 時である
そこへ、まずは 「 方位・時刻 」 についての情報を追加する
- 月の方位を進める角度
例えば「 頂点時の方位 」が 180° であれば、月は 180° 進むので、0 時 の時点で月は 180° (南) に有る事になる。
- 月の方位を遅らせる角度
例えば 「 頂点時の時刻 」 が 3 時 であれば、180° から 3 時間分の角度をさかのぼるので、180° に到達するのが 3 時 になる事になる。
この様にして希望の時刻に希望の方位に月が有る事になる。
ここで、基本の 「 そこで月の高度は頂点に有り 」 について…
北をあらわす 0° を cosθ に入れる事によって、「 頂点時の高度 」 の最高高度を表す 1 倍 を得ています。
北をあらわす 0° を cosθ に入れる事によって、「 頂点時の高度 」 の最高高度を表す 1 倍 を得ています。
続いて「 高度 」 についての情報を追加する
- 頂点位置の調整
例えば 「 頂点時の方位 」 が 180° だったなら、希望した月の方位から 180° さかのぼった角度、つまり、北を表す 0° を cosθ に代入して、最高高度を得る事になる。
結果的に、希望する時刻・方位・高度に輝くの月の光を見る事ができるのです。
◇ ファイルのダウンロード
今回は試験的にフローグラフファイルのダウンロードを実施してみます。
- このファイルは体験版に付属の Sandbox2 で作成したものです。
- この配布方法で他の環境で正常に動作するかは未確認です。
その点を留意の上、ご利用の場合は自己責任で宜しくお願い申し上げます。
- 月を自由に動かすフローグラフ
- 月の位置をリアルタイムに更新する為のフローグラフ
─ 使い方 ─
ダウンロードした xml ファイルを、適用したいマップファイルのあるフォルダに入れてエディターを起動し、フローグラフのウインドウから開いてください。
※ いずれのファイルも、月が確認できる状態でご使用ください。
ダウンロードした xml ファイルを、適用したいマップファイルのあるフォルダに入れてエディターを起動し、フローグラフのウインドウから開いてください。
※ いずれのファイルも、月が確認できる状態でご使用ください。
不具合など有りましたら、こちらへご報告をお願い申し上げます。
コメントページ
コメントページ
以上です、ありがとうございました。
◇ 参考資料
┼ ┼