Unreal Engine4のお勉強 Part2
引き続き、この本を読みながらUnreal Engineの勉強をしていきます。
今回は6章(AIの実装)からラストまでをしました!
さすがに本の内容を垂れ流すわけにはいかないので、ここでは本を読んでいく中でつまづいた点を紹介していきます。
1. AIキャラクターを配置してゲームを実行すると、ゲーム終了時にエラーが出る
本に書いてある通りにAIキャラクターを作成して、ゲーム上に配置して実行します。
プレイしてみると、ちゃんとプログラム通りに動いてくれて一見問題ないように見えるのですが、Escキーを押してゲームを終了させると...
こんな風にエラーが出てしまいます。ゲーム中はエラーが出ないのでスルーしてもよいのですが、何だか気持ち悪いですよね。
どうやらAIキャラクターに紐づけられたアニメーションに問題があるようです。本では、プレイヤーもAIキャラクターも同じアニメーションのブループリントを使っていました。これを別々のブループリントを使うようにしてAI向けにカスタマイズしましょう。
つまり、アニメーションBPも複製して、以下のように編集します。
・イベントグラフ
・アニムグラフ
難しいことは何もしていなくて、単純にジャンプに関するブロックを削除しているだけです。
AIキャラクターはプレイヤーを追いかけてくるだけでジャンプはしないので、ジャンプ処理は不要です。
あとは、AIキャラクターのアニメーションを、今回新たに作成したアニメーションBPに紐づける作業が残っています。
すでにプレイヤーとプレイヤーのアニメーションBPとを紐づける作業は行っています。本書の145ページあたりを見れば方法がわかります。
2. ゲームのリスタート
8章のゲームのクオリティを上げるという項目において、「ゲームのリスタート」を実装しています。
これはゲームクリア、またはゲームオーバーになったときに、もう一度ゲームをプレイするための機能を実装するものです。
本書では、下の図の状態から「Get Game Mode」から「Restart Game」にピンをつなげればOKなのですが、互換性がないとのエラーが出てつなげられません。
これはUnreal Engine4のバージョンの違いに問題があるようです。
「Restart Game」はGame Modeクラスにあるので、BP_MyGameModeの親クラスを「Game Mode Base」から「Game Mode」に変更します。
BP_MyGameModeのブループリントを開き、クラス設定をクリックします。そこから詳細タブに行って、クラスオプションの親クラスを変更します。
この変更によるコンパイルエラーは起きなかったので問題ないとは思いますが、念のためにここでコンパイルして確認しておくことをお勧めします。
リスタートの実装は以下のようになります。真ん中に「Cast To GameMode」ノードを追加する必要があります。
3. Win64へのパッケージ化
本書の最後でWindows(64ビット)のプロジェクトをパッケージ化し、他の環境でも実行できるようにします。
Visual Studioの環境(正確にはその中にあるC++のビルドツール)がないとパッケージ化できないので、前もってインストールしておく必要があります。
まあ、気にせずパッケージ化を進めると、足りないツールがあるのでインストールしてくださいとダイアログが出て、さらにリンクも現れるので、それに従えばよいと思います。
以下のページが参考になるかと思います。インストール時に何をインストールするかをこちらでカスタムして入れる必要がありますが、それをせずにインストールしてしまった場合でも後から入れなおすことができます。
パッケージ化できるようにする(Visual Studioをインストール) – unrealpocket
また、プロジェクトがあるフォルダのパスに日本語があると、それが原因でうまくファイルにアクセスできずパッケージ化に失敗することがあります。
特に指定していなければドキュメントフォルダにプロジェクトが格納されていると思いますので、これをC直下か日本語のないフォルダに移動させてください。
その後、移動させたプロジェクトを開いて、パッケージ化すれば以下のように新たにいくつかファイルが出来上がります。
MyProject.exeをダブルクリックすればゲームが始まります!
というわけで、無事に本を読み進めながらゲームを作ることに成功しました!