用語調査記録「エンティティ(Entity)」
妹「公式のドキュメント見てると、エンティティって言葉がちょこちょこ出てくるんだけど、これはどういう意味だろうか? インスタンスっていうのと同じなのかなとも思ったんだけど」
「あんまりエンティティって書いてあるとこ見たことないなあ。たしかにインスタンスと同じ意味で使う開発環境もあるけど……ちょっと用例を調べてみる」
通常、 アクタ はアイテムあるいはエンティティ全体とみなすことができ、 オブジェクト はより特化した部分になります。
デフォルトで、コントローラーとポーンは 1 対 1 の関係です。つまり、各コントローラーはいつでもポーンを 1 つだけ管理します。ほとんどの種類のゲームでは問題ありませんが、 例えばリアルタイムストラテジーのように、複数のエンティティを 1 度に制御する能力を必要とするゲームもあるので、調整が必要な場合もあります。
Pawn クラスはプレイヤーまたは AI によって制御可能な、すべてのアクタのベースクラスです。ポーンは、ワールド内のプレイヤーまたは AI エンティティの物理的表現です。 ポーンは、プレイヤーまたは AI エンティティの視覚的な表現のみならず……
ゲームのプロジェクトやジャンルが何であれ、ある時点でアニメートされたキャラクターを自分の環境で動かす必要が生じることでしょう。これは、プレイヤーが制御するキャラクターであったり、何らかの方法でワールドとインタラクションする AI 駆動のエンティティであったりします。
プログラミング用語にあまり精通していない場合、配列は単一エンティティ内に格納された同じ型の変数群と考えてください。例えば Float 配列を作成する場合、この配列は Float 変数のみを保持することができます。
「公式ドキュメントを検索するとざっとこんな感じで引っかかった」
妹「ね? どういう意味かわかんないでしょ?」
「これを見た感じだと、エンティティってのはUE4用語ではないね」
妹「違うの!?」
「うん、妹が言うところの一般的な言葉というやつ。普通の英語なのかゲーム業界語なのかはわからないけど、UE4の用語じゃなさそう。説明文には出てくるけど、ゲームエンジンの機能とかエディタの名称とかじゃなさそうだし。元の英文に出てくるのをカタカナ訳したのかも」
妹「こういうのはカタカナじゃなくていいんだよ!」
「AI(駆動の)エンティティというのは、プログラムで動く存在、というニュアンスに読める。アクターとかオブジェクトとかはゲームエンジンの用語だけど、そういうんじゃなくてゲームの見た目や仕組みとして、そういう存在の話をしている」
妹「ゲームキャラクタとかでいいんじゃない?」
「キャラクタと呼びにくい物もあるからじゃないかな。例えばスーパーマリオのファイアバーとかバブルとか。ドッスンも顔無かったらただのトラップだし」
妹「AI駆動してないエンティティというのは?」
「足場のブロックとか。将棋の駒とか盤とかもそうじゃないかな」
妹「結局のところエンティティってアクターのことなんじゃない?」
「UE4のシステム的にはそういうことだと思う。でも複数のアクターが組み合わさって1体のボスを表現することもあるだろうし、そもそもアクターの説明をするのに、アクターはアクターですってわけにもいかないから」
妹「最後の配列がどうのこうのってのは? これだけ他と違うかんじでエンティティって書いてる気がするんだけど」
「配列を知らない人用の説明だから、深く気にしなくていいんじゃないかな。1つの変数の中に同じ型の変数がたくさん詰まってるということを書いてるだけだと思う」
妹「なるほど……あ、ビヘイビアも結局なにかわかんなかったから調べておいてね」