2017-04

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

バグ潰しその1

ゲームの核になる【アクション変移→コリジョン発生→ヒット判定→それによる分岐】という流れができ、かついろいろなパターンを実装することで今後の課題も明確になりました。というわけでどんどん先へ進みたいのですが…。実は2つほど大きいバグが残っていて、先に進む前に潰しておきたいと思っていました。
大きいバグのうち1つ目はヒット周りで、長くプレイしているとヒットが処理されないことがまれにあります。まぁ、この辺はコリジョンの管理が甘いだけなので、調べればすぐにわかりそうです。調べるのが面倒なだけで…。
問題はもう1個で、ごくマレに攻撃モーションがわずか0.1秒ぐらいでキャンセルされてしまう、というレアなバグです。実はかなり前から出ていたのですが、なかなか閃きがなくどの辺が問題なのかがわかりませんでした。今回、このバグを潰すことが目標です。
まず最初に疑ったのは経過時間です。Update(GameTime gametime)で入ってくるgameTime.ElapsedGameTime.TotalSecondsを監視してみました。ひょっとしたらたまにデカイ数値が入っていてモーションが一気に最後まで飛んでしまっていると考えました。が、問題はありませんでした…。
次に疑ったのがスキン関連です。Microsoftが作った部分は問題ないと思うのですが、問題は私が作った箇所で、特にモーションブレンドが怪しい。実に怪しい! いろいろ調べたところありましたよ。ヤバイのが! どうやらループ直前に別のモーションへブレンドが開始され、その直後攻撃モーションが新たに発生したときに(このときモーションブレンドは指定していない)、以前のブレンド関連のパラメータを殺しきれずに引き継いでしまっていたようです。そのため攻撃モーション中にループカウンターがプラスされて、攻撃モーションが終了する条件であるループカウンターが0より大きい、という条件が成立してしまったようです。
あぁ、しょうもないなぁ~なんて思いながら修正したところ…あれ? バグが取れてない!? そんなバカな! これ以外考えられない! あわわわ…もう駄目だぁ~クリムゾンスカイでもやろう。やった~クリアだ~エンディングだ~! というのが昨日の出来事でした。
一日経過し落ち着いて再挑戦ということで、丁寧に問題を調べたら2~3個まだ問題点がありました。でもいっこうにバグが消えない…。追い討ちを掛けるように宇宙スナイパーKIDさんに薦められてアマゾンで購入したメックアサルト2がようやく届き、嬉々として開封したらソフトじゃなくて攻略本(しかも英語)で精神的ダメージ食らい悶絶。しかし、その拍子に閃きました。以前、SkinnedSampleをベースに薦めていたソリューションを、新たに作り直してその上にSkinnedSample関連のプロジェクトを移しました(これやらないとマズいらしい?)。そのときに参照設定でSkinnedModelの指定の仕方がわからずDebugビルドしたDLLを指定しました。後にそれはプロジェクトを指定することで、ビルドに合わせて参照先も変わることを知ったものの、やり忘れていたんですね。直らない直らない言っていたのはReleaseだったからでDebugにしたら直りましたwwwついでにDLLも指定し直しておきました…。
はふぅ~、一気に疲れました…。

● COMMENT FORM ●

こんばんは、宇宙スナイパーKIDです。
バグ取りお疲れ様です。
ソフトを作っている限り、バグはプログラマーにとって永遠の敵です(汁
私の場合、あまりクリティカルなバグで無い場合は、しばらく放置プレイする事が多いですが、再現度100%のバグなんかは放置できないので必死で原因究明に当たってます(最近ではXACTのアレ)

メックアサルト2の件は災難でしたね(汁
ちなみに、メックアサルト1を先にやったほうが、2のストーリーがわかりやすくて良いかと思います。
初代XBOX時代、北米のXBOX Liveスターターキットにはメックアサルト1がバンドルされていたせいか、Live対戦が凄くにぎわっていました。今ではたぶん閑古鳥だとは思いますが、、、、

あと、先日アップされた動画拝見させていただきました。いやはや、流石はかるがも先生。反響も凄いようで、このまま横スクロールされてボス戦とかされたら、ワシもう、、、、
あまつさえ、4人同時プレイとかになったら、、、(赤面

>> KIDさん
こんばんわ~。お蔭様でなんとかバグ取れました。
バグ取りもプログラマのスキルの一つですね。条件絞り込みがうまくできなくて時間がかかってしまいました。
それでも、目に見えるバグならまだマシな方なんでしょうね。

メックアサルトの件には脱力しましたw前回もアマゾンで本を間違えて2冊買ってしまい、しかも開封したあとに気づくとか、かなりガッカリな人間です、私。メックアサルト2は乗り降りできるらしいので、その辺に惹かれて2にしちゃいました。気に入ったら1にも手を出してみたいと思います。

動画の方、お褒めいただきありがとうございます。ボス戦は必須ですよね。でも、同時プレイは…いろいろとキツイです。何がキツイってデバッグができない…。娘が小学生くらいになったらデバッグ要員になりそうですが…。まぁ、それを言ったらKIDさんもXNA TANKの対戦は同じ条件ですよね。とりあえず同時プレイは続編で!ということでwww

>かるがもさん
バグ取り乙でありました(敬礼
バグの原因部分を絞り込むのは、包囲・殲滅戦みたいなもんです。ヌメヌメと時間をかければ何とかなるもんですw

<メックアサルト2
「戦力が無いから、敵の基地からメックをかっぱらってきましょう」というステージがあるのですが、メックの強奪は結構快感ですよw
某ガンダム0083みたいに「このメックはいただいて行く!」みたいに強奪しましょうw

<同時プレイ時のデバッグ
XNA TANKの対戦プレイのデバッグは、たまに友人に手伝ってもらってます、その度にダメ出しされますけどw
4人同時プレイに挑戦したいのですが、流石に4人集めるのが難しいので、、、、、
多人数プレイ対応には惹かれますが、デバッグできる環境に恵まれてないと難しいですね。
XBOX Live対応!とかに挑戦したら、もっと大変かもしれません(汁


管理者にだけ表示を許可する

トラックバック

http://karuduck.blog50.fc2.com/tb.php/76-3463030d
この記事にトラックバックする(FC2ブログユーザー)

NEW ENTRY «  | BLOG TOP |  » OLD ENTRY

プロフィール

Karu_gamo

Author:Karu_gamo
<メールアドレス>
karu_gamo#hotmail.co.jp
#を@に置き換えてえてください。

<自分リンク>
かるがも研究所【新】
YouTubeチャンネル
公開素材置き場
仕様書
旧ブログ(見るとこないです)
管理者ページ

リンク

YouTube動画

FC2カウンター

カテゴリー

Twitter

 

月別アーカイブ

RSSフィード

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。