<前文>
で勉強しています。今回の節はHow to do it…の前に沢山の説明がされています。Getting Readyと言う部分です。この部分は本来ならば訳さずに進む箇所ですが、この章の内容があまりに詐欺的なので、如何にUnrealのC++と関係ないのかを示すための証拠として簡略化した訳を載せる事にしました。
<本文>
<目的>
今回は、「10章3節 キャラクターにビヘイバーツリー(Behavior Tree)を結合する」を勉強します。
<理論>
まず、前書きでビヘイバーツリー(BehaviorTree)について説明しています。簡潔に言えば
と言っています。教科書以外の説明も見てみたいと思ってグーグルで検索してみた所、こんな質問がありました。どうもビヘイバーツリー(BehaviorTree)をC++からコントロールするのはスピードの観点からかなり大切みたいですね。しかし今もってそれをどうすれば出来るのかを説明したチュートリアルはないみたいです。
ビヘイバーツリー(BehaviorTree)そのものの説明については、Unrealのドキュメントのページに、これがありました。
ビヘイバーツリー(Behavior Trees)は、Unreal Engine 4においてAIを作成するのに強力なツールです。
AIの作成用のツールと説明しています。これって、湊和久氏の著作である「Unreal Engine4で極めるゲーム開発」の23章でまるまる解説されている奴ですよね。Unreal Engine4で極めるゲーム開発」は対象の読者はUnrealの初心者でレベルデザイナーを目指す人用もしくはUnrealの総括的な知識がほしい初心者に向けて書かれた本です。そこでビヘイバーツリー(BehaviorTree)の紹介がされていると言う事は、この分野は基礎にあたると言う事でしょう。その基礎をUnrealのC++を勉強しているプログラマーに今更説明する必要があるのでしょうか?この後にビヘイバーツリー(BehaviorTree)のC++の作成方法が説明されているならば復習的な意味で納得出来るのですがそうでもなさそうです。やっぱりこの教科書(Unreal Engine 4 scripting with C++ Cookbook)の10章は詐欺です。
全然関係ない話ですが私はUnreal Engine 4が全く分からない時に湊和久氏の著作である「Unreal Engine4で極めるゲーム開発」を読みまくって勉強しました。大変優れたUE4の教科書だと思います。特に付属のビデオ講座が非常に役立ったのを覚えています。
以下の部分は教科書のGetting Readyに当たります。全部訳してもよかったのですがブログ的に少しでもオリジナルな部分がほしいので簡単なまとめにします。
- Characterクラスの派生物のブループリントが必要。
- ビヘイバーツリーをコントロールするカスタム化したAIコントローラーのオブジェクトが必要
- そのビヘイバーツリーがMeleeの攻撃用のキャラクターをコントロールする。
- ビヘイバーツリーは黒板(blackboard)と呼ばれるデータストラクチャーを持っている。
- 黒板(blackboard)はビヘイバーツリーのためにデータを保存します。
- ビヘイバーツリーは以下に示す6種類のノードをホストします。
ふーんという感想です。あまりUE4のAIについて知らない私は、この教科書がC++の教科書でなければ、単純になるほどと思って読んでいったと思います。ちなみにこの話はどの程度UE4の操作において基礎に当たる内容なのか疑問に思ったので、「Unreal Engine4で極めるゲーム開発」の23章を見直した所、タスク、シーケンス、セレクター、デコレーター(デコレイター?)についての簡単な解説が載っていたのでUE4のAIにおいては非常に基礎的な内容なのでしょう。
<方法>
Step.0
前回作成したプロジェクトをそのまま使用します。
Step.1
しました。
Meleeとは何でしょうか?ここに説明がありました。
もしあるキャラクターがmeleeのダメージのディラーから一定の距離にいればMeleeは単純にそのキャラクターにダメージを与えます。
だそうです。
Step.2
しました。
Step.3
しました。
Step.4
しました。
Step.5
BehaviorTree_FFA_MelleAttackerとはどれ何でしょうか?初めて出てくる名前ですが?まあ、本当は3.で作成したBehaviorTreeの事を指しているのは分かってますが。この10章は初心者向けの教材としても使えねーなと思いました。
3.で作成したBehaviorTreeのオブジェクトの名前をBehaviorTree_FFA_MelleAttackerに、Blackboardのオブジェクトの名前をBehaviorTreeBlackboardMeleeAttackerにそれぞれ変更しました。
<結果>
今回はここで終わりだそうです。結果の何も出て来ませんよね。これだけでは。
<考察>
以下に、How it works…を記します。
これはこれでUnrealの使い方を教わる初心者には大切な内容かもしれませんが、やっぱりUnrealのC++とは関係ありませんね。
<まとめ>
特にまとめる内容もありません。サッサと終わらせましょう!