Home

Game X Programming Room

生存報告

先月から、まったく更新がないこのブログですが、
一応管理人は生きてます。

毎日夜遅くまで、残る日々が続いておりまする。
忙しいという言葉は使いたくないですが、正直寝る時間と、ゲームする時間
を確保すると、どうしても、このブログの更新頻度が落ちてしまうのです。

まだ、しばらくは落ち着きそうにありません。
落ち着いたら、また更新頻度を上げていきたいので、
それまでは、横のツイッターメッセージでも、眺めていてください。
興味をもったら、フォローしてください。

ということで、今日の更新は、これで終わりますです。

ちょっとストップ。ヒットストップ。

今日は、敵に対して、ヒットストップをかけてみました。

ヒットストップとは、アクションゲーム等で、攻撃がヒットしたときに、
相手の動きを一瞬止めることをいいます。

ヒットストップをかけることで、攻撃を与えている側が、
相手に対して、連続攻撃を入れやすくなったり、
いかにも、攻撃がヒットしたように、感じさせることが出来ます。

そんなヒットストップ。プログラム上で、どうやって、実現すればいいのか。

自分も正直、よくわかりませんでしたが、今日、スマブラを見て、
ピンっとなりました。

ヒットストップ。読んで字のごとく、ヒットしたときに、ストップさせる。
つまり、ヒットストップ時間まで、モーションを再生せずに、その時間を超えたら、
モーションを再生すればいいのです。

擬似コードで書くと


ヒットストップカウント++;

if( ヒットストップカウント < 設定したヒットストップ時間)
{
モーション停止
}

//ヒットストップ時間を超えた
else
{
   モーション再生
}

のようにすればいいのです。
これを実際に試したところ、すごい当たった感が出て、
一気に攻撃に重みが加わりました。

これは、本当に感動ものですよ。
今まで、非常に軽かったのが、一気に重みが加わって、
当たった感が出るようになりました。

素晴らしい! ヒットストップ最高!!

もう、ヒットストップのありなしでは、全然面白さが違ってきますよ。
特に、重い系の敵で、ヒットストップかかっていなかったら、
非常に、物足りなさをかんじてしまうでしょうね。

というわけで、今日は、ヒットストップについてでしたー。

息抜きは大事だね

少し古いですが、ゴールデンウィーク中に、富山に行ってました。

卒業してから、一ヶ月しか経ってなかったわけですが、すごい密度の濃い
一ヶ月を送っていたせいか、非常に懐かしく感じたのでした。

ゴールデンウィーク中は、県外に出ていた人も、戻ってきていて、
近況報告をつらつらと。

仕事がつらい人もいれば、楽しい人もいたり。部に、いっぱい新入部員が来たとか、
まあいろいろです。

この近況報告の時は、自分でも驚くほど、話が弾みましたね。
あれっ、自分ってこんなにおしゃべりだったっけ。と錯覚するほどに。

まあ、それほどまでに、大学での生活に慣れ親しんでいたって事でしょうね。
後、今の会社で、さほどしゃべれていなかったのも要因かも知れません。

1日目は、主におしゃべり。
2日目も、同様に、おしゃべり+カラオケ。

久々に、大人数での、カラオケで、非常に楽しかったですね。
おかげで、非常に良い息抜きができたと思います。

この息抜きのおかげで、かなり精神的に救われました。
おかげで、昨日からの、仕事はなかなか頑張れています。(会話的な意味で)

本当に息抜きって大事な事だと思いますね。
息抜きがなかったら、もうプレッシャーと、ストレスに押しつぶされそうになってしまいます。

定期的に、息抜きして、体調を崩さないようにしていくたいですね。

MGSPWのAIが気になる

現在仕事で、敵のAIを作っているので、どうしても、他のゲームのAIが
気になってしまいます。 

今回やっているMGSPWもそう。

大まかには、
・探索モード
・索敵モード
・攻撃モード

の3つに分けられているんだと思います。

まず、探索モード
これは、おそらく、あらかじめ、設定されたウェイポイントを使って、
経路通りに移動させているだけだと思います。
普段は、ひとりひとりなのですが、序盤にある戦車ステージの場合は、
グループで制御されているみたいで、戦車をリーダーとして、
残りの敵が、周りを囲むという、グループ集団でのAIが制御されているようです。

