ブループリント製のマッチ箱脳(1)
問題とマッチ本数の初期設定
解答表示部分
アウトプットウィンドウに出てきた解答
https://www.1101.com/morikawa/2001-03-12.html
https://www.1101.com/morikawa/2001-04-02.html
「"マッチ箱の脳"の、初歩的なモデルをブループリント化してみた。といっても学習部分を入れてないわけだから、何回やっても同じように間違うんだけど」
妹「ぜんぜん脳入ってないよ……」
「今日はゼルダやるのに忙しくて脳の部分まで作れなかった」
アクターじゃないクラスを生成する方法
「AIの仕組みをUE4のブループリントで実装してみようと思ったんだけど、その前段階としてちょっと困ったことがあったんで、今日はそれのやり方を調査してた」
妹「困ったこと?」
「なんというか、アクターをスポーンさせるのは普通に出来るし、やり方も色んな所に書いてあるんだけど、アクターじゃないクラスを生成する方法というのが謎だった。というか昔のUE4だとブループリントだけじゃ出来なかったらしい」
「クラス作成の時に、ActorやActorを継承したクラスじゃなく、Objectを継承すると、アクターじゃないクラスは作れる」
妹「それスポーンさせたらいいのでは?」
「Actor以外のクラスにはスポーンノード使えないんだよ。Objectは位置とか回転とかも持ってないし、BeginPlayとかTickとかのイベントもないから、無理にActorとして扱おうとしてもバグってしまう」
「それでどうやらクラスからオブジェクトを構成というノードを使えば、スポーンノードの代わりに使えるらしいことがわかった。紫のピンで、どのクラスの実体(インスタンス)を作るかを指定出来る」
「無事にカスタムイベントの呼び出しが出来た。ので、とりあえず成功してるみたい」
妹「クラスを指定するのはわかるけど、Outerというのはいったい?」
「そこはわからない。(なし)のままだとコンパイル出来ないけど、なにか入れればコンパイル出来るし、結果も同じ。多分それが必要な状況にならなければ、なんでも良さそうな気がする。よくわからんけど」
妹「曖昧だ……というか見えないアクターみたいな物なんだったら、そもそも見えないアクターとして作っちゃえばいいのでは? 非表示のアクターとか色々あったし」
「それでもいいんだけど、明らかにActorの機能を必要としてないのに、位置を指定してスポーンとか、どうも無駄がある。あとアクターだとエディタのアウトライナに出てきちゃうという問題もある。数が少ない場合にはこのへんの欠点は目立たないから、アクターとして作っても問題はないはず」
※兄が寝違えたので翌日分の記事はお休みします
妹にもわかりそうな人工知能の本
https://www.amazon.co.jp/dp/B00DT4DY0M/
https://www.1101.com/morikawa/2001-04-02.html
妹「そういえば最近”マッチ箱の脳”という本を読んだんだよ。人工知能っぽいやつに興味があって、色々見て回ったんだけど、これが一番わかりやすかった」
「妹にもわかりそう?」
妹「雰囲気はなんとなく。数学の式とかじゃないから、読み方がわからないということはなかった」
「本の内容はシンプルだから、ブループリントで実装するのは難しくなさそうな気がする」
妹「ビヘイビアツリーで作ればいいの?」
「ビヘイビアツリーは同じ人工知能といっても、ニューラルネットワークとも遺伝的アルゴリズムとも違う構造だし、まずはブループリントで作るのが簡単な気がする。その後で、ビヘイビアツリーと組み合わせてみるというのはありえるかもしれない」