今回はUnity自由研究をやっていきます。
Twitterなどでクソデカ羅生門というものが流行っていますね。
私もクソデカユニティちゃんなどを作ってキャッキャしていたわけですが、
ふと、どんどんScaleを大きくしていったらどうなるのか試してみたくなりました。
そこで今回は、宇宙規模までScaleをどんどん大きくしていく実験をしてみます。
追記:うお座・くじら座超銀河団Complexの直径を修正しました。
追記:プレアデス星団の画像を修正しました。
開発環境
Unity 2019.4.0f1
事前準備と注意事項
Unityでのメートル
Unityでは、Scale1のCube一辺が1メートルになるようできています。
つまり、Scale(10, 10, 10)のCubeなら一辺が10メートルということですね。
巨大なオブジェクトがGameビューに描画されない時の対処法
Unityには描画範囲が設定されており、この範囲外のオブジェクトなど描画されないようになっています。
この描画範囲はCameraから変更できます。
CameraのClipping PlanesのFarが最大描画距離です。
デフォルトだと1000以降のオブジェクトは描画されないのでここの値を大きくするといいでしょう。
巨大なオブジェクトがSceneビューに描画されない時の対処法
Sceneビューに映らない時も同様で、Cameraの設定を変える必要があります。
Sceneビュー上のカメラのマークがついたボタンを押し、SceneCameraの編集ビューから値を変えます。
この時DynamicClippingにチェックが入っていると編集できないのでチェックを外しておきましょう。
各惑星、星団などの直径について
Googleで「"惑星or星団名 直径"」で検索して出たものを使っています。
もしかしたら違うものが混じっていたりするかもしれません。
その際はコメントまでよろしくお願いします。
クソデカユニティちゃんを作る
最初はクソデカユニティちゃんを作ってみます。
デフォルトのSDユニティちゃんをキューブとかぶせるとこんな感じです。
大体高さ1メートルですね(カチューシャは含めない)
ではユニティちゃんのScaleを(1000000, 1000000, 1000000)にしてみます。
全長100万メートルのユニティちゃんの登場です。
比較対象がいなくともかなりスケール感が狂いますね。
宇宙を作る事前準備
ここから先は細かく大きさを変えてもきりがないので壮大にいきます。
その前に白いCubeやSpeherだと味気ないので、素材を追加します。
宇宙を作るのでSkyboxはこちらのアセットを使います。
SkyですがSpaceも含まれているアセットです。宇宙は空にある
地球なども作るのでこちらのアセットもいれておきます。
それではやっていきましょう!
(脳内BGM ~グレンラガンの例の曲~)
太陽系を作る
地球を作る
宇宙創生の最初は我らが母星地球を作ります。
地球は直径12742000mです。
先ほどインポートしたアセットでいい感じになりました。
さきほどのクソデカユニティちゃん(100万m)を乗せるとこんな感じ。巨大綾波?
月を作る
せっかくなので月も作ります。
月は直径3474200mです。
地球と並べるとこんな感じ、結構大きい。
地球-月の距離を離す
地球と月があるので現実と同じ尺度で再現してみます。
地球と月の距離は384400000mです。
何か警告が出てますね。浮動小数点の精度の関係上ワールド座標を小さくした方がいいとのこと。
実際に配置するとこんな感じ、意外と近い?いや遠い?
太陽を作る
太陽系の恒星、太陽を作ります。
太陽の直径は1392700000mです。
デカァァァァァいッ説明不要!!
大きさは地球の約109倍、質量約33万倍は伊達じゃないですね。
地球と太陽の距離は149600000000mですので、こちらも間隔を調整してみます。
こんなちっちゃくなるのか。
ちなみにこのあたりからギズモ(XYZ軸の矢印がついたアレ)が表示されなくなります。
他の太陽系惑星を作る
水星
直径は4879400mです。
金星
直径は12104000mです。
火星
直径は6779000mです。
木星
直径は139820000mです。
土星
直径は116460000mです。
天王星
直径は50724000mです。
海王星
直径は49244000mです。
惑星直列をやってみました。なかなか壮大ですね。水金地火木土天海m(ry
ちなみに惑星間の距離も現実に合わせて配置してみましたが、画面に全く収まらず小さすぎて見えないのでボツ。
宇宙を作る
一光年を作る
天文学で使われる単位一光年を作っていきます。
年がついているので時間だと勘違いされがちですが、光が一年かけて進む距離を示します。
メートル換算で9.461e+15mとなります。ここはCubeを使っていきます。
※「e+〇〇」についてはこちら
一辺一光年のCubeの完成です。描画されましたがLightの影響を受けなくなりました。
Lightがレンダリングされるまで1年かかるのだろうか。
Sceneビューがおかしくなる
一光年に合わせてCameraの設定も変えていますが、なんだかブツブツとおかしくなっています。
なんだか不穏な空気がしますがUnityは動いているので続行します。
プレアデス星団を作る
肉眼でも見える散開星団です。日本では「すばる」といいますね。
直径は35光年、メートル換算で3.311e+17mとなります。
こちらもCubeで作ります。
一光年Cubeからカメラを引いて比較してみます。ちょうど35個分ですね。
ω星団を作る
最大の球状星団です。NGC 5139ともいいますね
直径は172光年、メートル換算で1.627e+18mとなります。
ここからはSphereで作っていきます。
プレアデス星団Cubeと比べると大体5倍くらいの大きさ。
NGC 604を作る
さんかく座銀河のHII領域で局部銀河系で最も大きいものです。
直径は1520光年、メートル換算で1.438e+19mとなります。
ω星団と比べるとこんな感じ
天の川銀河を作る
天の川銀河(単に銀河系とも)は太陽系を含む銀河のことを指します。
直径は105700光年、メートル換算で9.999992e+20mとなります。
NGC 609と比べるとこんな感じ
アンドロメダ銀河を作る
アンドロメダ銀河は太陽系を含む渦巻銀河です。
直径は220000光年、メートル換算で2.081361e+21mとなります。
大きさ的には天の川銀河の約2倍です。
IC 1101を作る
観測されている銀河で最大のものです。
直径は3913900光年、メートル換算で3.7028353e+22mとなります。
アンドロメダ銀河と比べるとこんな感じ
おとめ座超銀河団
天の川銀河、アンドロメダ銀河など銀河群を含む超銀河団です。
直径は15000000光年、メートル換算で1.41910957e+23mとなります。
IC 1101と比べるとこんな感じ
うお座・くじら座超銀河団Complexを作る
超銀河団、銀河フィラメントの複合体で、おとめ座超銀河団を含んでいます。
長さ約10億光年、幅約1.5億光年と推定されているらしい。(Wikipedia)
メートル換算で9.460730473e+24mと1.419109571e+24mとなります。
厚さは調べてもよくわからなかったのでそのまま。
見づらいので白色にしました。
おとめ座超銀河団と比べるとこんな感じ、手前にある小さい点がおとめ座超銀河団
天元突破ユニティちゃんを作る
天元突破グレンラガンと同じ大きさのユニティちゃんを作ります。
全長約52.8億光年です。メートル換算で4.9952656895e+25mとなります。
踏んでいる白いのがうお座・くじら座超銀河団Complexです。
ユニティちゃんはプリミティブなCubeやSphereと違いちゃんとLightの影響を受けていますね。
観測可能な宇宙を作る
諸説あるようですが、ここでは可視宇宙の球体のことを指します。
直径約930億光年です。メートル換算で8.7984793395e+26mとなります。
天元突破ユニティちゃんと比べるとこんな感じ
超天元突破ユニティちゃんを作る
超天元突破グレンラガンと同じ大きさのユニティちゃんを作ります。
全長約1500億光年、メートル換算で1.419109570887e+27mです。
観測可能な宇宙と比べるとこんな感じ
この大きさでもアニメーションは破綻することなく再生できました。
歩くだけでその辺の銀河を滅ぼしそう。
巨大な物で思い当たるのはこれが最後ですね。
正直ここまでUnityが動くなんて思ってませんでした。その気になれば宇宙まで作れる!
浮動小数点の限界
最後に、理論上は浮動小数点の限界3.402823e+38まではいけると思うのでやってみました。
しかし何も表示されませんでした。どうやらこのあたりが限界のようです。
ちなみにこれ以上大きい値を入力しても強制的に3.402823e+38に戻されます。
Unityの異変
宇宙を作っていく過程でSceneビューにいろいろ異変が起きていました。
Sceneビューが真っ白になり反応しなくなったり、Gameビューは真っ黒になったり。
動作がガクガクになったりなど。
これらの異変は、SceneビューをいったんClose Tabし新しくAdd Tabすると解決します。
コンソールを見てみるとたくさんエラーがでていました。
どうやらオブジェクトが大きすぎるとこうなるようです。
まとめ
・超天元突破ユニティちゃん(全長1500億光年)までは表示を確認できた
・SceneビューやGameビュー、ギズモが正常に動かなくなる
・理論上は3.402823e+38までいけるはず
・宇宙ヤバイ
完全にネタ記事でしたが最後まで見ていただきありがとうございます。
もしやこの世界もUnityでできているのでは・・・?
参考資料
地球から太陽までは、何光年ですか?│太陽│宇宙科学研究所キッズサイト「ウチューンズ」
ロボットの大きさ比較用全高データまとめ:ブレイクザウィットネス - ブロマガ
1e5、1e-6、1E+9などの数値の意味と注意点 - 具体例で学ぶ数学