しんばりん日記

ue4を使ってのゲーム制作ブログです。間違いを指摘していただけると助かります!

攻撃してみる:魔法作成(6)

今回は取得したレベルに応じて、魔法の速さを変えてみようと思います。

といっても、単純にレベル×速さだとちょっと面白くないので、

今回はデータテーブルを作成してみようと思います。

 

まずは下準備として、構造体を作成します。

今回は魔法のデータテーブルなので、魔法のパラメーターの構造体を作成します。

 

新規作成→ブループリント→構造体

f:id:sinvary:20190117004522p:plain

ひとまずこんな感じで作成しました。

レベルに応じてマテリアルやメッシュを変えようと思っているので今後追加するかもしれませんが、一旦はこれで進めていきます。

 

これが、魔法の構造体となります。

次に、見た目でわかりやすくするために構造体配列を作成します。

氷魔法、炎魔法と別々のパラメーターを構造体で1つにまとめるだけですね。

f:id:sinvary:20190117005202p:plain

個別にパラメーターも設定できるのでいいですね。

 

ここで、データテーブルを作成します。

新規作成→その他→データテーブル

ここで、先ほど作成した構造体を指定することでデータテーブルが作成されます。

f:id:sinvary:20190117005621p:plain

と、こんなかんじでぱぱっと作成できます。

まぁIceMagicとFireMagicは別のデータテーブルにしてもよかったのですが、一人でやってるとアセットの管理が面倒になるので極力数を減らす方面でやっていきたいですね。

 

さて、最後にこれを使用してみましょう。

f:id:sinvary:20190117010830p:plain

前回、スポーン時にレベルを魔法に渡していました。

今回はその値を利用し、文字列に変換してデータテーブルから検索する方法を行っています。

ちなみに前回のままだとLevel0が来てしまうので、「最低でもレベル1」になるよう修正しました。

また、今回は適当にレベル3までしかテーブルを作成していないので、

Min(MagicLevel , 3)という形をとっていますが...まぁそこは省いてもいいかもしれませんね。

検索して取得した値を保持し、進む処理にて構造体のSpeedとかけてあげれば、

無事にレベルごとに速度の違う魔法を放つことができるようになります。

あ、魔法毎に共通する変数はMagicBaseに追加していってます。

前回のMagicLevelも然り、今回のMagicDataTableも然りです。

ちなみにMagicDataTableの型は最初に作成した魔法毎の構造体です。

 

本日はこのくらいで。

明日は...まだまだ手を付けるには早いと思いますが、やはりUIを作成してみましょう。

現在が何の魔法なのか、どのくらいチャージしているのかを画面に表示すればテストもはかどりますし。