読者です 読者をやめる 読者になる 読者になる

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

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

Zombie

ThirdPersonShooterを作る(7)

ThirdPersonShooter 第7回です。 今回はXBOX360コントローラーでキャラクターを動かしてみました。 PCやSteamではXBOXコントローラーが標準ですね。(PS4コントローラーもSteamで標準対応) PS3のコントローラーをSteamで使うには変換ソフトが必要なので面倒…

ThirdPersonShooterを作る(6)

※三人ともAIです ・左上にレーダーを作りました ・空から落下してくるとき、着地時に膝をまげる体制のアニメーションを追加 ・銃撃時、銃口より炎のエフェクト追加 レーダーは、まずレーダー用のサブカメラを用意します。 つぎにキャラクターのマークは三角…

ThirdPersonShooterを作る(5)

navMeshを入れてみました。味方AIから逃げてもちゃんと追跡してきます(*´ω`*) navMeshAgentは使わずに、2点で問い合わせると経路パスを返してくれる関数を用います。 この関数は同期処理なので、複雑な経路の場合はフレーム落ちの原因になります。 navMesh…

ThirdPersonShooterを作る(4)

範囲攻撃を実装しました。 初めはcolliderでやろうかと思ったんですが、なかなか手間取ったので、爆弾側がゾンビをサーチして範囲内にいたらダメージを与える仕様に変更しました。 コード的には、爆発までのリミットを設定(ここでは4秒)。 爆発リミットで…

ThirdPersonShooterを作る(3)

高低差のある場合に射撃できるようにしました。これまでは同じY座標平面が前提だったので。 テストするために高低差のあるステージを作ったんですが、なぜか坂を登ってる途中でプレイヤーがすり抜けます。 この坂道を登っている途中でなぜか瞬間的に地面に落…

ThirdPersonShooterを作る(2)

ゾンビを倒した後にドロップアイテムするようにしました。 取得するとInventoryの配列に記録。 次はInventoryの表示や使用を作りたいです。

ThirdPersonShooterを作る(1)

ThirdPersonなShooterを作ってみます。 以前作っていたゾンビ狩りゲームと近くなってきました。 プレイヤーと、AIの味方が二人。敵はゾンビおじさんでwaveで襲ってきます。 AIがどんどん敵を倒してくれるので、ぼーっとしててもゲームが進む(*´ω`*) 簡単で…

navMeshAgentで自動車を走らせる

すんなりできるかと思ったらはまりました。 navMeshAgentでspeed=20ぐらいにするとコーナーを曲がりきれません。 今までみたいに遅いなら普通に曲がれます。 AutoBrakingはありますがそれでも足りません。 内部的にrigidbody使ってるんですかね? 遠心力の影…

ターゲットへの視線を可視化

ガンパレード・マーチキタ━━━━(゚∀゚)━━━━!! ゾンビおじさんはポニーテール娘だけをターゲットにしているので近くに来るとSetDestinationするので、経路パスを可視化してみた。 ま、でも、視線なんだから経路で曲がってる必要はない気がする。 むしろサイコキネ…

高度差のあるNavMeshと定期巡回

NavMeshについて一通り学習中。 スロープのある経路を作って、定期巡回のコードを作りました。 ゾンビなので、ターゲットが近い場合は、定期巡回を外れてそっちに襲ってくる。 StandardAssetのToonシェーダーがいい感じ! 高度差のある経路でBakeします。 定…

壁を考慮したゾンビとモブ子たちの戦い

