UNREAL→LABØ

Unreal Engine4の情報をまとめます。

【第3回】ジオメトリブラシを使う

 


概要

今回は「ジオメトリブラシ」について簡単に説明します。
またレベルへのメッシュ配置、当たり判定について基礎を学びましょう。


ジオメトリブラシとは、通常のアクタとは異なる「レベルデザインの下書き」に使うエディタ専用ブロックのようなもので、公式ページでは「レベル内の空間に配置されているボリュームを埋めたり削ったりするもの」と説明されています。


DCCツール(Maya、Blenderなど)で仮メッシュをつくらなくとも、ある程度シルエットをとる・環境を作ることが可能になるので、本番使用のメッシュができるまでの仮素材として使用するのが一般的かもしれません。

 

また、スタティックメッシュに変換する機能があるため、簡単なプロトタイプ用のメッシュ作成に使えます。レベルデザイナーやプランナーにとってはありがたい機能ですね。

 

ちなみに公式ページにはジオメトリをつかったレベルデザイン(ステージの制作)変遷がまとめられています。公式のサンプルから中身を見ることもできますので、興味のある方は読んでみましょう。

f:id:miccak:20210426013448p:plain


 

 

ジオメトリブラシを作成(配置)する

さっそく、ジオメトリブラシを配置してみましょう。

「アクタを配置」パネルから「ジオメトリ」を選択します。
ブロックのようなと説明しましたが単純な立方体だけでなく、さまざまな形状が用意されています。

 

f:id:miccak:20210426140722p:plain

 

ひとまず「ボックス」をビューポートにドラッグ&ドロップしてください。

f:id:miccak:20210426140757g:plain

 

 コンテンツブラウザで、「マテリアル」などが選択されている状態でドラッグ&ドロップを実行すると、マテリアルが反映された状態で配置されるので注意してください(特に進めるうえでは問題ありません)

 

クリックして選択状態にします。
 
詳細タブでジオメトリブラシのサイズを変更してみましょう。
 
ジオメトリブラシは前回で扱ったキューブや他のメッシュ同様に、トランスフォーム項目から位置、角度などを変更できます(もちろんマウス操作も可能です)。
 
ただし、基本的な大きさはスケールで変更せず「Brush Settings」のブラシ形状から変更することをおすすめします。

 

f:id:miccak:20210426140830p:plain

 

 

簡単モデリングをしてみよう

 ツールバーの「モード」から「ブラシ編集」を選択しましょう。

f:id:miccak:20210426140843p:plain

 

すると、ジオメトリブラシの頂点が強調される状態に変化します。

f:id:miccak:20210426140854p:plain


この編集モードのときは、ジオメトリブラシの「頂点」「辺」「面」が編集可能な状態になります。


図のように、形状を変更してみましょう。

f:id:miccak:20210426141240g:plain



MayaなどのDCCツールのような自由度はありませんが、モックアップ用の壁やアクターを作るときなどに重宝します。

f:id:miccak:20210426140943p:plain



 

そこまで難しい操作でもありませんので、いくらか操作感を掴んだら進みましょう。


ジオメトリブラシは、いくつかのメッシュを組み合わせて「加算」「減算」も可能です。

詳細タブの「Brush Type」を「Subtractive」に変更しましょう。

f:id:miccak:20210426141350p:plain


ただし減算処理には描画順序があるので注意してください。
順序は「Brush Setting」から変更できます。

f:id:miccak:20210426141401p:plain

 

これら以外にも分割機能や連結(頂点マージ)などの機能があります。
余裕があれば、活用してみましょう。

 

ちなみに、編集後に「Brush Settings」からサイズ変更を行うと、変更が初期化されてしまうことがあります(UE4のバージョンによるようです)。

 

適当に作成したら「プレイ」ボタンでゲームを起動してみます。

実際にキャラクターを動かしながらメッシュにぶつかったり、乗ったりしてみましょう。
キャラクターとの当たり判定(コリジョン)も形成されていますね!

f:id:miccak:20210426141413p:plain

 

 

ジオメトリブラシのメッシュ変換

「環境を作成する」という目的だけならばジオメトリブラシのままで問題ないのですが、例えば作成した仮素材を使ったアクタに対してなにか処理をさせたい場合(処理については今後学習します)、ジオメトリブラシのままではうまくいきません。
あくまでも、ジオメトリブラシは見た目と当たり判定だけの「仮メッシュ」という役割なのです。

もしこのジオメトリブラシへ処理を与えたい場合、「スタティックメッシュ」などに変更しなければなりませんが、素晴らしいことに、UE4では作成したブラシをメッシュへ変換する機能があります。

簡単なメッシュを作成して試してみましょう。


手始めに、プレイヤーキャラが乗るようなジオメトリブラシの組み合わせを作成します。

f:id:miccak:20210426141432p:plain


画像では選択状態になっています。

 

作成したら、それぞれをひとつにまとめるため、ジオメトリブラシをアウトライナからフォルダ(ディレクトリ)に入れておきます。

 

フォルダを作成するには、アウトライナの右上のボタンなどから作成するか、フォルダに含めたいものを選択状態にしてアウトライナ上で右クリック→「へ移動」→新規フォルダを作成を選びます。

 

上記は絶対に必要な手順ではありませんが、フォルダでまとめる動作はこれからもしばしば使用します。やっておきましょう。

 

続けて、アウトライナでフォルダ以下の(メッシュ化したい)ジオメトリブラシすべてを選択したら、詳細タブの「Brush Settings」から「スタティックメッシュを作成」を選択しましょう。

f:id:miccak:20210426141447p:plain

 

ボタンは隠れているので注意(▼をクリックして表示します)

変換するとジオメトリブラシには戻せませんので、念の為コピーしておくと安心です。 

