AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

学校シミュレーター #3

f:id:yasu9780:20170116071447p:plain

操作できる生徒を作りました。
左ジョイスティックで移動。右ジョイスティックでカメラ視点移動

他に実装したもの

  • 落ちている刀を拾える(Aボタン)
  • 刀をもったら素振りできる(まだ攻撃はできない)(Xボタン)
  • 自席に座れる(Aボタン)
  • 刀を振ると他の生徒が驚く。先生は尾行してくる(目視の場合)
  • 死体を見ると学生は驚く。先生はその場にやってくる(目視の場合)
  • 悪評が口コミで広がる(reputation) 生徒先生21人が他の20人分の評判を所持
  • はいはい歩行(Bボタントグル)

カメラは、被写体とカメラの間に壁が入ったら自動的にカメラが寄る仕組みを作りました。
ようやっとまとまな感じになったと思います。

左ジョイパッドは、
float ax = Input.GetAxis("Horizontal");
float ay = Input.GetAxis("Vertical");
で取れますが、
右ジョイパッドはunity上で登録が要りますね。

Unityでゲーム開発 -左右スティックを使う方法-
こちらが参考になりました。

手持ちのジョイパッドだと、

 (XBOX360)(xinput) 左アナログ 水平 X Axis 垂直 Y Axis
 (XBOX360)(xinput) 右アナログ 水平 Axis4 垂直 Axis5
 (XBOX360) L2 R2 Axis3 
 (GameSir) 右アナログ 水平 Axis4 垂直 Axis5
 (GameSir) L2 R2 

しかし、XBOX ONEのジョイパッド安くなりましたね。今買うならこれですね。


動画がカオスな感じになってしまった( ゚Д゚)

学校シミュレーター #3

ステート的に例えば

死体発見→生徒驚く→生徒職員室に走る→先生が現場に移動

の場合も、生徒の誰が職員室に行くのか難しいですね。全員行っても変ですし。
また職員室に先生が3人いたら全員行くべきなのか。でも、現実だったら全員行くのかな?

茶番的な状態遷移がけっこうあるので、プログラムでステート管理するのは限界かも?
やはりビジュアル的なステートマシン定義か? AnimatorControllerでやるって方法もありますね。ステートからプログラム呼べるし。

あと、NavMeshだと、動く標的を追尾するってのがややこしいですね。
どのタイミングで経路を再探索するのか?
あと、屋上から飛び降りようと思ってもできない。勝手に壁ができてしまう
障害物を動かすとか、特殊な抜け道を作る手段は用意されているけど、なんかしっくりこない。


ゲームの方向性としては、

  • ゾンビが攻めてくる(がっこうぐらし、ハイスクールオブザデッド)
  • テロリストに占拠される

みたいな方向でもいいかも