プロフィール

Na-7

Author:Na-7
SE(システムエンジニア)として約15年間システム系ソフト会社を勤めあげ、2008年3月退社。現在、ゲーム制作会社設立を目指して活動中。


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
| BLOG TOP |
DATE: CATEGORY:3Dテストプログラム開発
ClickOnceセットアップ実行画面
セットアップ実行画面
ClickOnceで作成したsetup.exeの実行画面。ゲーム実行に必要なランタイムをチェックしてインストールを促す。



◎XNA実行環境の問題

前回記事のコメントで、とくめーさんからXNA3.0が「ClickOnce」に対応していることを教えて頂きました。

昨年「XNA実行環境の問題について」に記述した通り、XNA実行環境には3つの問題があると考えていましたが、そのうちの1つ(ランタイムの問題)が改善されたようです。


とある事情により、サブPC(XNA3.0未導入)上でXNA3.0ゲームの動作テストを実施する必要が生じたので、これを機にClickOnceを試してみます。



◎試してみる

こちらの記事を参照しながら「プロジェクトの発行」を行い、生成されたsetup.exeをサブPCで実行すると、ランタイムのインストール画面が表示されました。

インストールに同意するとランタイムのインストールが開始されましたが、ここでわざとキャンセルすると、セットアップの中断処理が実施され、セットアップがキャンセルされました。ここまでは想定通りです。

ところが、setup.exeを再度実行すると…セットアップがまともに動きません(異常終了)。

サブPCの状態を確認すると、スタートメニューにはゲームが登録済、‘プログラムの追加と削除’にはXNA Framework3.0とゲームが登録済の状態でした。

どうやら、先程のセットアップ中断処理が中途半端で、レジストリ関係がクリアされずに残ってしまったようです。しっかりしてくれ~!>MS社



◎動きません

‘プログラムの追加と削除’からXNA Framework3.0とゲームを自分で削除し、セットアップを実行すると、セットアップは正常に動作し、インストールが完了しました。

これで直ったかな、と思いつつゲームを実行すると…何故か動きません。興味本位でキャンセルテストなんかやらなきゃ良かった…。

試しに、ゲームプログラム開発元の\bin\x86\ReleaseフォルダをサブPCにコピーしてexeファイルを実行すると、正常に動作しました。ランタイムは問題無くインストールされたようですね。

スタートメニューに登録されたゲームの呼び出し元(先?)を確認すると、最初の発行時に作成した「~.application」が呼び出されてました。つまり「ClickOnceは、Releaseフォルダの~.exeファイルとは別のものを配布する」ということです。



◎まとめ

当初の目的である「サブPCでのゲーム動作テスト準備(実行環境構築)」は達成されたため、中途半端ですみませんが、ClickOnceの検証はここまでとします。
…これ以上踏み込むとハマりそうで怖い(笑)

結局、ClickOnceで配布したゲームは未だに動きませんが、これは「セットアップの中断処理がたまたま誤動作したため」と思い込むことにしますw
まぁ、セットアップ中にキャンセルするケースなど稀でしょうから、その点はあまり心配していません。

しかし1つ覚えておきたいのは「何かトラブって一度ゲームが起動しなくなると、削除&再インストールでも動かないケースがある」ということです。

もしユーザからこのような報告を受けた場合は、下手にレジストリや配置マニフェスト(詳細はこちら)の修正を図るよりも、exeファイルを個別に配信した方が賢明と思います。



◎次回予告

ClickOnceが全く問題無いようなら、3Dテストプログラムの配布モジュールもこれで作り直そうと思っていたのですが、今回は見送りですね~。

ClickOnceはいずれまた扱うつもりですので、その時は踏み込んで検証します。

次回は「遅延対策案の再検討」です。

スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

| BLOG TOP |
DATE: CATEGORY:3Dテストプログラム開発
森のくまさんラストシーン
森のくまさんラストシーン
3Dテストプログラムのデモは、BGMとアニメーションの同期が1秒でもズレると台無しになる。



◎移行完了しました

前回の記事で、コンテントパイプライン系に問題が発生したと記述しましたが、解決しました。

それらのプログラムは別のプロジェクトに独立していたので、そのプロジェクトもXNA3.0に移行したら、あっさり動きました。

結局、ソースは何もいじらずに、ウィザードで変換してDLLを上書きしただけで移行できました。XNA先駆者達の報告では、移行に苦心した人の方が多そうだったので意外ですね。



◎タイミングがずれる問題

移行したプログラムを動かしてみると、BGMとアニメーションのタイミングがずれるのが気になりました。実行する度にズレの程度が変わるのですが、酷い時は2~3秒ずれます。

最初はXNA3.0の問題かと思いましたが、XNA2.0でも同じ現象が再現しました。そこでいろいろ試してみたのですが、実行する度にズレたりズレなかったり、ズレの幅もまちまちなので、同じテストを何度も行うはめになりました。

・XNA2.0の体操服化前のバージョンでも再現する
 →体操服化が原因ではない

・EXEを実行しても再現する
 →デバッグモードが原因ではない