どこに保存するか&名前を決めるウィンドウが表示されます。
適宜変更して「スタティックメッシュを作成」を押してください。

f:id:miccak:20210426000948p:plain
f:id:miccak:20210426000959p:plain

 

図ではディレクトリの「Geometry」>「Meshes」に「SM_Mesh01」という名前で保存しました。

ファイルの名前は日本語でも問題ない(はず)ですが、バグが起きないとも限りませんので、英数字を使っておきましょう。ちなみに名前の「SM」はスタティックメッシュを指します。

 


当たり判定・衝突判定(コリジョン)をつける

さて、せっかく作成したのでプレイ画面で確かめてみましょう。

ジオメトリブラシのときにはあったはずの「キャラクターとの当たり判定」であるコリジョンが消えてしまったことを確認できるはずです。

f:id:miccak:20210426141503p:plain

 

変換後のメッシュにはコリジョンが引き継がれない決まりになっているので、新たに当たり判定を設定する必要があるのです。

さっそくコリジョンをつけてみましょう。

コンテンツブラウザから作成したメッシュをダブルクリックします。

f:id:miccak:20210426141510p:plain


スタティックメッシュブラウザが開いたでしょうか?

f:id:miccak:20210426141528p:plain


ここでスタティックメッシュの詳細内容を確認したり、変更することができます。

ツールバーの「コリジョン」という項目から「単純コリジョン」を選択します。
これでメッシュにコリジョン(当たり判定)があるかどうか目視できるようになりました。

f:id:miccak:20210426141538p:plain



もちろん現時点ではコリジョンがないので、なにも表示されません。

メッシュにコリジョンをつけてみましょう。

メニューバーのコリジョン項目を開きます。
「ボックス単純化コリジョン」を選択しましょう。

図のように、メッシュの周囲に緑色のワクが表示されれば、コリジョンの追加ができています。

f:id:miccak:20210426141549p:plain

 

追加したコリジョンは、デフォルトでプレイヤーキャラクターをブロックする仕様です。
ためしにこのまま保存してプレイしてみましょう。

f:id:miccak:20210426141600p:plain

 

見事に衝突判定が追加されてキャラクターが上に乗ることができました。

ただ、図のような状態ですと、当たり判定の形状とメッシュ形状が一致しないように感じます。
調整してみましょう。

 

各自作成されたメッシュがピッタリ一致していればそのままで構いません。 

 


コリジョンの削除

コリジョンの削除は、作成同様にメニューバーから行います。

f:id:miccak:20210426141613p:plain

 

追加や削除は自由に行なえますので、ここではいったん削除して確かめてみましょう。

 


コリジョンの調整

コリジョンは複数設定して、組み合わせることも可能です。

f:id:miccak:20210426141623p:plain



図は球体単純化コリジョンとボックス単純化コリジョンが組み合わされた状態です。
もちろんレベルに置いたメッシュ同様に手動で角度や位置を調整できます。

詳細パネルから微調整も可能です。

 

f:id:miccak:20210426141636p:plain
コリジョン > Primitive 項目から確認してみましょう。

 

純化コリジョンのほか、ある程度メッシュに沿ったコリジョンを自動で作成してくれる「オートコンベックスコリジョン」という機能もあります。

メニューバーのコリジョンからオートコンベックスコリジョンを選びます。
(確認するためコリジョンを削除した状態です)

f:id:miccak:20210426141650p:plain

 

すると、図のような「凸型分解」ウィンドウが開くはずです。

f:id:miccak:20210426141702p:plain


 

「適用」ボタンを押してみましょう。
形状に沿ったコリジョンが設定されるはずです。

形が気に入らなければ、ウィンドウの「ハルカウント」「マックスハル」」「ハル精度」を変更して、適用ボタンを実行しましょう。何度か行えば、ある程度の微調整ができるはずです。

f:id:miccak:20210426001444p:plain
f:id:miccak:20210426001455p:plain

スタティックメッシュブラウザではその他にもさまざまな設定が可能ですので、興味があれば調べてみましょう。今回は、基本的な操作等が理解できれば問題ありません。

ある程度調整したら、次へ進みましょう。

f:id:miccak:20210426141715p:plain

 

今回時は以上です。次回からは処理(ブループリント)について学習していきます。

おつかれさまでした!

 


【補足】メッシュの明暗がおかしくなる

作成したメッシュを設置したあと「ライティングをビルド」を実行すると、図のようにメッシュ表面の明暗がおかしくなることがあるかもしれません。

f:id:miccak:20210426141727p:plain


これはライトマップという明暗情報の設定が正常でないため発生します。
直してみましょう。

解決方法1

手っ取り早く解決するには、可動性を「ムーバブル」に変更することです。
動的にライトの計算を行うため、正しい明暗情報が表示されるはずです。

ただし動く要素のないメッシュを「ムーバブル」にするのは処理負荷的にあまり良くありません。
基本的には次の解決方法を使います。


解決方法2

スタティックメッシュエディタで調整する方法です。

詳細タブから「Light Map Resolution」設定を64以上(設定値の倍数)に、
「Light Map Coordinate Index」を1に設定します。

f:id:miccak:20210426141740p:plain


ほとんどの場合、これで解決するはずです。

 


【補足】インポートしたメッシュのコリジョン

MayaなどのDCCツールからインポートしたスタティックメッシュについても、同様の操作でコリジョンを追加可能です。しかし、コリジョン作成後、再インポートするとエディタ上で設定したコリジョンは消えてしまうので注意しましょう。

 

コリジョンをインポートする方法については以下公式サイトをご覧ください。
コリジョン用メッシュは「UCX_メッシュと同名」と命名するなどの規則が書かれています。