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

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

ゾンビからも攻撃

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

f:id:yasu9780:20150426214005p:plain

  • uGUIで右上に残りのゾンビ数などを表示
  • 画面が寂しいので、AssetStoreで無料で落としてきた木を実行時にランダムに配置
  • ステータス横の(数値/数値)は、(近くの敵数/近くの味方数)


f:id:yasu9780:20150426214620p:plain

ゾンビを全滅させるとステージの中央に整列して、全員で勝利ポーズをとります
平和は守られた



ターゲットにするゾンビの評価は、

float rate =(float)other.nearFriendCount/(float)(other.nearEnemyCount+1);
tmpPts = tmpDis;
if(other.nearEnemyCount>=3) tmpPts+=(float)other.nearEnemyCount;
if(other.nearEnemyCount<=1) tmpPts-=0.5f;
if(rate>=2f) tmpPts+=rate*0.5f; // too many
if(rate<=0.5f) tmpPts-=rate*1f;// pinch

既にセーラー服さんが3人以上近くにいるゾンビは低評価(過密なので)
逆に味方が1人・0人のゾンビを高評価

rateは、周囲のゾンビ数/周囲のセーラー服さん数で、
0に近いほど、セーラー服さん過密
other.nearEnemyCountが1以上で、数字が大きいほどセーラー服さんピンチ(囲まれてる)
other.nearEnemyCount==0の時は、単にゾンビが過密なだけで、銃撃の場合はカモ

うーん、上のコード間違ってますね(爆)
rateの評価が逆です(汗)

if(rate<0.5f) tmpPts+=1.5f; // too much sailor
if(other.nearEnemyCount>=1 && rate>=1.5f) tmpPts-=rate*1f;// pinch

こうすれば良さそう


いっそのことゾンビの頭に評価値を表示すればデバッグしやすい

f:id:yasu9780:20150426222611p:plain
ちょっとシュールな絵になった。
殺られたセーラー服さんは回復させない方が緊張感があっていいかもしれない。
むしろゾンビガールになって襲ってくるべき
緑色のテクスチャを作らねば