・サブマシンでは再現しない
 →メインマシンの環境の問題

・ネットワーク回線切断時に再現率が高い
 →たまたま?

・全画面表示時に再現率が高い
 →窓枠表示(非全画面表示)ではほぼ再現しない



◎原因判明

CPU使用率を確認したら、窓枠表示時は15~20%ぐらいで、全画面表示時はほぼ100%でした。結論としては「全画面表示時に処理落ちしてタイミングがずれる」ということですね。

尚、、メインマシンのCPUはCore2Duo-2.6GHzで、XNAプログラムはその片方のCPUで動作します。もう片方があるのでPC全体は余力があり、CGも綺麗で滑らかに表示されているので、処理落ちしてるとは気付きませんでした。

考えてみれば、表示処理がオーバーしてるのにフレームを落とさないからタイミングがずれるんでしょうね。ドライバ設定を調整すれば直るかもしれませんが…とりあえず原因判明したからいいや。


ちなみに、サブマシンの方はPentium4-1.6GHzですが、グラフィックボードGeForce5200FXを増設してます。古くて安いボードですが、結構役に立ってたんですね。

メインマシンはグラボ増設してません。XNAがオンボードで動くだけ儲けものですが、全画面表示がこんなにCPU負荷かかるとは知りませんでした。



◎気になること

開発時はここまで気にならなかったんだけど、以前からこんなにズレてたかなぁ?う~む…。

それと、起動時のデフォルトは全画面表示やめて窓枠表示にした方が良かったかなぁ?でもXNAゲームプレイヤーの大半はグラボ増設してそうだし…。

あと、タイミングを合わせる時間として、ゲーム時間(GameTime)はやめた方がいいのかなぁ?でも実時間から取得すると、途中の処理が飛ばされて変な現象やバグが出そうなんだよね…。

例:XNAプログラムは、タイトルバーを押すとゲーム時間がストップします。但し、BGMは非同期に演奏されます。今はゲーム時間を取得してるので、BGMとアニメのタイミングはズレますが、バグは発生しません(多分)。

ここを押すと時間が止まる!



◎次回予告

変なところで時間を喰ってしまいましたが、原因は判明したので良しとしましょう。

次回からXNA3.0環境でプログラム開発をスタートします。
まずはマップですかね~。

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

| BLOG TOP |
DATE: CATEGORY:3Dテストプログラム開発
XNA3.0でスキンアニメーション
XNA3.0上で実行した画面。ACL2.0と全く同じ手順でスキンアニメーションができる。詳細はコチラ



◎XNA3.0に移行すべきか?

元SEの性(?)なのか、私は特に必要がない場合はソフトウェアのバージョンアップをしないタイプです。
手間がかかるし、不具合が発生すると嫌なので、安定環境のまま延々と引っ張ります。

XNA3.0はZune対応をウリとしていますが、私はZune対応する予定はありません。そのためXNA3.0は私にとって魅力が少ないように感じます。

しかし今は三国志軍記のプログラム開発を始める所です。移行には絶好のタイミングと言えるでしょう。そこで今回は移行するメリットとデメリットを整理し、移行可否を検証します。



◎メリットとデメリット

私がXNA2.0からXNA3.0に移行するメリットを記述します。

A:コンテンツが圧縮されてファイルサイズが小さくなる
B:マイクロソフト社のサポートを長く受けられる
C:将来XNAをさらにVersionUPする時のリスクが少なくなる

また、デメリットは以下の通りです。

a:移行に手間がかかる
b:不具合が発生する可能性がある
c:ヘルプやサポート情報が日本語化されてないものが多い
d:アニメーションライブラリ(ACL2.0)が動かない可能性が高い

…正直あまりメリットは感じませんね~。直接的なメリットはAだけですか?

まぁ、既存の資産は少ないので、aとbはちょっと頑張れば何とかなるでしょう。cは時間が解決すると思うので、それまで耐えるだけの話ですが、dが解決できないと致命的ですね。



◎XNA2.0からXNA3.0への移行

マイクロソフト社のHPを確認すると、XNA2.0とXNA3.0は同居可能とありました。これはありがたいですね!昔の資産は無理に移行せずに済みますし、移行する場合でもそれぞれの環境で試しながら移行できます。
ちょっと意欲が湧いてきましたよ!というわけで検証開始!

・念のため既存ファイルをバックアップ
・Visual C# 2008 Express Edition と XNA3.0 をインストール
・Visual C# 2008 で XNA2.0 のソースを開くと、VisualStudio変換ウィザードが自動起動する(バックアップも行われる)

で、変換後のプログラムをビルドすると、ACL2.0関連でエラーになりました。予想通りですね~。

プロジェクトに「参照の追加」でACL2.0を登録しても、ContentProcessorの候補一覧にACL2.0が追加されません。やはりXNA3.0でACL2.0は使えないようです。



◎アニメーションライブラリの移行

私は今回XNA3.0+XNAnimation(ACLとは別のアニメーションライブラリ)を試そうと思っていたのですが、その前にACLのホームページを確認すると…あれっ?11/26にACL3.0らしきものがUPされてるじゃないですか!
これはタイミング的にかなりラッキーかも…早速検証開始!

