Unityと吉里吉里でSLGとかRPGを作るブログ

そんな訳で、前回に続き、Unityの実装を公開します。
ちなみに現在の状況はこんな感じです
Twitterに飛びます①
Twitterに飛びます②

■今回の追加分

・必殺技を敵が使ってくるようになりました
・スタンや毒といった状態異常が付きました
 →1つ目の動画では、実装していませんでしたが、2個目の動画では、状態にかかったらエフェクトが追加されるようになりました。
・動画ではいまいち出てませんが、上の戦果バーに影響を与えるスキルと、下のスペシャルスキルのリソースに影響を与えるスキルを実装しました。
・弓攻撃に連撃を付けました。動画では2回ですが、最大値は無限です。


■Unityの実装

★敵のスペシャルスキル
敵のスペシャルスキルデータ
こんな感じで発動するラウンドと、発動率で制御しています。
各ユニットの行動事に発動率でチェックして、しかも15%ずつ発動率を上昇させています。
これにより、指定したラウンドのどこかでは、ほぼほぼスペシャルスキルを使用するようにしています。
1個目が終わったら、次へと最大5回のスペシャルスキルを使ってくる感じです。
これをCSV方式で保存して、Unityに取り込んでいます。

★弓の連撃
地味なのに苦労したのが、これです。
スペシャルスキルの中には、ボタンを押したら即HPが回復するスキルを実装してます。
このスキルは、プレイヤー側の緊急回避であり、下のリソースを多く使ってでも回復するか、状況を見て使用するスキルとなっています。
弓連撃の場合、1発目が命中したら死ぬかどうかは、プレイヤーがHP回復スキルを使うかどうかで判断されます。
なので、連続攻撃の場合、1発目の弓のあと、次の弓を構えた状況で、敵が生きてるかどうか判断して、死んでいるなら、ほかのやつに撃つか、(敵がいないなら)弓を下すかを選択する必要があり、めっちゃ面倒でした。






◆つぶつぶ主人公HP◆  ◆サンプルダウンロードの一覧◆

スポンサーサイト
2017.10.16 / Top↑
そんな訳で、前回に続き、Unityの実装を公開します。
ちなみに現在の状況はこんな感じです
Twitterに飛びます

■今回の追加分

・ターゲットを優先順位をつけて選択するようになりました
 →スキルごとに色々な優先順位を設定できるようにしました。
・次に実行するスキルによって行動開始までの時間がかわるようにしました
 →これにより、本人の速度だけではなく、スキルによって行動順序が異なるようになりました

・敵味方の総合アクションポイントを上に出すようにしました。(青赤のメモリバー)

・スペシャルスキルのリソース実装
 →一番下の★のマークがスペシャルスキルのリソースです。
 →スペシャルスキルボタンにマウスを置くと、使用するリソース分だけ、半透明になります。使う量がわかる仕様です。

スペシャルスキルを別リソースにし、本人の行動ポイントを使用しないようにしました。
スペシャルスキルでリーダーにスキルを使わせて、戦闘を優位にする。
または、取っておいて次の回すということが出来るようにする予定です。
介入できる自動戦闘というコンセプトを生かしつつ、SLGとしてのリソース管理もできるという感じです。




■Unityの実装

★スペシャルスキルのボタン
まだ、スキルに合わせてイメージを変える事が出来ません。
ただし、スキルがない場合は表示されなくなります。また、部隊ごとにスキルを変えられるようにしています。

実装としては、Unityのボタン機能なのですが、恐ろしいことにボタン機能には押したときの処理しか対応していません。
そこで、スクリプトでマウスを乗せたときとか、マウスを離したときの動きを設定できるようにしました。
スペシャルスキルボタン

青枠の部分がマウスオーバーなどを追加するスクリプト。
赤枠のように設定できます。

※追加はこちらで公開されているスクリプトを使用しています
http://rebuildgames.com/blog/?p=62

★アクションポイント
特にひねりもなく、setActiveでImageの表示非表示を切り替えています。
サイズを変えるアニメーションは、setActiveで非表示ののち、同じ位置にアニメーション用のImageを置いて実行する形式です。
アクションポイントメモリバー

このように必要なだけImageをおいています。






◆つぶつぶ主人公HP◆  ◆サンプルダウンロードの一覧◆




2017.09.13 / Top↑
そんな訳で、前回に続き、Unityの実装を公開します。
ちなみに現在の状況はこんな感じです
Twitterに飛びます

■今回の追加分

・ダメージと回復がきちっと計算されるようになりました
・下のボタンを押すと発動する必殺技がでるようになりました。


・・・・少なっ!
中身のスクリプトは相当に変わってるんですが、反映される結果は少ない感じになってしまってますね。


■Unityの実装

