スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

UE4ゲーム制作入門十二日目

一人UE4ゲーム制作入門アドベントカレンダー十二日目です。

二日に渡る関西UE4ゲームジャムお疲れ様でした。色々と学ぶものと反省点が多かったですが、とても楽しかったです。一緒に組んだEチームの皆さんありがとうございました。

今日は、他の種類の敵を作るために敵のベースクラスを作ります。

BP_Enemyをベースクラスとする


まず、今まで作っていたBP_Enemyのコピーを取ります。

複製したクマBP_EnemyをBP_Bearに名前を、親クラスをBP_Enemyに変更しましょう。その際、継承した先に同じ変数や関数があるために、後ろに数字の付いた名前になったり、エラーをはいたりすると思うので、全部消します。
しかし、継承した変数が見えないのは利用しづらいので、表示するように変更します。
継承した変数を表示
また、後述しますが、親クラスには子クラスで別々の処理をさせたい場合、関数の宣言だけをしておくことになります。その実装をするには、このオーバーライドというのを選ぶと、基本的にはイベントノードがイベントグラフに、返り値があればFunctionsのところに追加されます。
オーバーライド

BP_BearではDestroyFuncとAttackをオーバーライドして実装します。
中身はコピペなので、BP_Enemyから持ってきてください。
BP_Bearのオーバーライド死亡
BP_Bearのオーバーライド攻撃
親クラスである、BP_Enemyでは先程行ったとおり、中身を空っぽ同然のものにします。Meshコンポーネントのメッシュ、関数のAttack、DestroyFuncの中身を全部まっさらにして、関数は宣言だけした状態にしておきます。小クラスとなった各敵ごとに実装していくことになります。
BP_Enemyのイベントグラフ
BP_EnemyのDestroyFunc
BP_EnemyのAttack

StopAIはStopLogicを使って止めるように変更しておきます。AIコントローラに無理に、停止用関数を実装しなくてもとめられるようになります。
BP_EnemyのStopAI

今まで使っていたBP_EnemyAIControllerはBP_BearAIに名前を変えます。Controllerを名前から抜いたのは多分その時の気分です。記憶が曖昧なのですみません。
必要のなくなったStopAI関数を消し、なぜかステージ遷移を行うようになってからバグる様になったBeginPlayにあった初期化関係にDelayをかましてやって動かすようにしました。こうしないと、どうもコントロールしているポーンにアクセスできなくなっていたのです。
BP_BearAIのイベントグラフ

今回はこんなところ。次回、次の敵を作ります。
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

shiratori00

Author:shiratori00
フリーでソフトウェア開発者してます。

最新記事
最新コメント
月別アーカイブ
カテゴリ
Twitter on FC2
カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。