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

そんな訳で、前回に続き、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↑
そんな訳で、前回に続き、Unityの実装を公開します。


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

相当量のスクリプトを書いたのに、見た目の印象はそんなに変わってないのがつらいですね。。。



■Unityの実装

・キャラクター
スプライトスタジオのアセットを使ってキャラクターオブジェクトを作成しています。

・移動
移動はiTweenアセットを使用。

・データ制御
データ周りはCSVをスクリプトで読み込み、スクリプトで更新してます。

・状態遷移
クリプトでほぼほぼ実装していますが、分かりやすさ向上のため、状態変化の部分はPlaymakerのアセットを使用しています。

・エフェクト
スプライトスタジオではなく、スプライトを使ってます。




■前回からの変更点

・キャラクターをデータに合わせて生成するようにしました。これによりいろいろなキャラを表示できます。
・エフェクトが付きました。
・ダメージ表現が付きました。
・武器に合わせ(剣だけだけど)踏み込む位置が可変になりました。



■エフェクト

前回、問題になっていたのは、スプライトスタジオのせいでした。
簡単に言うと、スプライトスタジオの提供しているViewは、スプライトスタジオのオブジェクトは、Z軸だけで表示できるものの、その他のオブジェクトは、このViewの後ろか前かしか表示できないようです。

そんな訳で、スプライトスタジオのQAを参考にした結果、こうなりました。
Viewの所
そう、すべてのキャラクターの上にViewを付ければ、その間にエフェクトを表示できる訳です。(※赤枠)
ちなみに、View間のソート順は、Sorting Groupで制御してます。(※青枠)



■赤丸

そして、気になる足下の赤丸ですが、こちらでダメージを受ける側の制御をしています。このまるが、対象まで移動したら、それをキーに対象がダメージエフェクトやらダメージ数値やらを出します。
赤丸解説

赤丸はiTweenで動かしてます。iTweenには移動が終了した後にプロシージャを呼べるので、それを使ったて、制御してます。
ちなみに、collisionは使ってません。

赤丸を移動させる理由として、遠隔攻撃と近接攻撃を同じロジックにできる(だろう)と判断した為です。








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