【Unity/Blender】移動制限の透明な壁(円形)を作成&設定

Blenderで筒状の3Dモデルを作って、Unityで移動制限用の透明な壁として使用する。
基本オブジェクトのシリンダーをベースに作るので、センスやテクニックは必要ない。

ちょっと丁寧に解説し過ぎたので、目次から適当な所まで、お飛びください。

使用環境

基本的には同じ方法で出来るが、Blenderのバージョンが違うと各機能の配置が変わる場合がある。

  • Blenderバージョン:2.91.0
  • Blender言語:日本語

Blenderでの手順

まずはBlenderで3Dモデルを作って行く。

初期ファイルの作成

新規ファイル -> 全般で初期ファイルを開く。

右上の「シーンコレクション」でCubeを消す。

円柱を作成

左上の「追加 -> メッシュ -> 円柱」で円柱を作成。

円柱の設定を変更

左下に出る「円柱を追加」をクリックして円柱の設定を変更。

  • 頂点:多い程なめらかに。
  • 半径:ゲームで使用する大きさに合わせる。
  • 深度:ジャンプしても届かない範囲。
  • ふたのフィルタイプ:上下の制限をしない場合は「なし」。

【円柱の設定の一例】

  • 頂点:64
  • 半径:25m
  • 深度:10m
  • ふたのフィルタイプ:なし

モディファイアー「ソリッド化」を適用

右下の「モディファイアープロパティ」を開く。

「モディファイアーを追加 -> ソリッド化」で幅を0.1mに変更。

3Dモデルには裏表がある。
シリンダーの作り的に、ソリッド化しないと内側への当たり判定がなくなる。

保存してエクスポート

「名前を付けて保存」した後に、「エクスポート -> .obj」。
(設定はデフォルトのままでOK)

Blender側での手順は、これで完了。
以下Unity側。

Unityでの手順

透明な壁の当たり判定を設定して行く。

objファイルをインポート

Blenderで作成したobjファイルをUnityのAssetsフォルダにドラッグ&ドロップしてインポート。

シーン内に設置

Assetsフォルダからドラッグ&ドロップしてシーン内に設置。

objファイルの設定

  1. 設置したobjファイル -> 子のdefaultを選択。
  2. Mesh Renderer -> 右クリック -> Remove Component
  3. Add Component -> Mesh Collider (Convexはfalseのままにしておく)

こうなればOK。

Convexは無効のままにしておくのがポイント。
有効にすると、当たり判定が表面だけでなく、内部にも発生してしまう。

プレハブ化(任意)

親のobjファイルをAssetsフォルダへドラッグ&ドロップしてプレハブ化。

以上で「移動制限用の透明な壁」の実装完了。

移動制限のみならコードだけで実装出来るらしい

この記事を書こうとしている時に発見したが、コードだけで再現出来るらしい。
(プリミティブのシリンダーのメッシュを反転させるとかなんとか)

しかし、境界線のエフェクトを表示するのに、3Dモデルを使っている模様。
ビジュアルに拘るのならば、結局3DCGの作成が必要となるっぽい。

タイトルとURLをコピーしました