スポンサーサイト

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

XNA情報:XNA3.0リリース!!!!!!!!!!

2008年10月31日
今日は10月31日。
クリエイターズクラブオンラインのメンテナンス工事も予定通り完了し、ついにXNA3.0が正式にリリースされました。
早速に、VC#2008とXNA3.0をDLして開発環境を移行しました。今後の開発作業はVC#2008+XNA3.0になります。
XBOX Liveコミュニティーゲームズでゲームを販売する場合、XNA3.0でビルドされていることが条件になっているので、ゲーム販売を目指して製作されている方には必須のバージョンアップです。

新しい機能で、XBOX360上で走らせている最中に画面のスクリーンショットが撮れるとの事なので、早速試してみました。
XNA_20081031_2.jpg
↑の画像が、その新機能で撮ったSSです。画像はPNGで自動的にマイピクチャーフォルダーに保存されるようです。
画像は、プログラムで指定した画面の縦横サイズで撮られるようです。

XNA_20081031_1.jpg
↑の画像は加工したものですが、画像の左右端のピンク部分が私のテレビ(1993年製 25型)で映像切れした部分です。
画面の「セーフエリア」は上下左右の10%ぐらいらしいですが、大体それぐらいの画面切れを確認できました。ドット数は大体左右48ドットぐらいです。

残弾数用のスプライトなんかは、もう少し内側に置いた方が良いかもしれません。
あと、思ったより自機が画面下半分を占拠してしまうので、もう少しカメラも離したほうがいいかも。

こうやって実機上でSSが撮れると、後で客観的に確認が出来ていいですね。思わぬ収穫です。
スポンサーサイト

XNA:4Xアンチエイリアシング

2008年10月29日
XACTの研究の最中な上に今更なのですが、XBOX360ハードウェアの特徴でもある「4Xアンチエイリアシング」をXNA TANKにも使うことにしました。
今まではPC上でデバッグする事が多かったので、アンチエイリアシングが使えないヘボPCのために使っていませんでした。

最近悩みの種(例の8回繰り返しで落ち)が解消された事もあり、360側でデバッグする事が多くなったので
「せっかくだから、俺はこっちの4Xアンチエイリアシングを使うぜ」
という事になったわけであります。

コードはものの数分で書けました。
どれぐらい画面に差が出ているか確認しようと思い、アンチエイリアシング無しと在りでプレイしてみたところ、タンクの砲身のピクセルにその効果が目立って現れていて、アンチエイリアシング無しでははっきりとジャギーが見えたのですが、4Xアンチエイリアシングでは全くと言っていいほどジャギーが見えず、改めてアンチエイリアシングの効果を実感しました。
やはり、ある程度長い直線的な部分のあるモデルに対して、威力を発揮するようです。
柱などの建築構造物にも効果的だと思われます。

XNA:XACT 効果音の3Dポジショニング

2008年10月29日
次は、効果音を3Dサウンドに対応させる作業です。
XACTで3Dポジショニングサウンドを実装するのに不可欠な要素が2つあります。
オーディオエミッター(以下エミッター)とオーディオリスナー(以下リスナー)です。
エミッターは、効果音が発生している位置をVector3値で指定します。
リスナーは、効果音を聴く位置であるVector3値(通常は自機やカメラの位置がそれにあたります)
この2つの関係を持って、リスナーより右側でエミッターが音を出したら、スピーカーの右側から音が聞こえるという感じです。
詳しくは、XNA2.0日本語ヘルプの「方法:基本的な3Dポジショニングエフェクトのキューへの適用」を参照してみてください。

で、私もそれを参照して、3Dオーディオを実装したのですが、一つ問題がります。
エミッターとリスナーの位置関係は、点と点で結ばれています。
エミッターはともかく、リスナーは「向き」が、「ワールド座標」に対して前方となっています。
エミッターとの向きを正確なものにするために、リスナーには向きを表すForwardベクトルとか、Backベクトルなど、向きに関する値をSet・Getできます。
Forwardのデフォルト値はたしか、(0,-0,1)だったと思います。ワールド座標を基準にした「前方」を意味しています。
自機であるタンクの正面は回転によって常に変化します。したがって、タンクの向いている方向をForwardとしてリスナーのプロパティにSetしてやらないと、期待した位置で音が鳴ってくれません。

一応、Forwardのベクトルをタンクの前方の向きで指定して、試しにプレイしていたのですが、音の位置が正確なのか、ちょっと自信がありません。
なので、「常にノイズ音を鳴らす」ようなオブジェクトをマップに1個置いて、その周りをうろうろしながら音のなり具合を聴けば良いと思い、次の作業は音発生器を作る事にしました。

皆さんも3Dサウンドを実装する際は「リスナーの向き」に十分注意してください。

XNA:続・XACT徹底研究 Option画面の逆襲