例によってDwarfTutorial 3.0があったので、これをゲットして解凍すると、プロジェクトファイル名は「DwarfTutorial 2.0.sln」となっています。
とりあえずXNA3.0上で実行すると…XNA3.0上で問題なく動きました。ファイル名は昔のままですが、DLLはちゃんとXNA3.0に対応しているようですね。

新規プロジェクトを作成して「XNA2.0でスキンアニメーション」の手順に従ってやってみると…おおっ動きました!手順もソースも全くそのままで動きましたよ!(冒頭図参照)

XNA2.0からXNA3.0にコンバートした既存プロジェクトのDLLを上書きコピーすると…ソース一切変更無しで動きました!DLL作者さんありがと~!(^^)



◎3Dテストプログラムの移行

これだけ手軽に移行できると、どこまで出来るか試してみたくなりました。というわけで、既存プログラムの中で最も複雑な3Dテストプログラムの移行にチャレンジ!

…エラーになりました。アニメーション系ではなく、漢字表示を実装しているコンテントパイプライン系のようです。
はぅ~!

コンテントパイプライン系ってちょっと苦手なんですよね~。もっと単純な実装にすれば良かったかなぁ…ブツブツ…。

まぁXNA2.0と3.0は同居できるので無理に移行する必要は無いんですけど、勉強がてら少し調べてみますかね…。



◎最後に

今回はXNA3.0+XNAnimationの検証になると思っていたのですが、話は意外な方向に進んできましたね~。
一応簡単にまとめると

・ACLの移行は、DLLを上書きコピーするだけ
・コンテントパイプライン系で問題あり?(調査は後日)

尚、ACL3.0にはXBOX360用のDLLも同梱されていますが、私はXBOX360不所持のため動作検証していません。
もし誰か検証したら、結果を教えてください。よろしく~。

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

| BLOG TOP |
DATE: CATEGORY:3Dテストプログラム開発

「森のくまさん」体操服バージョン
3Dテストプログラムのデモ「森のくまさん」体操服バージョン。
作者ホームページから差分ダウンロード可能。



◎服着せました

以前、デモ動画を「ニコニコ動画」にUPしたら、服を着せるようリクエストがあったのですが、当時はモデルを修正する技術が無かったので応えられませんでした。

心の奥でず~っと引っ掛かっていたのですが、この度モデル修正技術を習得したので、リクエストに応えて服を着せてみました。

プログラムは全くいじっていませんが、服着せただけで結構印象変わりますね。


「花のワルツ」体操服バージョン



◎なぜに体操服?

最初はTシャツとボクサーパンツにしようとしたのですが、色が全然決まらなくて、メタセコとRokDeBone2とXNAの間を何度も往復しました。

だんだん煮詰まってきたので、オリジナルモデル作者星さんのサイトを訪ねたら、別キャラで体操服姿のモデルを発見。「これだ~っ!」って心の中で叫んじゃいました(笑)

バックダンサーやフロントダンサーも全て同一モデルを使い回していたので、デザインを個別に変えるとプログラムも修正する必要があります。どうするか悩んでいたのですが、体操服なら皆同じ服でも自然ですし、元キャラの雰囲気も崩れません。ナイスですね~!

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

| BLOG TOP |
DATE: CATEGORY:3Dテストプログラム開発
3Dテストプログラム
3Dテストプログラム
画面右側リンクコーナーの「Na-7 ホームページ」の「ダウンロードコーナー」からゲットできる。但しサイズは60MB!



◎ちょっとご無沙汰でした

しばらく更新が滞ってすみません。
ちょっと体調不良で、先週前半は殆どプログラムできませんでした。
病院行ったら良くなりまして、後半は最終調整に励んでいました。



◎最終調整

主だった部分は大方出来ていたので、細かい表示や操作性など直しました。

今回は本編にデモがあるので、タイトルいらないんじゃないかとも思いましたが、タイトルが無いと全体的に締まらないので結局付けました。



◎ファイルサイズ

実は前回のRPGTestの時、友人から「50MBはデカすぎる!」と怒られました。
ファイルサイズの8割以上が音楽データなんですが、当時はXACTで圧縮出来ることを知らなかったので、WAV圧縮せずに提供してしまいました。(その後、圧縮したら18MBになりました)

今はWAV圧縮を覚えたんですが、今回は非圧縮で100MB超、圧縮しても60MBになります。曲数を減らすか音質を落とせばさらに減らせますが、ダンスゲーム(?)の性質上あまり落としたくないので、結局60MBでUPしてしまいました。

この判断は自分でも迷っていますので、ご意見のある方がいらっしゃいましたらお聞かせください。



◎というわけで

ようやく最終調整が終わって無事にUPすることができました!
よろしければ、ぜひダウンロードしてお試しください。
ご意見、ご感想、動作報告、バグ報告など、何でもお待ちしてま~す!

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

| BLOG TOP |

copyright © ゲーム制作の舞台裏 all rights reserved.Powered by FC2ブログ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。