レベルエディタでゲーム中のフィールドを作成する

2015年8月21日(金)
出村 成和
Unreal Engine 4の歩き方
Unreal Engine 4を手に入れて今すぐゲーム開発に飛びこもう!Amazon詳細ページへ
この記事は、書籍『Unreal Engine 4の歩き方』の内容を、Think IT向けに特別にオンラインで公開しているものです。詳しくは記事末尾の書籍紹介欄をご覧ください。

レベル設計とは聞き慣れない言葉ですが、UE4でいうレベルとはゲーム中のフィールドを指します。従来のレベル設計は、Mayaなどのモデリングツールで行われていました。一方UE4では、レベルエディタを用います。

レベルの作成

UE4では、レベルエディタ上でレベルを作成します。レベルを作成する場合は、制作対象となるレベルに合わせて制作手法を使い分けます。

狭い空間

ビルや建物など狭い空間を作成する場合を考えてみます。この場合は、建物の壁、床、柱などは、ジオメトリブラシ(以下、ブラシ)を使って作成します。ブラシは基礎的な形状(立方体、球、多角錐、階段など)のみ提供されており、それらを拡大・縮小、頂点の編集、組み合わせなどを行って人工物を作成していきます。ブラシを使うことで、頂点の削除や移動、壁に穴を開ける、マテリアルを指定するといったことが、レベルエディタのみで行えるため、素早くレベル作成できます。

また、配置したレベルをスタティックメッシュに変換することで、コリジョン設定などより細かな設定が行えます。

屋内など狭い空間を作成する様子

図1: 屋内など狭い空間を作成する様子

広い空間

レベルエディタでは、建築物の内部、洞窟のような狭い空間だけでなく、渓谷のように屋外の広大なレベルを作ることもできます。この場合は、ランドスケープを利用します。ランドスケープでは、1レベルあたり20km四方相当のレベルが作成できます*1(20km四方以上の空間が必要な場合でも、複数のレベルを組み合わせて実現できます)。

ランドスケープでは、粘土細工のように、面をつまみ上げたり削ったりすることで、丘陵や川を作成します。また山を削ってトンネルを作ることもできます。草原や砂漠といったマテリアルの指定は、一括指定・高さマップによるブレンド・ブラシ機能を用います。

[*1] UE4では原則としてcm(センチメートル)で扱います。

丘陵のような広い空間も作成できる

図2: 丘陵のような広い空間も作成できる

レベルに配置する物体

椅子や机といった、レベルに配置する静的な3Dモデルは、UE4ではスタティックメッシュと呼ばれます。

スタティックメッシュは、いくつかの基本的なアセットが用意されています。その他にも、Mayaなどで作成した3Dモデルをインポートしたり、ブラシからの変換で新しく作成することができます。

スタティックメッシュの表面も、レベルエディタ上で自由に変更可能です。例えば、机の3Dモデルに対して木目調のマテリアルを指定すれば木製の机が、金属調(メタリック)なマテリアルを指定すればテカテカ反射する金属の机が用意できます。このように一つのモデルをベースに、見た目の異なる様々なモデルが作成できるようになっています。

指定可能な機能

レベルエディタでは、レベル作成に多彩な機能や設定ができます。どのような設定ができるのか見ていきましょう。

ライト

ライトとは、蛍光灯、電球、たいまつ、太陽など自ら発光する物体(光源)全般を指します。これらライトも、レベルエディタで配置・設定できます。

種類

ライトには特性が異なる4つの種類、ディレクショナルライト、ポイントライト、スポットライト、スカイライトがあります。

設定可能なライト

図3: 設定可能なライト

ディレクショナルライトは、いわゆる太陽光を指します。はるか彼方から発せられた太陽光は平行に差すので、それを実現するために設定します。

ポイントライトは、蛍光灯、たき火のように決まった場所から発せられる光(拡散光)を指します。

スポットライトは、文字通りのスポットライトを実現するための光で、ポイントライトのような拡散光ではなく指向性の強い光となります。

