Unreal Engine ゲーム制作体験会レポート(その②)の続き。
さぁラストなので頑張りましょう~~~!!
前回、マテリアルを付けてEnemyがぐるぐる回転させることが出来ましたね。
今回は【イベント】を作っていくよ!!!!
カスタムイベントを追加する。
カスタムイベントを追加して、名前をBombに変更する。
当たり判定の時のエフェクト生成の為にSpawnEmitterAtLocationも追加。
コンテンツ画面の「コンテンツフォルダ」まで戻ってp_で検索。
P_Explodeを探して、ノードの画面にドラッグアンドドロップ。
ノード側のEmitter Templateにp_Explosionを設定(ドラッグアンドドロップでいける)。
ノードを更に追加。
同じように、コンドは音にExplosion_02を登録。
こんな感じで繋げる。
黄色いのと白いのを両方つなげるのを忘れないように。
ずっと前に作った「AI Move To」の横に、今作ったBombのノードを追加する。
こうなる。
このままだと爆発が小さすぎて爆発が見えないので、さっきのBombの方でScaleを10にする。
以上で爆発処理は完了!
次は敵と接触時にプレイヤーが死ぬようにします。
敵と接触時、プレイヤーにOnDeadという死亡処理を走らせるのがメインの目的です。
自分の名前フォルダのCharacterのファイルをダブルクリック。
キャラクター画面が開かれる。
BP enemyのほうで…
つくられる。
Pawnにかえる。
こうなる。白い線も繋げること。
この青いアイコンは配列を表している(複数の要素が管理できるということ)。
こうする。
こうなると、BP_Enemyと接触したオブジェクトはここで検知される。
更にObjectTypesでPawnを選んだので、Pawn系のオブジェクトのみ対象となる。
更にOutActorsでForEachLoopに繋いでるので、「接触した各種PawnのActor一覧」がForEachLoopにて読み込まれ、それぞれ処理が走る予定。
今回は「全てのPawn」ではなく自機オンリーで処理を走らせたい。なので、自機と分かる「BABA_Character」かを見たい。それでPawnがBABA_Characterなのかどうかを見るために、以下を追加する。
この後はBaba_Character側で処理を追加するので、一旦そちらの画面に移ります。
左の「+関数」から自作関数を追加する。名前はOnDeadにする。
こうなって…
こうする。
そうしたら一回コンパイルして、エネミーに戻る。
自機の場合にOnDeadを呼ぶ用意にする。ただしOnDeadはBaBaクラス独自のものなので、右クリックでノード選択からは出てこない。以下の画像のようにAs Baba Characterから線を引いて、選択肢からOnDeadを探して登録する。
次に終了処理を作成する。
Actorを削除するDestroyActorを呼び出す。
続いてOnDeadの中身を実装していきます。
GetCurrentLevelNameのノードを追加。これで現在のレベルの情報を知ることができる。
その上で次に、レベルをリセットさせる処理を追加します。
繋げるとこうなる。
間に増えたのは、型のずれが起きないように変換してくれる便利なものが自動生成された。
■リセット処理のバグ修正
ここのSphereRadiusを300に(めっちゃ広く設定して、回りのオブジェ全部見る)。
GetActorLocationからSpherePosにも繋ぐ。
そうすることで接触時に「接触したオブジェの場所」から「300の距離」ないにあるオブジェとの処理が走る。
修正仕様書から作業を割り出し、できるところは自力で実装し、わかんないところはメンター講師の手取り足取りで、何とか動くアプリができる。ただしUIもスコアもないので、新規ゲームというより、既存ゲームの改造に近い感じのものができあがる。
一旦ここまでで作業完了です!!!次回はそれぞれの発表のお話に移ります。
総評
2日目からは、講師Nさんが残りのチュートリアル部分を実装したファイルを各種用意していたため、チュートリアルはファイル差し替えだけで完了しました。実作業としては、ゲームオーバー処理を作ったり、質疑応答を少し行ったりして完了しました。その後、各自で手分けして自前の試用の実装を進めました。
Tさんはなるべく自力で調査しながら実装(Unity経験者)。
Bさんは講師のNさんと1対1の形式で実装(開発未経験)。
昼休憩の段階では更新されたサンプルを元に、両者が独自に実装を開始しました。夕方ごろにはある程度ゲームとしての機能が出来上がってきていました。ただし、その分バグも発生し、初期段階では問題なかった弾と敵の衝突処理が発生しなくなるなど、部分的に苦戦している模様でした。
予定としては、今日中に「ゲームとして優先度が高いと思っている仕様」の実装を終え、3日目に優先度の低い処理やブラッシュアップ、バグ修正などを行う予定です。
基本的に両者とも黙々と実装に励んでおり、特に開発未経験のBさんも頑張って追いついている様子です。
次回行う場合は、開発経験のレベルを合わせないときつそうです。正直、Bさんはよく追いついていますね…というレベルです。
次は「発表会の様子」になりますのでぜひ見てください!!