4.14でのTMap型サポートはまだ限定的?
「4.14の機能紹介にこんなことが書いてあったんで、詳細パネルをつつき回してみたんだけど、どうもC++から作ったTMap型に、詳細パネルからデータを追加したり出来るだけで、肝心のTMap型自体を作るのはブループリントとエディタだけでは無理っぽい気配だった」
妹「TMap型って何? マップ画面と関係ある?」
「そういうMapとは無関係な、配列の親戚みたいな感じのやつなんだけど。わかりやすく言うと、添え字(index)に数字じゃなくて文字を使う配列。実際は文字以外も使えるけど、それが一番わかりやすい」
「他のプログラミング言語だと、連想配列とか、ハッシュ配列とかって呼ばれてる場合もある」
妹「数字じゃなくて文字になると、なんかいい事あるの?」
「変数に名前を付けて、ひとかたまりにして整理するっていう、今だと構造体を使うか、アクター上に変数を作って公開すれば対応は出来る。……でもゲームの途中で構造体に新しいピンを付け足すって無理でしょ? 配列に途中で何個でも追加できるのと同じように、TMap型にも途中で追加が出来る。そこが大きな違い」
妹「数字より文字の方がわかりやすいってことかな」
「配列の場合、単に数字っていうだけじゃなく、順番通りに並んだ数字しか作れない。飛び飛びの番号にしようと思っても、途中の番号を全部作らないと駄目。そういう制限もない」
妹「配列の進化型?」
「まあそうなんだけど、その分ちょっと遅いとか、順番通り並んでくれないという欠点はある。それにいつでも追加出来るし、削除も出来るから、そのピンがあるかどうか編集画面ではわからない。だからピンのところにString型をつないおいて、それが見つかるかどうかはその時になってみたいとわからない」
妹「配列と同じ……なのかなあ?」
「実用上は、"HP"って文字列を繋いだGETノードで体力調べるとか、Foreachで中身を全部チェックしたりする。これは妹がやろうとしてたアクターに依存しない仕組みにも使える。事前にピンをキッチリ準備しなくてもいいから、変数があるかないかわからないけど、あった場合はこうするみたいな、最初に細かく設計せずに動かすやり方に適してる」
妹「うーん、でもまだ使えないんだよね?」
「C++使わないと無理だね……。でも実験自体は進んでるみたいだから、いずれ使えるようにはなるはず。今の機能でやるとしたら、配列の何番はHPだとか、自分の中で決めてやるぐらいしかないね」