ここで、気付く範囲が設定され、気付く範囲にプレイヤーがいたときに、
ある一定距離歩いて、見つかったら、攻撃モード。
みつからなかったら、探索モードに戻るという感じですかね。

・索敵モード
CAUTION状態の時の処理ですね。
とにかく、敵を散策します。そして、この状態の時に、見つかったら、
攻撃モードに入るわけですね。
この時、しっかり、壁から回り込む処理も書かれていて、すごい自然な動きに見えます。

・攻撃モード
スネークが、完全に、見つかったときのモードですね。
敵が容赦なく、攻撃をしてきます。
まだ詳しく見てないんだけど、これも、一体ずつ攻撃してきているんでしょうかね。
これから、研究します。

それで、この時にプレイヤーが見つからなくなって、一定時間経ったら、
索敵モードに入る。と。

以上が、ぱっと見た感じの印象。
文章で、書くのは楽ですが、いざ、プログラムを打つとなると、ここで書いた以上の細かい事が、
必要で、すごい苦労すると思います。
ここまでのAIにするのに、けっこうな時間と、労力をかけているんだろうなぁ。
と思います。

自分の作っているAIには、まだまだ不自然な所が多すぎるので、
最低限、自然に見えるようなAIを作っていきたいです。

突き詰めていくと面白いんでしょうけど、今の僕は、
まだまだ勉強不足。

しっかり勉強して、ユーザーを楽しませるようなAIを作っていきたいです。

MGSPW購入

今日は、MGSPW発売日だったんで、買ってきましたよー。

朝から、難波のビックカメラに行って、購入してきました。
正直買えるかなぁ…とちょっと不安だったんですが、
全然問題なく買えましたね。
通常版どころか、限定版も普通に置いてありました。

その後、近くの日本橋に、ふらっと行ってみたところ、
恐らく、MGSPWを購入するであろう人がずらっと並んでいましたね。

近くに行けば、すぐ買えるのにね。
と思いつつ、横を通り過ぎました。

日本橋に行ったからと行って、特に何をするわけでもなく、
その光景を見て、すぐ帰りました。

本当は、もっと色々と回っても良かったんですが、
なぜか、気分がのらなかったのです。
うん。この時点で、けっこう疲れているのかもしれませんね。

最近、大きく感情を動かされていないので、
今回買った、MGSPWで、大きく心が動かされることを期待してます。

出費がひどかった

今日は休みなので、午前中は、部屋の掃除したり、洗濯したりして、まったりしてました。
しばらくしてから、梅田のヨドバシカメラにいって、
本やら、ゲームやら諸々見てました。

そこで、思わず、衝動買いしてしまった本が、
実例で学ぶゲームAI数学

この本をぱらぱらと見たとき、あまりにも、今回のゲームで、使えそうな処理が多くて、これは買っとかなきゃいかんっておもったわけですよ。

買ったからには、しっかり活用したいところです。

その後、ソフマップに行って、当初から買う予定をしてたL4D2とヘッドセットを購入。

後は、ゴールデンウィークに、富山に行くために、切符を購入。

そんなんで、今日の出費が、2万円ぐらいと、
非常にお金を消費しました。

今月は、後一本MGSPWを購入する予定なので、
今月の出費は大変な事になりそうです。

明日は一応給料日。
ですが、自分で、払うものが多い + 親からの仕送りがない

ので、計画的に、お金を使用していく必要がありそうです。
そのために、給料日に、次の月に使うお金をどかっと引き出して、
そのお金で、やりとりする手法をとろうかなぁ。と考えてます。
そうすれば、確実に貯金は増えていくわけですし。

敵の動きは奥が深い

最近まったく書けてませんでした。
毎日が、お仕事で、いつも帰るのが0時頃なので、以前と比べて、
全然書く余裕がないというのはありますね。

さて、今日も、いつもと変わらず、敵の動きの作成をしてました。

一応全部のモーションの導入は、終わっているわけですが、
まだ行動パターンに組み込んでないので、早いところ入れたいのですが、
集中力が持たないのか、あまり進行はしてません。

