Blenderで筒状の3Dモデルを作って、Unityで移動制限用の透明な壁として使用する。
基本オブジェクトのシリンダーをベースに作るので、センスやテクニックは必要ない。
ちょっと丁寧に解説し過ぎたので、目次から適当な所まで、お飛びください。
使用環境
基本的には同じ方法で出来るが、Blenderのバージョンが違うと各機能の配置が変わる場合がある。
- Blenderバージョン:2.91.0
- Blender言語:日本語
Blenderでの手順
まずはBlenderで3Dモデルを作って行く。
初期ファイルの作成
新規ファイル -> 全般で初期ファイルを開く。
右上の「シーンコレクション」でCubeを消す。
円柱を作成
左上の「追加 -> メッシュ -> 円柱」で円柱を作成。
円柱の設定を変更
左下に出る「円柱を追加」をクリックして円柱の設定を変更。
- 頂点:多い程なめらかに。
- 半径:ゲームで使用する大きさに合わせる。
- 深度:ジャンプしても届かない範囲。
- ふたのフィルタイプ:上下の制限をしない場合は「なし」。
モディファイアー「ソリッド化」を適用
右下の「モディファイアープロパティ」を開く。
「モディファイアーを追加 -> ソリッド化」で幅を0.1mに変更。
保存してエクスポート
「名前を付けて保存」した後に、「エクスポート -> .obj」。
(設定はデフォルトのままでOK)
Blender側での手順は、これで完了。
以下Unity側。
Unityでの手順
透明な壁の当たり判定を設定して行く。
objファイルをインポート
Blenderで作成したobjファイルをUnityのAssetsフォルダにドラッグ&ドロップしてインポート。
シーン内に設置
Assetsフォルダからドラッグ&ドロップしてシーン内に設置。
objファイルの設定
- 設置したobjファイル -> 子のdefaultを選択。
- Mesh Renderer -> 右クリック -> Remove Component
- Add Component -> Mesh Collider (Convexはfalseのままにしておく)
こうなればOK。
プレハブ化(任意)
親のobjファイルをAssetsフォルダへドラッグ&ドロップしてプレハブ化。
以上で「移動制限用の透明な壁」の実装完了。
移動制限のみならコードだけで実装出来るらしい
この記事を書こうとしている時に発見したが、コードだけで再現出来るらしい。
(プリミティブのシリンダーのメッシュを反転させるとかなんとか)
しかし、境界線のエフェクトを表示するのに、3Dモデルを使っている模様。
ビジュアルに拘るのならば、結局3DCGの作成が必要となるっぽい。