Advanced Turn Based Tile Toolkit for UE4の使い方[実践編①] 攻撃機能の改善&UIの追加

Post 2021年2月14日日曜日

Advanced Turn Based Tile Toolkit TBS(ターン制ストラテジー) UE4 アセット

前回でこのアセットの基本的な機能については解説できたと思います。今回から本格的にゲーム制作をしていきます。

前の記事もちょくちょく更新しているので、気が向いた時にまた見てください。


にしてもこのアセット、参照できる情報がイマイチなんですよね。Youtubeで作者が丁寧に解説しているんですが、バージョン更新が頻繁なので最新版を触っていると、「えっこのノードここにないんだけど。Youtubeでは確かにここにあるのに…」みたいなのが頻発します。バージョン更新が頻繁であることが裏目になっていますね…。

英語でも良いからブログ記事とかでまとめてほしい…。掲示板が(一応)あるんですけど情報が散乱してて全然わからぬ。

だからこそこのブログでまとめようとなったわけなんですけどね。もったいなさすぎるこのアセット。

お約束
この記事作成にあたって使用した(主な)UE4バージョン4.26.1
このtoolkitのバージョンv3.0 (live 12.12.20)



まずは公式のサンプルを触ってみる

「JungleRaid」で調べると、Map (Levelといったほうがいいのか) が出てきます。これを開きます。結構シェーダーコンパイラーが重いので、PCが貧弱な人はお風呂でも入ってきてください。



このMapが、一番Advancedな、つまり先進的なテクノロジーをすべて詰め込んだマップになります。

キャラクターに移動、射撃や回復などのUIがついてきています。一番右のUIは「警戒」で、攻撃範囲に敵が入ったら自動で攻撃します。


このマップをいじってももちろん良いのですが、私は六角形タイルを使いたいんで、今のマップに機能を足していきましょう。今日のゴールはこれです。


四角形タイルを使いたい人は、もっと簡単で、「Advanced」っていうレベル(Map)を使えばOKです。もちろん「JungleRaid」を使いまわしてもいいですよ!


機能の追加[ステルス機能&カバーシステム]

実はよく分かっていません(おい)。要するに敵の発見と、自動攻撃のシステムの追加らしいです。

自分のマップに戻り、グリッドを選択。右クリックで、六角形グリッドのブループリントを編集します。


そしたら~~Hexを選択した状態で、+Add Component


「Cover」「Stealth」を調べれれば出てきますので、「BP_CoverSystem」「BP_StealthSystem」をクリック。

最終的に下の状態になればOK。コンパイルしておきましょう。
これで下準備OK。

さて、前回から居た緑と赤のキャラクターにはそろそろ邪魔なので退場してもらいましょう。

「Maps」→「Advanced」→「Units」とクリックしてフォルダを開きます。


すると、こいつらがいるはずです。左から重戦士、回復可能な戦士、超能力で相手を操る力がある戦士、の順です。


配置するのは3つのうちなんでもいいですが、Medic (真ん中のやつ)を配置するとこんな感じ。

これでプレイしてみましょう。
こんな感じで、UIがきちんと表示されました。やはりUIがあるとゲームっぽくなりますねぇ。

敵の追加

敵も同じブループリントを使います。今回は「Heavy」重戦士タイプを使ってみました。こいつは広範囲に攻撃可能な爆弾を使えます。


コンフィグの設定を下の赤で囲ったように変えます。


これで敵として動いてくれます。

追加された機能「回避」

やってみればわかると思いますが、追加された機能は回復とか爆弾とか、サイコキネシスだけではありません。

実行して敵キャラをレーザー射撃しても、レーザーが当たらないことがあります。

「BP_Ability_Laser」を調べてみると、分かります。

このCalculate Hit Chanceで、当たる確率を計算しているみたいです。ダブルクリックすれば具体的な計算が出てきます。(著作権上内容を公開するのはまずそうなので、ここには載せませんが… → 作者から許可を頂きました。そのうち解説するかも)
計算内容としては、撃つ相手との距離によって変動するように設計していますね。

この辺は、「攻撃外す機能はいらんなぁー」と思っている人も多そうなので賛否が分かれそうですね。


次回

今回はこれで終わりです。次はマップのタイル機能について書きたいと思っています。

ターンマネージャーの理解が全然できぬ…改善したいんですけど…。


前回

次回