【UE100日チャレンジ】ビヘイビアツリーで敵AIを作成!トランスフォーム操作によるギミック制作も

【UE100日チャレンジ】ビヘイビアツリーで敵AIを作成!トランスフォーム操作によるギミック制作も

【UE100日チャレンジ】ビヘイビアツリーで敵AIを作成!トランスフォーム操作によるギミック制作も

初学者がUnreal Engineによるゲーム制作に100日取り組んで、どこまでプロの開発者に近づけるのかという本企画。今回は第8弾となります。

前回に引き続き、『Unreal Engine 5で極めるゲーム開発』で学習を進めています。今回はAIやギミックなど、動きのある要素を作りました。

コンテンツ [表示]

  1. 1Unreal Engine企画第8弾!
  2. 2今回学習したこと
  3. 2.1ビヘイビアツリーとは?
  4. 2.2トランスフォームとは?
  5. 3ビヘイビアツリーでAIを作る!
  6. 3.1ビヘイビアツリーの使い方
  7. 3.2敵の動きを作る!
  8. 3.3作成したビヘイビアツリーの仕組み
  9. 4トランスフォームで動きをつける!
  10. 4.1トランスフォームとは
  11. 4.2トランスフォームを応用したギミックづくり
  12. 5次の目標:書籍による学習の終了

Unreal Engine企画第8弾!

 

Unreal Engine100日チャレンジに挑戦している、Neruです。

 

アンリアルエンジンのイメージ画像

 

この企画は、Unreal Engineの初学者である筆者が、100日間の学習でどれだけのものを作れるのかというチャレンジ企画です。

初回の記事で、この企画の詳細と、筆者の経験値がどの程度なのかを説明しています。


 

あわせて読みたい
【UEチャレンジ企画】Unreal Engine100日チャレンジ開始!最初の一歩のイメージ
【UEチャレンジ企画】Unreal Engine100日チャレンジ開始!最初の一歩
初学者がUnreal Engineでゲーム制作に100日取り組んで、どこまでガチになれるのかという企画!今回は初回の記事となります。 ダウンロードからさっそく最初の壁にぶち当たる筆者。最初のゲーム作成までを記事にしました。

 

前回は、関数、マクロ、インターフェースなど、様々な場所で使いまわせるプログラムについて学びました。その際、多くのバグにぶつかったため、それらをどう解消していったかをまとめています。


 

あわせて読みたい
【UEチャレンジ企画】ブループリントを深堀り!バグとの戦いものイメージ
【UEチャレンジ企画】ブループリントを深堀り!バグとの戦いも
初学者がUnreal Engineによるゲーム制作に100日取り組んで、どこまでプロの開発者に近づけるのかという本企画。今回は第7弾となります。 前回に引き続き、『Unreal Engine 5で極めるゲーム開発』で学習をし、開発を進めています。いくつかバグと遭遇したので、そちらも紹介します。

 

今回は、AIの作り方と、オブジェクトの動かし方について学び、こちらを追いかけてくる敵や、ブロックパズルなど、ゲームとして楽しめる要素を作成しました。

それぞれの要素について解説し、完成品もお見せするので、ぜひ参考にご覧ください。


 

今回学習したこと

 

今回学習したことは、ビヘイビアツリートランスフォームについてです。どちらも、ゲーム内の物体に動きが付けられる要素です。ゲームとして楽しいものが作れますし、触っていて面白みを感じられました。


 

ビヘイビアツリーとは?

 

ビヘイビアツリーとは、ゲーム内のキャラクターを動かすためのAIを作成するために便利なツールです。AIと聞くと複雑で専門的なイメージですが、ビヘイビアツリーはゲームデザイナー向けの機能になっており、視覚的、直感的にAIを作っていくことが可能です。


 

 

ツリーという名前のとおり、ビヘイビアツリーはツリー状の構造を持っており、根っこの部分から広がっていくようなイメージで設計します。


 

ビヘイビアツリーの一例