2008年10月27日
タイトルを見て「ダンジョンマスター」を連想した方は、なかなかのマニアです。

XACTを研究するということになったので、最初に効果音とBGMの音量を調整する所から始める事にしたのですが、その前にやる事があります。そう、ボリュームを調整するためのGUIが必要です。
まだXACT側のコードは書いていないのですが、とりあえずOption画面に効果音とBGMの音量レベルメーターを載せたので、その画面をアップしたいと思います。
ついでに、背景用の画像も描画してみました。
Option画面
文字の色とか背景のデザインとか、センスに欠ける所がありますが、生温い目で見てやってください(汁

追記(23時55分ごろ)
今、効果音だけ音量調節のコードが実装できました。
ホント、XNAの日本語ヘルプは役に立ちます。

XNA:XACTの徹底研究

2008年10月24日
一ヶ月以上に渡り、私を苦しめ、苦悩さし、挫折寸前まで追い込んだバグの原因であったXACTについて、
「せっかくなので、俺はXACTを研究するぜ」
ということになりました。

XNA2.0の日本語ヘルプの「オーディオ」項を見ていると、XACTツールの使い方から、単純な効果音の再生、最後の項は音のドップラー減衰まで説明がありました。
各項目を読んでいるうちに、「音量レベルの調整」と「3Dサウンド」なら比較的簡単に実装できそうなので、まずは音量レベルからやってみようと思います。
これで、使い道が無くなったとおもっていたタイトル画面メニューの「OPTION」の使い道が出来ました。

今のところ、ゲーム中は効果音だけで音楽が鳴っていないので、音楽はテスト用に間に合わせの音でも使う事にします。

通常、XACTツールでWave音をサウンドバンクとWaveバンクに登録すると、そのWaveファイルの音量が「1.0」という値に設定されます。
この値は0.0(無音)から2.0(倍の音量)まで調整できるので、プレイヤーの使っているスピーカーに合わせて音量調整をしていただくという仕様になります。

通常、ゲームでは効果音が1.0、音楽が0.8ぐらいに設定されていて、「音楽の音が大きくて、効果音がよくきこえないYO!」という問題を解決しています。

課題も出来たことですし、またヌメヌメと作業を進めていこうと思います。




XNA:バグ退散!

2008年10月20日
数日前の日記に書いた、例の「8回繰り返したら落ちる問題」のその後なのですが、問題はどうやらXACT絡みだったようです。
タイトル画面⇔操作説明画面の繰り返しの再に、タイトル画面で初期化していたXACT関係のリソースが残っていたようで、XACT関係の初期化コードやらPlayメソッドやらを根こそぎコメント化したら、何事も無かったかのように問題無く動くようになりました。
念のため耐久テストがてらに、タイトル画面⇔操作説明画面を100往復させたのですが、問題無く無事テストは終了しました。
タイトル画面⇔オプション画面の往復の時に4回で落ちたのは、オプション画面にも別途XACT関係の初期化コードがあったので、タイトル画面とあわせて1往復で2回XACTを初期化していることになります。
操作説明画面ではXACTをつかってなかったので、当然初期化処理は倍行われており、8回の半分である4回で落ちたという結果になります。
多分、
XACTAudioEngineは何回も初期化しないでね
と、いう事なのでしょう。とりあえず詳しい事が判るまではそういう事にしておきたいと思います。

結局、ほとんど何もしていない(あえて言えば、タイトル画面コンポーネントをキックしてるぐらい)のGame1クラスでXACT関係の初期化を一回だけすることにしました。
一つのサウンドバンクにゲーム中で使う効果音をすべて組み込んでおけば、万事OKってことです。

いやはや奇妙な問題が発生した時は、地味な切り分け作業に限ります。ほんまマジで


XNA情報:XNAの新しい本が出るようです。

2008年10月17日
XNA ゲームプログラミングブック XNA Game Studio 2.0対応XNA ゲームプログラミングブック XNA Game Studio 2.0対応
(2008/10/24)
XELF布留川 英一

商品詳細を見る

新しいXNAの和書「XNA ゲームプログラミングブック XNA Game Studio 2.0対応」が近々発売になるようです。
これで翻訳本も含めて、XNA本は5冊目となります。
この本は、C#の基礎知識から始まり、XNAプログラミングも学習できる「1冊で2度おいしい」的な本になっているようです。
XNAでゲーム作りたいけど、C#未経験なの、、、、(赤面 な方でも安心の1冊になりそうです。

9月1日~9月31日分 アクセス解析結果

2008年10月16日
毎月7日ぐらいにやる予定の検索キーワードランキングなのですが、先月に引き続き、危うく忘れるところでした(汁
今回で4回目となる9月分のランキング発表です。

***もはや定型文***
キーワード検索のTop5を記載しようと思いますが、「XNA」や「xna」などの大文字小文字の違いも別々のキーワードとしてカウントしているので、その辺は上位だけ記載します。
検索カウントが同じ同位のキーワードに関しては、管理画面に記載されている順位(おそらく先に検索されたキーワードが上位)に従って記載します。
それでは、5位から順番に書いていきます。
***文型定やはも***

第5位 「xna 当たり判定」 検索数:8
当たり判定絡みの検索は、毎月根強い人気です。
判定事態は楽なのですが、その後の処理(めり込まないようにするとか、壁ズリするとか)の情報探しなのかもしれません。

第4位 「アクションゲームツクール」 検索数:9
エンターブレインから発表された、アクションゲームツクールが発表された矢先だったと思います。

第3位 「XNA Game Studioで始めるゲームプログラミング」 検索数:10
純和製XNA本の第一号だったと思います。結構人気があるみたいです。

第2位 「Robot Game xna」 検索数:13
RobotGameは、クリエイターズクラブで配布されているミニゲームでは、かなり完成度とクォリティが高いゲームだと思います。
操作系に手を加えて、某アーマードなんとかみたいな操作感覚にしました的な動画がニコニコ動画にあったような覚えがあります。

第1位 「XNA」 検索数:128
揺ぎ無き、検索キーワードの連続1位記録を更新し続け、今後も続いていくと思われるキーワードです。
今回「おっ」と思ったのが、「XNA」での検索と「xna」での検索数が同数だった事です。珍しい珍現象でした。

以上、2008年9月分の検索キーワードランキングでした。



XNA:XNA TANK近況

2008年10月16日
最近進捗報告を書いてなかったので、久々に書きます。

やる気パワーが無くなっていたので、作業になかなか手がつかなかったのもあるのですが、奇妙なバグに遭遇して困り果てている状況でもあります。
PC上では問題無いのですが、360実機で動かすと、再現率100%でゲームが異常終了してしまいます。

タイトル画面⇔操作説明画面
といった具合に、画面の移行を8回繰り返すと、100%落ちてしまうのです。
画面の移行には、DrawableGameComponentを使っていて、コンポーネント間を行き来するような仕様にしています。
ちなみに、落ちる瞬間の命令は、Cpmponents.Add(コンポーネント)メソッドで、例外を返してくれないようで、Try Catchでエラーの詳細を知ることができませんでした。正に謎のエラーです。

タイトル画面⇔オプション画面
の場合だと4回ぐらい行き来すると同じくコンポーネントをAddしたときに落ちます。

最初はメモリーリークしてて、メモリがオーバーフローしたのかと思いましたが、それとは別の問題で落ちているようです。

GameComponentって、Add、Removeを頻繁に使ってはいけないのでしょうか、、、マジで作業が進まなくなってヤバイです。
しばらくの間は、この問題の原因究明に時間をとられそうです(汁

XNA情報:XNAゲームクリエーターコンテスト2008受賞者発表

2008年10月10日
幕張メッセで開催されている東京ゲームショー内で、マイクロソフトのプライベートイベント「Xbox 360 International Press & Community Party」にて、XNAゲームクリエーターコンテスト2008受賞者発表が行われたそうです。

コンテスト開催発表から、応募締め切りまでが一ヶ月ちょいというアーリースケジュールで行われた第2回国内XNAコンテストですが、今回も学生部門、一般部門共に多くの作品が集まったようです。

詳しい内容はGamwWatchの記事をどうぞ。

今回も学生部門の最優秀賞にトライデントコンピューター専門学校の製作チームが選ばれたようです。
5名からなる「澤木組」というチームが45日で制作したそうです。恐るべしトライデントの学生さん。

また次回のコンテストがあるなら、私も再戦したいと思います。当然XNA TANK以外の新作でw

コンテストに応募・参加された製作者の方々、マイクロソフトのコンテスト進行チームの方々、お疲れ様でした。

XNA:対戦前の設定画面

2008年10月08日
今までは、制限時間と制限ポイント数をオプション画面で行って、マップはランダムに決めるという仕様だったのですが、UI的に使いづらい感じがしたので、専用に新しい画面を作ることにしました。

タイトル画面で「MultiPlay」を選択すると、マップ選択画面に移行します。
対戦するマップや制限時間、制限ポイント数を設定する画面です。
その後、プレイヤーエントリー画面で参加するプレイヤー待ちを行った後にゲーム開始という画面の流れにすることにしました。

とりあえず、マップ選択画面の機能部分のコードは完了したので、後は文字配置の位置調整とか、マップのプレビュー画面の位置の微調整など、細かい調整で完了です。

ゲーム中の事も大事なのですが、その他の画面の使い易さもゲームの完成度に関わってくるので試行錯誤で何回も作り直ししてます。
360ゲームパッド専用という仕様にしてしまえば、もはやオプション画面が必要無くなってしまいました(汁 オプション画面は何か他の使用用途が思いついたら再利用したいと思います。



 | HOME | 

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