最初は、そんなに時間がかからないかなぁ。と思ってたんですが、
その考えは、非常に甘かったことを痛感しました。

敵のダメージリアクションひとつとっても、ただモーションを
再生するだけではだめで、
・如何に当たっている感を出すか
・如何に気持ちよくやられてくれるようになるか

など、いろいろと考えることがあります。

さらに、自分が作っている敵は、重そうな敵なので、
・スーパーアーマーモードで、ひるまないようにする必要があるのではないか
・ガードが堅いのではないか

など、そのキャラに合わせた、動作も追加していく必要があります。

行動パターンも、如何に、自然な動きに見せるかが重要であるし、
AI関係が、どちらかと言うと、苦手な僕にとっては、苦労することばかりです。

しかし、と同時に、非常に面白く感じるのです。
元々、ゲームのキャラクターの動きをつけたいと思っていた私。
面白くないはずがありません。

より、魅力的なキャラの動きを作るために、色々なゲームを
研究して、実装していけたら、良いと思います。

おかしくない程度には、実装ができる私ですが、
それ以上のヒットストップとか、攻撃くらったときの、移動距離とか細かい挙動に関しては、弱い私。

そのためにも、もっと色々なゲームをやって、研究せねば。

会話って大事

本日も、お仕事。

やっぱり会話って大事だと思うんです。
一日あまり会話を交わさずに、過ごしたときと、
会話をしたときで、全然やる気が違うのです。

その時の仕事の状況にもよるんでしょうが、
一日会話が無かったときの、ネガティブっぷりったら無かったと思います。

あまり自分から、話せないけど、
話をすることは好きな私。

何とか、このギャップを埋めれるように、積極的に
話に行きたいなぁ。と思います。

そのために、また会話の本でも、読もうかな。

お仕事楽しいです

今日も、元気にお仕事です。

まずは、午前中で、問題があった、敵のモーション再生についての問題を解決。

原因は、そもそもモーションがセットされていないことにありましたね。

if( Motion > 0 && Motion < eMotion_None )
{
モーションセット
}

となっていて、このeMotion_Noneが、0でした。
そりゃあ、再生されないわなぁ。と納得。

これができたので、午後からは、ダメージリアクションの調整。
何故か、攻撃方向に関するリアクションの取り方がおかしかったんですが、
他の人のプログラムを参考にしてやったら、何とか形になりました。

それが終わったので、次は、敵のAI作りをしています。

こうやって、だんだん形になっていって、良くなっていくと、
非常に楽しくなってきます。そして、その変化が目に見えて
わかるようになってくると、非常にいいですね。

それに、今日は、けっこういろいろと楽しい動作も見れましたし、
コミュニケーションもしっかりとれました。

やっぱり、人と話すのが、結構好きな自分。
しかし、自分から、あまり話しに行かない自分。

積極的になる事が、非常に楽しいことであるとわかっているのに、
これは、もったいないことなのかも。

あー。もっと会話ができるようになりたい。
これは、常に自分が持っている悩みなのかも知れないですね。

仕事は計画的に

今日もお仕事。
昨日は3時ぐらい頑張ってたせいか、起きて、気づいたら、9時でした。
そこで、慌てて、用意して、会社に行きました。今日はミーティングがあったので、遅れるわけにはいかなかったのです。何とか、ギリギリの時間に会社に着き、遅刻を免れました。

今日は、結構ミーティング続きで、大きく作業は進展しませんでしたね。
自分が担当する、もう1体の敵の初期実装をしてしまおうと、今日一日使ったのですが、何故かモーションが再生されず。本当は、今日で、原因を突き止めたかったのですが、ようやく実装が終わったのが、23時だったので、今日はおとなしく帰りました。

明日の午前中で原因を突き止めて、実装してしまい、後は、今メインでやってる敵の動きを詰めたいところです。まだ、色々と不具合があるので、スケジュールに遅れがないように計画的に実装していきたいです。他の人の仕事の都合で、もう一体敵を担当することにもなりましたしね。

Home

Search
Feeds
Meta

Return to page top

Powered by @PAGES | relate link | hotword link