Epic Games 公式サイト(https://dev.epicgames.com/documentation/ja-jp/unreal-engine/behavior-tree-in-unreal-engine---overview)より引用。ビヘイビアツリーの一例。

 

このツリー上の処理は、左から右、そして上から下に実行されます。そして、それぞれに条件を設定することで、複雑な動作も作ることができます。また、各処理はブループリントを使って、細かくプログラミングすることが可能です。


 

 

このように、視覚的にわかりやすく、かつ複雑な行動パターンを作りこめることが、このツールの強みです。


 

トランスフォームとは?

 

今回学んだもう一つの要素が、トランスフォームです。トランスフォームとは、オブジェクトの位置、回転、スケールを含んだ情報のことで、オブジェクトの見た目や位置をコントロールするものです。


 

 

トランスフォームは、UEを触って最初に操作するくらい基礎的なものです。Unreal Engineのビューポート画面で物体を動かすのは基本的な操作ですが、その際に操作しているのがこのトランスフォームです。


 

アンリアルエンジンの操作画面

赤枠で囲った部分がトランスフォームを表す。物体を動かすと数値が増減する。


基本的な要素であるトランスフォームですが、使いこなすのはかなり難しいです。ただトランスフォームをしっかり理解して、ブループリントと連動させて扱うことで、より高度で複雑な動きが再現できます。
 

今回は、このトランスフォームを計算したり、合成することによって、物体に動きをつける方法について学びました。

ビヘイビアツリーでAIを作る!


ビヘイビアツリーの使い方、ユニットの動かし方作成したビヘイビアツリーの仕組みについて解説します。

ビヘイビアツリーの使い方

 

ビヘイビアツリーは、コンテンツブラウザの追加ボタンから作成できます。「AI」の項目を選択すると以下の画像のような項目が表示されるので、「ビヘイビアツリー」を選べば、現在選択しているフォルダ内に追加されます。


 

アンリアルエンジンのエディタ

緑色の「+追加」ボタンを押し、項目から選択する。

 

ビヘイビアツリーは独自のエディタを持っており、ブループリントなどとは操作の方法が違いますが、直感的な操作が可能です。各ノードの下部分からドラック&ドロップすることで、ノードを設置できます。


 

 

新しいビヘイビアツリーには、「Root」というノードが最初から設置されているので、ここからノードをつなげていくことで一連の動作を作ります。


 

 

同じノードから、右と左に違うノードをつなげます。これはドラック&ドロップをすることで設計できます。ビヘイビアツリーでは、「左から右」、「上から下」が処理の順番の鉄則なので、どの順番で処理を行うかを考えながらノードを設置していきます。


 

ビヘイビアツリーの優先順位

ビヘイビアツリーは「深さ優先検索」というアルゴリズムで優先順位を付けられる。画像はwikipedia(https://ja.wikipedia.org/wiki/%E6%B7%B1%E3%81%95%E5%84%AA%E5%85%88%E6%8E%A2%E7%B4%A2)より引用。

 

黒色のノードは、コンポジットノードと言われ、単体では何の機能もありませんが、それより下の処理をどう実行するかを決めることができます。有色のノードは何らかの処理を示していて、キャラクターに動作をさせることができます。これらを組み合わせると、複雑な動きを実装できます。

 

ビヘイビアツリーの詳しい仕様を知りたい方は、株式会社ヒストリア様の以下のページを参照することをおすすめします。UE5のビヘイビアツリーについて、わかりやすくまとめられています。


 

[UE5] ビヘイビアツリー(Behavior Tree)の使い方 入門編|株式会社ヒストリア
ヒストリア様の解説サイト

敵の動きを作る!

 

今回ビヘイビアツリーを構築して作ったAIは、以下のようなものです。


 

AIの要件

  • 1、ふだんは特定ポイントの巡回を繰り返す。
  • 2、自機を見つけたら、一瞬静止したのち、走って追いかけてくる
  • 3、自機を見失ったら、巡回に戻る

 

これらの動きを実装した様子を録画したのが、以下のポストの動画です。


 

 

動画を見ると、敵が自機を補足して追いかけてきているのがわかります。また、敵の動きに合わせてビヘイビアツリーも反応していることも確認できます(画面左)。


 

 

ビヘイビアツリーを別ウィンドウで開きながらゲームを実行することで、ゲーム画面を確認しながら、ビヘイビアツリーがどう動いているのかを直感的に把握することもできます。


 

作成したビヘイビアツリーの仕組み

次のページ

トランスフォームで動きをつける!

おすすめの記事

Recommended Articles
  • ゲーム企画の伝え方 〜より良い企画を作成するために抑えるべきポイント〜

    2024.02.13

  • 【完全版】ChatGPTを使いこなすための汎用プロンプト16選

    2024.03.22

  • ChatGPTを使ったゲーム企画書の書き方|すぐに使えるプロンプトと実例

    2024.03.22