【第8回】レベルの環境設定基礎
- 概要
- レベルの複製
- レベルを調整する
- Lightmass Importance Volume
- PostProcess Volume
- Directional Light (Light Source)
- BP_SkySphere(SkySphereBlueprint)
- Atmospheric Fog
- Sphere Reflection Capture
- Player Start (Network Player Start)
- Game Mode を作成する
- デフォルトPawn(Default Pawn Class)を指定する
- レベルにGame Modeを指定する
概要
今回はブループリントお休みです。
作成するデモレベルを作成する準備として「環境設定」について基礎を学びましょう。
レベルの複製
バックアップを兼ねて使用するレベルを分けることにしましょう。
右クリックからレベルを複製できます。
レベルを調整する
「DemoMap」をダブルクリックして開きます。
レベルを調整しながら、環境作成について学んでいきましょう。
わかりやすいように、いらないアクタを消してライティングビルドまで実行しました。
ライティングビルドは過去回を見直してください。
Lightmass Importance Volume
これはライトマスインポータンスというボリューム(範囲)です。
このボリュームは、詳細な(間接)ライティングを行う範囲を示していると考えてください。
これがないと、見える限りすべての範囲に対して詳細なライト計算が行われてしまい、負荷が増加してしまいます。ですので、「Lightmass Importance Volume」は削除しないほうが無難です。
レベル(地面)を大きくした場合は、それを覆うように詳細パネルから大きさを変更しましょう。
これ以上の詳細は省きますが、気になる方は公式ページを確認くださいね。
PostProcess Volume
これはポストプロセスと呼ばれる機能で、全体的なエフェクト(雰囲気)を調整できます。
ボリュームで範囲を指定して、詳細パネルから値を調整します。
詳細は公式ページを参考にしてください。
レベルにある設定は削除しなくても構いません。
どんな機能があるかは簡単には語り尽くせませんが、ひとまず知っておきたい項目を紹介します。
詳細パネルにある以下の機能を見てみましょう。
自動露出機能
自動露出とは、暗い場所から明るい場所に移動したときなどに、目(カメラ)が光に慣れていく様子を再現したものです。この明るさを調整したいときや、明るさを変えたくないゲームを作るときには「最小輝度」や「最大輝度」パラメータを調整します。
これが同じ値に固定されているときは、露光が行われなくなるということですね。
ポストプロセスの全体適用
ポストプロセスは、そのボリューム内にあるカメラに対してのみ影響を及ぼすものですが、その範囲を無視して全体化させるオプションが、この「Infinite Extent(Unbound)」です。
チェックを入れればレベル全体にポストプロセスの効果が適用されるようになります。
Directional Light (Light Source)
指向性ライトと呼ばれる一方向へ照らす明かりです。
これ自体の角度を変えれば光の向きなどを変更できます。
ただしライティングビルドも必要になるのでご注意ください。
ライトの可動性がステイショナリーのためです。
デフォルトで存在する「Light Source」を消してしまうと、他にライトが存在しない限り暗闇となってしまいます。基本的に消去しない方が良いでしょう。
BP_SkySphere(SkySphereBlueprint)
「天球」と呼ばれるブループリント(アクタ)です。
レベルを囲うような球体をしており、昼夜の雰囲気づくりや雲の動きなど、空に関する表現を設定できます。デフォルトでは指向性ライトと紐付いています。
こちらもとくに理由なければ、消さないで進めましょう。
Atmospheric Fog
フォグと呼ばれる機能で、大気の密度や通過する光りの散乱などを表現する表現する機能で、その名の通り霧のような表現をつくることができます。遠景をぼかすときなどにも活用されます。
そのままでも削除してもかまいません。
Sphere Reflection Capture
リフレクションキャプチャと呼ばれます。
事前に反射する球体で、レベルを写し込んで光を反射させる機能があると考えてください。
床、壁に照り返しのような表現を付加したいときなどに使います。
なお反射は常に静的です。削除してもそのままでも問題ありません。
Player Start (Network Player Start)
「プレイヤースタート」と呼ばれる開始地点です。
とくに指定がない場合、プレイヤーが操作するPawnは、このポイントに生成されます。
Pawnとは、プレイヤーの制御可能な、すべてのアクタの基本クラスのこと。
キャラクター(Character)の親システムのようなものと考えてください。
アクタを配置パネルの「基本」>「プレイヤースタート」をドラッグ&ドロップして配置できます。
ただし、このテンプレートのレベルなど、すでに使用するキャラクターがレベル上に配置されている場合は、デフォルトで使用されません。
「ThirdPersonExampleMap」の(複製したものでも可)、アウトライナから「ThirdpersonCharacter」を選択します。詳細パネルを確認してください。
ポーン > 「Auto Possess Player」の項目に「Player 0」と指定されていることがわかります。
これは「このキャラクターは Player 0が所有する」という意味です。
基本的にPlayer 0 とは1Pプレイヤーのことを指します。
Pawn(Character)にこの設定がされている場合、ゲーム開始時に「Player Start」が使われることはありません。
ためしに、「Auto Possess Player」の設定を「Disable」に変更してみましょう。
「Auto Possess Player」の右にある矢印をクリックし初期状態にします。
プレイすると、「Player Start」から開始されたことがわかるはずです。
これは「Game Mode」(ゲームモード)と呼ばれるセッティングに「ThirdpersonCharacter」が登録されているためです。
もしこのときキャラクターが表示されないで始まった場合は、レベルにこのセッティングが設定されていないためです(問題があるわけではありません)。
次項で、「Game Mode」について学習していきましょう。
極論、どのレベルでもキャラクターを配置して「Auto Possess Player 」を設定しておけばPlayer Startは不要なのではと考えるかもしれませんが、再生成させたいときなどに使ったりすることもありますので、今後なにかと便利です。
Game Mode を作成する
「Game Mode」(ゲームモード)は、プレイ中のゲームに関する情報を処理する機能で、ブループリントグラフを有しています。
レベルブループリント同様「GameMode」は基本的に「レベルに対してひとつだけ」設定できます。
これは覚えておきましょう。
「Game Mode」のブループリントには、主に「ゲームのルール」などを記述することが多いのですが、それ以外に「デフォルトのPawn」などを設定するという役割があります。
「デフォルトのPawn」とは、プレイヤーが通常操作するアクタ・キャラクターのことで、ここに設定されたものを「Player Start」から出現させることになります。
ただし上記にあるように、配置キャラクターの「Auto Possess Player」を変更していない場合に限ります。
あらかじめコンテンツブラウザの「ThirdpersonBP」>「Blueprints」フォルダには、この「ThirdpersonCharacter」が登録されているGame Modeが作成されていますが、新たに作成してみましょう。
コンテンツブラウザの任意のフォルダを開きます。
コンテンツブラウザの「追加/インポート」を押して「ブループリントクラス」を選択します。
親クラスを選択ウィンドウが出現することを確認します。
これは、作成するブループリントの基盤となる仕組みを指定するもので、たとえば「Character」を選べば、「ThirdpersonCharacter」のように操作してジャンプなどができる仕組みが使用できるブループリントが作成できます。
「Game Mode Base」を選びます。
名前は何でも構いませんが、英語名にしておきましょう。
図では「BP_MainGame」としました。
デフォルトPawn(Default Pawn Class)を指定する
ダブルクリックして「Game Mode」を開きます。
ブループリントグラフが表示されたでしょうか?
表示されなかった場合は「ブループリントエディタを開く」をクリックして開きます。
ツールバーの「クラスのデフォルト」を選択します。
詳細パネルを確認しましょう。この場所に「Pawn」などを登録します。
「Default Pawn Class」のプルダウンを選択して、スタート時に生成したいアクタを指定します。
図では「ThirdpersonCharacter」を指定しています。
これで、デフォルトのPawn指定が完了しました。
しかしこれだけでは、Game Mode内の設定を書き換えただけにすぎません。
プレイしたときに確認できるよう設定をレベルに登録しましょう。
レベルにGame Modeを指定する
ワールドセッティングの「Game Mode」項目を見てみると「None」になっています。
これは登録されていない状態です。
ここでひとつ疑問に思うかもしれません。
登録されていないにも関わらず、先ほど「Auto Possess Player」を「Disable」にした状態でプレイしたとき、なぜか「ThirdpersonCharacter」が出現しました。
これはデフォルトのGame Modeが参照されているために起きる現象です。
デフォルトのGame Modeは、プロジェクト設定の「マップ&モード」項目から設定でき、「ThirdPersonTemplate」を使っているときはここに「ThirdPersonGameMode」が登録されます。
プレイして確認してみましょう。
「ThirdpersonCharacter」が指定位置から生成されるはずです。
上記で説明したとおり、既存キャラを削除するか、キャラの詳細パネルで「Auto Possess Player 」がDisableになっていなければ確認できないのでご注意ください。
Game Modeについて詳細を知りたい方は公式ドキュメントを参照してください。