スカイライトは、先に解説した光源とは少し異なり、全方向からの光を再現しています。また、太陽が高ければ空が青くなり、太陽が沈む前は、空が赤くなるといった表現も行えます。

これらの光源では光の色、光の強さを設定できる他、スポットライトであれば光の範囲も指定できます。また、複数の光源も設置できます。

可動性

ライト特有の設定項目として、可動性があります。ライトごとにスタティック(静的)、ステーショナリー(固定)、ムーバブル(可動)を指定します。違いは、リアルタイムにライティング処理を行うか、最初から処理済みとするかといった具合です。

光源ごとにライティング処理の内容が設定できる

図4: 光源ごとにライティング処理の内容が設定できる

違いを詳しく見ていきましょう。まずスタティックは、光源を固定化しておき、ライトマップ*2を生成、適用してライティング処理済みとしてしまう方法です。これにより、リアルタイムでのライティング処理が不要となるため、ハードウェアの演算負荷が軽くなります。この設定は、モバイル系などのスペックが高くないハードウェア向けに活用すると効果的です。

[*2] 物体の陰影のみを記録したテクスチャーのこと。

次のステーショナリーは、蛍光灯やたき火のように光源の位置、向きを固定化しますが、輝度や色は変更できます。移動しないオブジェクトはライトマップが適用され、移動可能なオブジェクトは動的なライティング処理が行われます。ステーショナリーは、ちょうどスタティックとムーバブルの利点を併せ持つライティング処理と言えます。ステーショナリーで設定した光はあくまで直接光として扱われ、間接光としては扱われません。

最後のムーバブルですが、これはスタティックやステーショナリーのような制約がない自由な光源です。例えば、プレイヤーがたいまつを持ち歩き周囲を照らすといったように光源自体が移動する場合は、ムーバブルの光源を指定します。最も自由度が高い光源である反面、ハードウェアの演算負荷も高くなります。

このように、レベルエディタ上でライティング処理方法が指定できるので、モバイル向けやPCゲーム向けといった動作プラットフォームに合わせてライティング処理を切り替えることができます。

プレイヤー、敵の配置

プレイヤーや敵などの配置もレベルエディタ上で行います(プレイヤーはプレイヤースタート、敵は空のキャラクターなどを配置する)。ゲームの開始直後は、この位置からプレイヤーキャラクターがスタートします。

プレイヤースタートと空のキャラクター

図5: プレイヤースタートと空のキャラクター

プレイヤーのスタート地点は旗とコントローラで表現される

図6: プレイヤーのスタート地点は旗とコントローラで表現される

ボリューム

様々な特殊効果を備えた空間(ボリューム)を、範囲を指定して設定できます。

様々な特殊効果が有効な空間を設定できる

図7: 様々な特殊効果が有効な空間を設定できる

ボリュームは種類別に以下のように分類できます。

表4.1: 設定可能なボリューム

役割ボリューム名
進入禁止Blocking Volume(プレイヤー)、Camera Blocking Volume(カメラ)
プレイヤーにダメージを与えるPain Causing Volume
破壊するKill Z Volume
物理演算を変更(水に浮くなど)Physics Volume
音の加工範囲Audio Volume
ライティングの最適化Lightmass importance Volumeなど
敵キャラクターの動きを指示Nav Mesh Bounds Volume、Nav Modifier Volume
イベント発生Trigger Volume
表示範囲を限定Cull Distance Volume
映像的な特殊効果Post Process Volume

Post Process Volumeについては「ポストプロセスエフェクト」で詳しく解説します。

光の反射

反射キャプチャは、映り込みなどの反射が設定できます。例えば、夜の街灯の光が水たまりに反射する、フローリングの床に太陽光が反射するといった表現に利用します。

反射の設定は、スフィア反射キャプチャ、ボックス反射キャプチャで指定します。これら反射キャプチャは、キャプチャ範囲や反射する光の度合いを指定できます。

スフィア反射キャプチャ、ボックス反射キャプチャ

図8: スフィア反射キャプチャ、ボックス反射キャプチャ

光の反射などの影響範囲が設定できる

