)の円弧長さのぶん自転方向にヨレるはず(...合ってる??数学得意な人いたらチェックしておなしゃす!)。精密でより汎用的な計算式や考察はググるとちゃんとでてきますのでそちらを見ましょう。巨大な“びっくりハウス”モノを投げたときの他にもスペースコロニーの生活では奇妙な物理現象が色々起きます。『奇妙な』といってもどれもニュートン力学で説明可能な理にかなった現象ばかりなのですが、遠心力による疑似重力がけっこう本物の重力っぽいが故になんだか奇妙な事が起こってるように感じてしまうわけです。円周に沿って自転方向に走ると重力が増え逆方向だと重力が減ります。自転による円周速度に速度を加えたり減らしたりすると遠心力が変化するので、みかけの重力も増減するわけですね。ホバー(スペースキー)しながら反自転方向に加速してみましょう。人間タイプのキャラと異なり空中でも加速するのでホバーしながら加速していくと疑似重力が減少してホバーで空中に浮きつづける状態になります。キーのベロシティ表示を確認しながら完全に自転を相殺するまで加速するとホバーしなくても無重力の空間に浮ぶ状態になります。スペースコロニーに空港を建設するとしたら滑走路は円周に沿って二本平行に設置し反自転方位に離陸、着陸は自転方位で運用すると良いかもしれません。エレベーターを使って上昇したり下降したりすると、キャラクターがズルズルと円周方向へ滑って横の力を感じます。これは自転による円周速度がシリンダーの軸に近く(つまり地面からみて上空)にいくほど小さくなるからです。先に説明した高く投げたボールがヨレていくのと同じことです)。ちなみに高度3000mで重力ゼロになるのでその付近でのジャンプは自殺行為です(アプリ内でキャラは絶対死にませんけども)。高度2500mを越えたあたりからジャンプすると戻れない場合が多くなるので高高度は要注意です。手摺りの摩擦を若干大きめに設定してるので端っこに寄って手摺りに押しつけると擬似的に手摺りにつかまってる事になりいくらか安全です。ここまでは地面を歩きまわるキャラクターでの話ですが、もし空中に速度ゼロで浮いた状態からはじめたらどんな感じになるか見てみたくて宇宙船タイプのアバターも用意してみました。3DモデルアセットはNASAが無償で提供している月着陸船ですが、今年はアポロ着陸50周年なのに日本ではイマイチ盛り上りがなくて寂しいワタクシです...。キャラクターを選択すると、高度3000mで速度ベクトルゼロ、角速度ゼロで浮かんだ状態からスタートします。他のキャラより操作が難しいのですがそのかわり速度・回転の6軸を自由に操れるようになっています(実装の都合で下降スラスターだけ無いですが)。ハマったオッサンにお勧め)。回転はできるだけきっちり止めて、ベロシティの変更はメインスラスターを積極的に使うのがコツです。計器類が無いのでGキーによるベロシティ表示だけが頼りです。ベロシティの方向にメインノズルが向くように姿勢をすばやく安定させ、スペースキーでメインスラスターをフカしてベロシティの上下成分をゼロ近くまで減少させた後に、残った横の成分はカーソルキーのサブスラスターで減少させる。こんな感じで慣れるとそこそこ自由に動きまわれるようになります。実際にアプリで体験してみてもらうとわかるのですが周囲の巨大なシリンダーの自転に惑わされて自分がどこへ向おうとしてるのかすぐに見失ってしまいます。アプリの開発初期は「ん??ベロシティーが実際の移動方向とズレてるような...?バグ??」と何度もデバッグデータを確認してみる事もありました。月着陸船をプレイしていて「アレ?このベロシティ表示バグってない??」って思ったアナタ、それ錯覚です。パイロットに良く知られた、飛行中に自機の姿勢を錯覚してしまう“バーティゴ”という現象がありますが、宇宙港からスペースコロニーに侵入して着陸しようとする宇宙船のパイロットは常時バーティゴ状態と言って良いかもしれません。オニールタイプのスペースコロニーには太陽光を取り込む大きな窓があるので、そこから見える宇宙の星々を基準にするように心掛けると錯覚を追い払うことができます。宇宙を基準にした状態から地面を基準にした状態へ遷移する途中が惑わされやすくすぐに機位を見失ってしまい気がついた時には地面にハードランディングしてしまっていることはしょっちゅうです。自分で何度もプレイしてみて、スペースコロニーってなんだか超特大のびっくりハウスのようなもんだなーと思いましたね。コライダーを並べて、挙動は組み込みの物理エンジンにまかせてあります。実装するほうがマシだったかも...と思う事が何度もありました。使えず、巨大メッシュを配置してコロニーワールドを構築しなければなりません。組み込みコライダーには中空のシリンダーは無いので、1024枚の板コライダーを円筒形に配置し円筒の両端はスクリプトで宇宙港まわりの特殊な形状判定をする箱コライダーで蓋をしてあります。最初は256枚のコライダーを使っていたのですがその程度だと歩いているだけでガタガタしているのがバレてしまう上に、板を接続している凹み部分でちょいちょい物理挙動が暴れてしまうため調整して1024枚になっております。コロニーを歩き回るとき地面...すなわちコロニーの壁の巨大ポリゴンに極めてスレスレに近づいてレンダリングしている状況になるため、コロニーのメッシュデータもコライダーとぴったりフィットしている必要があり(でないと歩いてるうちに壁をつきぬけたり不自然に浮いたりしてしまう)、したがってポリゴンモデルも1024枚の板ポリ分割になっているわけで、これもアプリが重くなる要因の一つとなっております。ちなみにメッシュとコライダーが一致してるならメッシュコライダーが使えるかというと、こういう物理エンジンのお約束ですがメッシュコライダーは凸形状(convex)でないと使えないか使えてもクソ遅いとか色々制限があったりするので要注意です。true)しか動作しなくなっています。メッシュコライダーはパフォーマンスの問題が大きすぎてサポートしきれない──と判断したように思われます。をアタッチすると処理がとんでもなく重くなり現実的なプレイが不可能ですので、コロニー地面を構成する細っそながーい板はスタティックな箱コライダーです。物理エンジンの挙動で、この場合双方の相対速度は無視されます。保持する速度ベクトルでもって速度ゼロの地面にぶちあたっている状況になります。普通のゲームアプリならばキャラクターが走ったりしてる見た目の移動速度ベクトルそのままで移動しない地面にぶつかる状態なので別に問題はないわけですが、このシリンダーシムアプリの場合は前述のとおり地面もキャラもグローバル空間に対し600km/hオーバーで移動してるはずなのにキャラやボールは停止した地面に猛スピードでブチあたる状態になってしまうわけです。物理演算をいろいろ試してみたところ、このような状況でもキャラが地面に接触するときのトルクや作用反作用による運動量の変化などはおおむね正しく計算されます。摩擦の計算において相対速度が無視されるため、ごくわずかの摩擦値(物理マテリアルfrictionプロパティ)を設定するだけでも接触した一瞬でものすごい減速と角運動量変化が発生してとんでもない方向に吹っ飛ばされてしまう挙動になります。このシムの地面の摩擦はゼロに設定しています。値に修正をかけています。物理エンジンのみで動作している状態になります。想定するような、一定重力が下向きにあって固定した地面の上でキャラやオブジェクトが動きまわるような世界とはだいぶかけはなれた世界なので、3D表示でも色々と予想外の問題にブチあたって面倒な思いをしました。使う前提だったりY軸がグローバル空間の上固定になっていたりして、結局諸々のシェーダーを自前で書くハメになってしまいました。テッセレーション対応してなかったのが判明、泣く泣くバーテックスシェーダーで上端ユラユラっていうショボいバージョンで書き直しました。これは単なる私の事前調査不足ですが...。言うてるのは誤魔化しで実際はインスタンシングしてる)本当は河とか湖とか雲とか、あるいはスピード出てきたときにカッ飛んでる感を演出するための空中を舞うパーティクルとかを実装したかったんですけど、どれも有り物のシェーダーアセットは固定したグローバル空間でY軸上向きの世界で運用することを前提にしているため、単純に組みこむと地面に立っていても色んなものが時速600kmで流れ去りながら刻々と傾いていくような状態となり──なぜならグローバル空間ではシリンダーは自転していくので──結局あらゆるものを自作調達するハメになりそうだったのでやめました。そこまで苦労しても別にお金にもならんし...。直に制御する方針(PCフライトシムの標準的な実装法とかなり近かったりしますが)でやったほうが、たぶん応用が効いて面倒は少なくなります。...保証はしませんけど。頑張ってエレベーターに乗って大宇宙港から外にでると宇宙船でのコロニー一周ツアーを見れます。コメントをキャンセルサイト管理人が承認後にコメントが表示されます。※コメント内容のみ必須入力です。メールアドレスはサイト管理人のみに通達されます。DigiSapo阪神地区に生息するカエルに似た変なオッサンです。プログラミングやモバイルガジェット、そして長年の趣味であるフライトシムのお話をします。