2014年11月23日日曜日

【Unity】RTS : かんたいプロジェクト スクリプトの改良など

前回から細かい部分の改良を続けている。これまで各砲塔は他の砲塔と射界が重複できなかったがそれが可能になるようにした。射界の上限下限を決める構造体を定義した他、既存のスクリプトを改善して可読性と処理を速めた。今後はドローコールの削減と船体のエディタの改善に努める予定。

2014年11月11日火曜日

2014年11月9日日曜日

【Unity】RTS:かんたいプロジェクト:ダメージやUIなど

 Unity5のbetaを導入して開発を続けている。ダメージシステムを実装し、移動から攻撃、撃沈までひと通りできるようになった。一応、ここでプレイできる。WASDキーでカメラが移動できる。操作は少し変わっていて、まず船をクリックし、次いで最初に移動したい場所とその次に移動したい場所をクリックすると命令が出せる。手前の2隻が味方で奥が敵。攻撃は自動で行われる。

2014年11月4日火曜日

【Unity】かんたいプロジェクト:複数目標の同時捕捉と攻撃

前回、船は捕捉した目標をその方位を元に予め設定された方位グループに分類するようにしていた。今回そのグループごとに最終攻撃目標を選定し、担当する砲塔に指示を出せるようにした。砲塔は属するグループIDと各砲塔IDの2つのインデックスを持つ2次元配列に登録される。船は方位グループごとに一番近い目標を確認して担当グループに属する砲塔に攻撃指示を出す。これで攻撃管制はほとんど完成した。今後は実際に砲弾が命中した目標にダメージをもたらすようにする。モジュール破壊の概念があるので、例えば砲塔に砲弾が命中すると砲塔は破壊される。たとえ直撃弾でなくても例えば船の機関部などにもダメージを与えたいので砲弾には適した形のコライダーをくっつけて判定を行う予定。

2014年10月27日月曜日

【Unity】かんたいプロジェクト:マニピュレータ

ゲーム中でオブジェクトの位置を操作できるマニピュレータを作った。それぞれの軸をマウスで掴んでドラックすればマニピュレータが移動する。作りは単純で例えばX軸を摘んだ場合、カメラからカーソル位置に照射したレイのヒットポイントの内X軸の増減分のみを読み取って移動する。ただしこの方法だと背景がX-Y平面の場合Y軸方向の移動は出来ない(レイの照射のヒット地点のY成分は常に一定のため)。対策としてはカメラの動きに合わせてマニピュレータのバックに展開するレイの照射を受けるプレーンオブジェクトを用意する方法がある(プレーンをカメラの子分にしてプレーンをカメラに向けて離れたところに置くと、マニピュレータがプレーンとカメラの間にあるかぎりきちんと操作できる)。かんたいプロジェクトではプレイヤーが艦船の設計ができるよう機能を実装する予定なので、こうしたマニピュレータが必須になる。

2014年10月21日火曜日

【Unity】かんたいプロジェクト:複数砲塔の運用

ポンポン目標を砲撃する
攻撃制御スクリプトがn個の砲塔を管理できるようにした。といっても以前1個しかなかったものを配列にしただけなのでまだ完成していない。艦砲の位置の関係上攻撃制御スクリプトは左舷の目標については左舷の艦砲を割り当て、右舷には右舷の艦砲を割り当てる必要がある。そのため記録する目標のデータに角度も取り入れた。探知された目標は、ゲームオブジェクト・距離・角度でそれぞれ共通した添字で配列に記録される。あとは各砲塔をその位置に従い最適な目標を割り当てればいいのだけどもこれについてはまだ研究している。角度による目標の分類は単純に左舷・右舷以外にも十分増える可能性があり、汎用性を持たせつつ、各分類で最適な目標を選定できるようなコードを書きたい。

2014年10月20日月曜日

【Unity】かんたいプロジェクト:攻撃とUI

右下にあるのが戦艦ぺりーぬ号
船が攻撃目標を捜索し、砲撃できるようにした。これはBwarsと同じアルゴリズムで、探索範囲内の目標をリストに登録>目標に射線が通るか確認>目標までの距離で絞込み>砲塔に攻撃目標を伝達となっている。ただし異なるのは砲塔でも再度目標に射線が通るか確認するプロセスが含まれていることで、これは船の艤装が射線を遮る可能性を考慮しているからだ。