図9: 光の反射などの影響範囲が設定できる

ただし、反射の処理はハードウェアの演算負荷が高い処理であるため、影響範囲を限定して演算負荷を軽くするようにしましょう。

その他

その他にも、電線などのケーブルをシミュレーションするCableActorなどがあります。

ポストプロセスエフェクト

ポストプロセスエフェクトは、後処理を対象とした視覚効果を指します。画面に描画する内容が決定した後の処理なので、画面に対して特殊な処理を行うことができます。代表的な処理として、アンチエイリアス、レンズフレア、被写界深度、モーションブラーなどがあります。

ただしこれらの処理は、ハードウェアの演算負荷が高い処理ですので、あらかじめPost Process Volumeで影響範囲を限定しておきましょう。

先に挙げたエフェクトがどのようなものであるのか、実例を紹介します。

アンチエイリアス

アンチエイリアスは、スタティックメッシュなどの輪郭を滑らかに見せるための処理です。

図10の画像は、左から、アンチエイリアスなし(AA None)、Fast Approximate Anti-Aliasing(AA FXAA)、Temporal Anti-Aliasing(AA Temporal)を適用しています。

アンチエイリアスの違い

図10: アンチエイリアスの違い

レンズフレア

レンズフレアは、レンズのマイナスの特性により起きる現象をシミュレートしています。例えば、光の方向にカメラを向けた時に、いくつにも重なった輪の出現をシミュレートすることで、光の明るさを強調しています。

レンズフレアでは、全体の色調、レンズフレアが出現するピクセルの最小輝度などが設定できます。

太陽光の強さをレンズフレアを使って表現する

図11: 太陽光の強さをレンズフレアを使って表現する

被写界深度

カメラのフォーカスが当たった付近の物体は明確に見えるが、その前後に配置されている物体は、フォーカスが合わずボケて見える現象をシミュレートしています。

被写界深度では、フォーカスが当たるエリアやボケ具合などが設定できます。

フォーカスが当たっている物体以外はボケてみえる

図12: フォーカスが当たっている物体以外はボケてみえる

モーションブラー

動きが速すぎて、ブレて見えてしまうのをシミュレートしたエフェクトです。

図13では、モーションブラーが有効化された状態で、物体が回転した状態です。特に最も右側の物体が輪郭が明確にみえないほどの残像が表示されています。これは、この物体が、これら4つの中で最も高速回転しているためです。

回転速度によってブレ具合も異なる

図13: 回転速度によってブレ具合も異なる

UE4の数あるエディタの中でも、最初に触れるのはレベルエディタでしょう。レベルエディタでは建物などや草原・丘陵などのオープンフィールドといったレベル(ステージ)に関する全ての設定が行え、それらの設定ができた後にすぐテストプレイに取りかかれます。

あわせて、アンチエイリアス、レンズフレアなどの画面効果(ポストプロセスエフェクト)が設定できます。これらを利用することで、ゲームのシーンをより綺麗でリアルな雰囲気にすることができます。

この記事のもとになった書籍
Unreal Engine 4の歩き方

出村 成和 著
価格:1,500円+税
発売日:2015年4月17日発売
ISBN:978-4-8443-3810-9
発行:インプレス

Unreal Engine 4の歩き方

GDC 2015で事実上の無料化が宣言された話題のゲームエンジン「Unreal Engine 4」。この本では、Unreal Engine 4(UE4)の入門以前となる、UE4の豊富な機能やエディタの概要を解説しています。UE4を使い始めて、機能や編集機能の豊富さを目の当たりにして途方に暮れる前に、本書で機能やエディタを一通り把握しておくと、目的の作業を行う際や、リファレンスマニュアルで調べる際にも、その知識が役に立ちます。100ページちょっとで手軽にサクッと読める一冊です!

Amazon詳細ページへImpress詳細ページへ

フリーランスプログラマー。主にC、C++、アセンブラがメインでいろいろと活動中。PS1、PS2を中心にゲーム開発に携わっていた時期がある。Oculus RiftなどのVR環境を使ってソフトを作ろうかと画策中。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています