ゴマちゃんフロンティア

アザラシが大好きなエンジニアの開発日記です

【開発日記】Unity上のオブジェクトサイズがとても大きいことに気付いたお話

time 2017/12/22

というわけで、今回は開発日記と称して、ずっと気付いていなかった「Unityにおける適切なオブジェクトサイズ」的なお話です。

「オブジェクトの大きさ」についてはUnityを使い始めた時からずっと無頓着で、他にインポートしたアセットとかの兼ね合いを考えて適当にリサイズしていました。
しかし最近、物理演算をさせる場合にオブジェクトサイズによって挙動が変わってしまうことを知り、結構な危機感を覚えていたりします。プレイヤーはまだしも、敵やオブジェクトのことを考えるとスルーするわけにもいかないので、見直すことにします。

Unity上での1m (メートル) は「デフォルトのCubeの1辺」に相応するそうです。Cubeの大きさはXYZ全て1で生成されるので、0.5にすれば50cm、10にすれば10mになります。
それをベースに現在使用しているマイキャラクターの現実的な大きさを考えてみると、モチーフが「ウサギ」とか「リス」とかの動物系なので、2足歩行とはいえ30cm前後が妥当なラインでしょう。
以下、左から「30cm程度の大きさ」「1m程度の大きさ」「既存プロジェクトの大きさ」のキャラクターを並べてみました。

うーん…やっぱり既存の寸法がぶっ飛んだ大きさです。
確かにUnity標準のオブジェクト (特にTerrain) を扱っているときに自前のオブジェクトが大きいと感じたことはありましたが、実際の尺で考えると思った以上に大きくなっている印象です。ざっくり現実世界で例えると「2階建て一軒家」くらいの高さになります。そりゃ物理演算ももっさりするわけで…。
1人で籠って開発していると (当然ですが) 誰も指摘してくれる人がいないので、間違った知識や考え方で突き進んでしまいます。Unityの基本をすっ飛ばしてやってきたのも響いてきますね。

「間違ったものは正しい知識で作り直す」のが自分のためにもよろしいのですが、既存のプロジェクトが全てビッグサイズになっているので、ほぼ全て作り直しとなってしまいそうです。特にステージの地形は「SabreCSG」を使って作ったので尚更どうしようもなさそう。
まあオブジェクトサイズ以前に勢いであれこれ作ってきた結果、今の作りで開発するのは無謀に近くなってきたので、一度整理し直す良い機会と考えました。
まともに「ゲーム」と呼べるものを1つも作ってない状態でのちゃぶ台返しですが、気長にやっていきます。

down

コメントする