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

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

学校シミュレーター #4 死体のD&D

f:id:yasu9780:20170118160720p:plain

色々と実装しました。

  • 剣で攻撃して殺害できる
  • 死体を見た生徒が驚く→職員室に通報に行く→先生が確認に来る
  • 剣をドロップできる
  • 死体の足をつかんで引きづれる
  • ドラッグ中の死体をドロップできる
  • 死体から血が出る
  • 体力パラメーター(歩くと疲れる→自席に戻ってくる)
  • 話しかける(疲れていたり、嫌われていると断られる)
  • 評判の口コミ伝播
  • 1時間目から6時間目まで休み時間を挟んで進行する(その度に生徒と教師が教室に集まる)
  • 机と椅子に、モブ子さんの作者のmatoさんが公開していたモデルを使用する



学校シミュレーター #4

死体のドラッグ&ドロップ

死体をドラッグ&ドロップが一番難題でした。
今でも、まだそれらしい引きづりかたができていないので調整が終わってません。

さすがにRigidBodyはいろいろと難しいです。
死体があらぶってなかなかうまくいきませんでした。
YandereSimulatorの動画を見ていても、足が壁にめり込んでメッシュが変形したりしてますしね。
Unity標準のRagDollは、GameObjectにトップにRigidBodyがありません。
なので高いところから落として実験すると、TorsoやHipMasterといった重さを持ったものは地面まで落ちてますが、実はGameObjectの座標は変化してません。
親は重さが無いので動かないで、子要素の体だけが動いているのです。
なので、GameObjectにもmass0.1を与えて、FixedJointとHipMasterを接続するなどをしました。
これをやってないと座標だけでなく、メッシュとボーンのウェイト塗りに抜けがあった場合にメッシュが変形するといった不具合も出ました(メッシュ頂点が動かないRootにつながっているせい)
Unityのwizardは使わずにプログラムでragdoll化しています。

血のり

血のりは、薄い赤い円柱を死体が落とすようにしました。
スクリプトを仕込んでいて、時間で徐々に大きくなっていきます。
RigidBodyなので、階段で死んだ場合も斜めの床にフィットしてくれます。
ただ、何かとぶつかって斜めに浮く場合がありますけど(´・ω・`)
円じゃなくて、なんかそれらしいメッシュでも作りたいです。
本来は、テクスチャに塗り込むべきなんだろうか?
本家のyandereSimulatorは、血のりをモップで掃除できます(ルンバもあるw)