実装した必殺技には、ボタンを押したら即時発動するタイプと、ユニットの次の行動がパワーアップするタイプがあります。

★即時発動タイプ
こちらの場合は、通常のエフェクトと別に制御してます。
ボタンを押したら、発動するスキルと、そのフラグを立てて、それをユニットが訳検知し、個別の処理としてエフェクト、スキル効果の反映としてます。

★パワーアップスキル発動
ボタンを押したら、発動するスキルと、そのフラグを立てる点は、即時実行と同じです。
ただし、このフラグはパワーアップスキルが実行されるまでOFFにならず、ONの最中はサイヤ人エフェクトが付く用になってます。
サイヤ人エフェクトはユニットの子オブジェクトにする事で、移動しても追従する形を取っています。
サイヤ人エフェクト





◆つぶつぶ主人公HP◆  ◆サンプルダウンロードの一覧◆




2017.08.31 / Top↑
そんな訳で、前回に続き、Unityの実装を公開します。
ちなみに現在の状況はこんな感じです
Twitterに飛びます

■前回からの相違点

・HPバーが付きました
・白兵攻撃および弓攻撃を受けた場合、一定確率(現在は100%)でガードするようになりました。
・「回復スキル」の実装
・味方に来た白兵攻撃を「かばう」ことができるスキルの実装
・攻撃のターゲットを自分に向ける「挑発」スキルの実装

もともと、白兵攻撃のファイター、見方を守るシールダー、弓を使うアーチャー、回復するヒーラー、魔法攻撃するメイジの5役を基本にすうる予定でしたのですが、やっと全役の基礎スキルが実装できました。



■Unityの実装

★HPバー
HPバーは、アセットを購入しました。
Health and Progress Bars Pro
安い上に必要な機能はすべてそろっている中々有用なアセットです。割とおすすめ。
デモからコピペしてサイズ変えるだけで使えました。渡せる引数が複数あり、残り%やMAXと現在値など、さまざまなデータ形式に対応してます。
キャンバス
作りとしては、各キャラクターと同じで、キャンバスを人数分用意して、そこにキャラクター番号を設定。UnitMgrにアクセスして、その番号のキャラがいないなら、自分を消滅。
あとは、位置をキャラに合わせて移動するといった感じです。
しかし、キャンバスわかりにくい、Unityで最初にキャンバス周りから入ったせいで、1度挫折したのを思い出しました。

★かばう
以外に難しかったのはかばうの実装です。
基本リアクションは、攻撃を受けたときに発生する作りだったのですが、「かばう」というのは、攻撃が来る前に移動して、防御する必要があったので、中々骨が折れました。




◆つぶつぶ主人公HP◆  ◆サンプルダウンロードの一覧◆




2017.07.30 / Top↑
そんな訳で、前回に続き、Unityの実装を公開します。
といっても、かなり作り直しました。
大枠では変わってませんが、処理の方法は大きく変更しています。
そんな訳で、もう一度、詳し目に書いてみます。

ちなみに現在の状況はこんな感じです
Twitterに飛びます

見た目の大きな違いとして、近接攻撃に「反撃」が出るようになりました。
また、魔法の飛び方を色々いじれるようにしました。
見た目の調整はこれからとしても、前の直線的な飛び方に比べても、良くなっていると思います。

見た目以外の違いとしては、キャラクターの制御を3つのスクリプトで制御する形にしました。
キャラクターのアクション、エフェクト、状態制御の3つです。
コンセプトは変わりませんが、変更前より強く独立性を高め、各ユニットのことは、極力各ユニットで処理を簡潔しています。

■Unityの実装

キャラクター制御
★キャラクター
キャラクターの制御は、以下のスクリプトで行っています。
・UnitMgr
 すべてのユニット情報がここに格納されています。
 ダメージや攻撃ターゲットの決定など、ユニット同士の情報が必要な処理もここに記載されています。

・AnimeControl
 キャラクターの動き(走ったり)や移動を制御してます。

・EffectMgr
 移動量や、移動速度などのエフェクト事の情報を管理してます。

・EffectControl
 ユニットが出すエフェクトの生成や移動を行います。

・UnitControl
 ユニットの状態制御を行っています。AnimeControlやEffectControlに命令を出したり、エフェクトやアクションの終わりを受け取って、状態の制御を行います。

ユニットコントロール
UnitControlでは、状態をこんな感じで管理してます。
「状態」辞退はUnitMgrに格納されており、それを参照、更新することで、各キャラが現在何をしているか、これから何をするかを制御する訳です

★ゲーム制御
プレイメーカー

ゲームの制御は、PlayMakerというアセットを使用してます。
正直、機能の3割も使っていません。もう少し使いこなしたいですね。




◆つぶつぶ主人公HP◆  ◆サンプルダウンロードの一覧◆
2017.07.16 / Top↑