読者です 読者をやめる 読者になる 読者になる

Jetmanブログ

株式会社JETMANの中の人が、ゲームエンジンやUI/UX、クリエイターのキャリアデザインについて語ります。

UnrealEngine4でゲーム制作・ゲームの流れをつくる

今回やること

UnrealEngineではレベルという単位で場面の管理を行います。今回はオープニング画面、ゲーム画面、エンディング画面というくくりでレベルを用意し、ゲームの流れを組んでみたいと思います。

3つのレベルを用意する

ゲームをプレイさせるレベルは、前回までの流れの中で3人称視点の3Dアクション的なステージを用意しています。オープニングとエンディング用に、このステージを活かし、新たに固定カメラを用意しようと思います。

新規カメラの配置

f:id:jetmanblog:20150311180404j:plain

オープニング用のレベルに、基本オブジェクトからカメラをシーンに配置します。この状態で新規のレベルとして保存します。

f:id:jetmanblog:20150311180509j:plain

一方レベルブループリントで、Begin Play、Get Player Controller、先程配置したCamera ActorをSet View Target with Blendに結線します。

ワールド設定でGameMode Overrideを既に存在しているMy Gameに変更します。これでPlayした際の画面が固定カメラから見た画になるはずです。

次のレベルのロード

今回はゲームパッドのボタンを押したら、ゲームのメインレベル(start1)を読み込むようにしてみます。

f:id:jetmanblog:20150311180608j:plain

レベルブループリントで、ここではゲームパッドのYボタンから指を離した(Released)時に、Open Levelで次に開くレベル名(start1)を指定する、というのが基本形です。

レベルロード時にフェードさせる

 レベルの移り変わりは出来ましたが、バスっと切り替わってしまうのは味気ないので、前のレベルがフェードアウトし、次のレベルがフェードインしてくるようにしたいと思います。

Matineeでフェードイン/アウトのアニメを定義する

新規マチネを作成します。

f:id:jetmanblog:20150311180748j:plain

トラック上で右クリックし、新規ディレクターグループを追加します。

f:id:jetmanblog:20150311180758j:plain

追加されたDriGroup上で右クリックし、新規Fade Trackを追加します。

f:id:jetmanblog:20150311180808j:plain

キーフレームの値ですが、Fade Inの場合は、0secで1、0.5secで1、1.0secで0とします。Fade Outの場合は、0secで0、1secで1とします。

先のオープニングで、ゲームパッドのYボタン押し下げ後にフェードアウトした後、次のレベル(start1)を開く場合は、次のようなブループリントにしました。

f:id:jetmanblog:20150311180608j:plain

Yボタン押されたら、BGMが鳴っているのでそれをまずFade Outを使って1secで音をフェードアウトさせます。その次に、先に作ったfadeoutのMatineeをPlayに結線することで画面が黒にフェードアウトします。これらをOpen Levelの前に実行したいので、Open Levelの前にDelayを使って1sec時間を空けます。

start1のレベルが呼ばれた時にフェードインさせたいと思います。

f:id:jetmanblog:20150311181003j:plain

start1のレベルブループリント上で、Begin PlayをトリガーにfadeinのMatineeをPlayさせるように、ブループリントを組みました。

Open Levelを使えば、ボタンを押したり、何かと衝突したり、様々なトリガーと合わせて場面転換が可能となります。Matineeを使ったフェードイン/アウトの演出との組み合わせ技も効果的でしょう。

出来上がったサンプルゲームはこんな感じです。


UnrealEngine4のための習作(宝塚大学東京メディア芸術学部) - YouTube


株式会社ジェットマン|アプリ開発・UIデザイン

ゲーム領域|学科|宝塚大学 東京メディア・コンテンツ学部