まだ壁抜けしちゃう場合があるといえばあるんですが、 だいぶできてきました。 デバッグはかなりキツかったです(´・ω・`)もともと壁なんて無かった頃を思えば前進でしょうw 考慮しないといけないのが、射撃とかアニメーションの中に前進移動が組み込まれてい…

迂回してくるゾンビ

モブ子さんは固定ですが、 複数のゾンビが、経路探索して、モブ子さんのところを目指すようになりました。 壁に囲まれている場合は、開いている所を通って近づいてきます。 ゾンビらしからぬ賢さw 次は、モブ子さんが動いても、ゾンビの経路探索が追従する…

迷路を歩くセーラー服さん

セーラー服さんを迷路の中を歩かせました。 基本、向きをスムースに変えて、アニメーションで歩行させると、進行方向に進むという仕組みですが、 回転の角度が小さすぎると隣のマスにいけずに回転するので、回転角度を増やしました。迷路でのゴールをゾンビ…

経路探索実装中(超面倒くさい)

map=new string[10]; map[0]="#####"; map[1]="#G..#"; map[2]="#.###"; map[3]="#...#"; map[4]="#.#.#"; map[5]="###.#"; map[6]="#...#"; map[7]="##.##"; map[8]="#S..#"; map[9]="#####"; #は壁 Gはゴール Sはスタート位置Gからコストどれだけで移動で…

墓からゾンビが這い上がってくる

ランダムに配置ってわけにもいかないので、 spawnPointを作りました。 墓が多いとより分散した場所からゾンビがでてくるので各個撃破しやすいですが、たまたま墓が近いと集中してゾンビが出てくるのでやや難易度が高くなる。 void SpawnZombie() { int no = …

ゾンビからも攻撃

ゾンビからも攻撃をするようにしました。 画面上で膝を付いているのが殺られてしまったセーラー服さんです (AssetStoreのSportyGirlのモーション利用) 時間が経つと回復します←ゾンビですかw uGUIで右上に残りのゾンビ数などを表示 画面が寂しいので、Ass…

近くにいる敵の数を評価する

これまでターゲットを決めるには、一番近い敵をという距離を評価していましたが、各位が近くの敵の数を調べておいて、それをターゲットの決定評価に加えてみました。 tmpDis = Vector3.Distance (t1, t2); tmpPts = tmpDis*(float)(other.nearEnemyCount+1)/…

スムーズな回転、視野角のチェック

ゾンビが向かってくるように変更(AIMING) ただしHPが70%切ると今度は逃げ出す(AVOID)今まで回転はいきなりRotateしてたんですが、 ゾンビが逃げる処理を入れると囲まれた時に、 逃げる対象が頻繁に切り替わってスピン回転するようになったので、 スムーズ…

弾丸&血飛沫

Girl03の射撃で実際に弾丸が飛ぶようにしました。 弾丸とゾンビにはBoxColliderを付けて、OnTrigerEnterで衝突判定して ParticleSystemで血飛沫を表示させてます。 なので当らなければゾンビにダメージがないし、スコアも増えない。 弾丸はRigidBodyなので、…

遠距離攻撃

Military Pistol FreeのMotionが動きました。humanoidに変換する時に avatarを指定してapplyしないとダメでした。射程が長いので、一発ごとに別のゾンビを撃ってるので効率が悪いですね ロックオンして、同じゾンビを打ち続けるほうがいいかも あと、実際に…

ゾンビ殲滅への戦術

100体のゾンビが全滅後 スコアが170の人がいるw ということで、行動戦術ですが、現在は近いゾンビに近寄って蹴るだけなので 固まって、ゾンビを追いかけるようになりがちですが、 本来戦術としては、 弱ってる敵を探して、最後の一蹴りを狙う 見方が狙って…

スコアとか勝利モーションとか追加

ゾンビをひと蹴りで10点、倒すと1000点 02のハイキックはHPに-50ダメージ 01のスピンキックはHPに-100ダメージということで、HPゲージの上に獲得スコアを3DTextで表示 ゾンビのやられたモーションは、AssetStoreのFreeのBoxingAnimationのKnockoutを使用 htt…

ゾンビを蹴るセーラー服さん01&02

メガネっ娘02がセーラー服さん01を蹴るから、 01と02で協力してゾンビを蹴る方向に変えてみました。 02さんがハイキックで、01さんはスピンキック(回し蹴り)です。 モーションは、 https://www.assetstore.unity3d.com/en/#!/content/33478 こちらの無料ア…

HP残量メーター

HP残量メーターはあっさりできた。 CubeのscaleのXで残HPを表す。 蹴られる度にHPが10減って、0になったら、LOSE状態になり メガネっ娘の探索から外れる。 HPが回復したら復活 public float hp=200; public float hpMax=200; animator.SetBool("Damage", tru…

メガネっ娘がハイキック

セーラー服さんの01を、メガネっ娘の02がハイキックして回るという 殺伐としたシーンを作成 自キャラだけはメガネっ娘も蹴れる 頭の上に残HPゲージを作成中。まだ数値は反映されない。 childに登録しておいて、HPの値でscaleを変化させればいいはず。 メガネ…

スカートがめくれすぎる

mmd4mecanimのphysicsをONにすると 内蔵の物理エンジンで、スカートとか髪がふわーと動くようになるのですが、 ちょっと動きが大きすぎて ただ歩いているだけでスカートがめくれすぎる。 設定を見てもどこをいじれば弱くなるかはよく分からず 検索していろい…

100人生成

mmd2mecanimの練習で、 セーラー服さんv1.3をmecanimに変換 そのモデルに、mecanim starter kitの歩行モーションを登録して、 歩かせるスクリプトを作り、 さらに、ランダムに曲がって直進する単純なAIをつけて prefabに登録したものを、 100体生成してみた…