🍰
UnityでGameObjectとして扱うための3Dデータの軽量化
選択肢の確認
CAD、DCCなどモデリングソフトで作成した3DデータをUnityに取り込みたい状況はあります。
ファイル拡張子は数多く存在していて、同様に取り込み方もたくさんあります。
UnityのAsset Managerから動的にモデルを取り込む方法も選択肢の一つだと思いますが、ビルドするアプリにアセットとしてモデルを持たせる前提で以下を書いてます。
フローチャート
フローチャートの番号に対応した説明
①Unityが対応するモデルのファイル形式
標準的な3Dファイル形式は対応していますが、.fbxが望ましい。
②Pixyz製品で変換
3つの選択肢からやりたいことにあったのを選ぶ
- 自動処理をするならPixyz Senario Processor
- Pythonスクリプトで半自動するならPixyz Studio
- Unity Editorに取り込んでからどうにかするならPixyz Plugin
③Pixyz製品で軽量化
軽量化も複数方法がありますが頂点やメッシュを減らして見た目を少し犠牲にしてもデータを軽くしたい場合はDecimationを使う
④UnityMeshSimplifierで軽量化
元の状態
FBXを取り込んだ直後の元の状態ではTris: 8.6M、Verts: 4.6Mだった。
処理後
MeshSimplifierのSimplifyMesh()を実行して元の25%まで削減。 Tris: 2.2M、Verts: 1.2M。
何も考えずに75%削ると曲面が荒くなって見えますので、どこまでトレードオフできるかは検討が必要。
Unityに素で取り込んだモデルを簡単に軽量化できるのは魅力的です。
Discussion