1 名前:名前は開発中のものです。 [2007/12/22(土) 17:33:42 ID:spx8/Rc4] 前スレ 【XBOX360】 XNA Game Studio その3 【C】 pc11.2ch.net/test/read.cgi/gamedev/1176692259/ XNA Developer Center msdn.microsoft.com/directx/XNA/ XNA Game Studio Express msdn.microsoft.com/directx/xna/gse/ XNAをはじめよう! xna-studio.jp/ ■ゲ製wiki プログラミングガイドなど、基礎技術情報が豊富 www23.atwiki.jp/news4xna/ ■ゲハwiki フリーのライブラリ情報などが豊富 www16.atwiki.jp/xna360
590 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 14:04:53 ID:p8GIJl6K] 大富豪作るのに大富豪のルーチンを書く以外に何が必要なんだ? 携帯開発ってカードゲーム用のライブラリが標準でついてるのか?そりゃ便利だね。 おっと>>576 が置いてけぼりだ、だいたいお望みのネットワーク用のクラス郡あるよ。 PCをLANで繋げてパケット送受信くらいならすぐ試せる。ドキュメント見れ。
591 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 14:24:40 ID:B6ARmRBJ] >>587 >>590 携帯の場合、機種依存のほうが問題になるって あとJavaの旧いのしか使えないから、言語的にも面倒だな
592 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 14:28:00 ID:L8xhRnhE] >>590 ありがとう。 windowでxnaはそれでいけそうですが、 xboxのほうは、liveがかんでるんですが、 同じようなコードで通信対戦プログラムできるのでしょうか?
593 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 15:12:43 ID:p8GIJl6K] >>xboxのほうは、liveがかんでるんですが まぁそのせいで下準備のコードがちょっとめんどくさいんだけど、 >>同じようなコードで通信対戦プログラムできるのでしょうか? これに関しては心配いらない。 あとは箱用に作るのに必要な料金さえ緩和してくれりゃな。 MS金だけはあるんだからただでやらせろよう。
594 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 15:15:29 ID:L8xhRnhE] >>593 ありがとう
595 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 15:38:20 ID:2UlhBHC9] このまえいい雰囲気だったので来たらまたこの流れでワロタw グダグダしててもいいけど足の引っ張り合いは恥ずかしいぜ? 海外のフォーラムをみて考え直せよ
596 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 15:54:30 ID:l4fGQKhK] 不毛な議論ご苦労様wwwww 開発者が対応しないと言ってるものをいつまでもグダグダと あーでもないこーでもないと話して楽しいか?wwwww 早くゲーム作れよ、特にハコ太郎 将棋ゲームやってみたいからよ
597 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 16:39:28 ID:nTH4tms8] そーそー。早く対戦ツール作れよ。 素人にAIというかルーチン期待出来ないから、単純な対戦ツールでいいよ。
598 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/27(水) 16:53:42 ID:nV5kjYID] とりあえず、前回のまとめ データベースに登録したもの。 1: TextureProcessorのプロセッサーパラメーターの初期値を指定したい 2: SpriteFont.DrawStringの文字列の範囲指定 3: FontDescriptionProcessorでテクスチャフォーマットを指定できるようにする 4: アニメーションスターターキットの追加 5: アセンブリ依存をアセット毎にチェックする 6: コンテントフルビルドがリリース/デバッグ切り替える度に発生する 7: コンテント配置がリリース/デバッグ切り替える度に発生する すでに登録されていたもの 1: エフェクトファイルが日本語名パスを含んでいるとエラーになる 2: ローレベルサウンドAPI 3: 動画再生がしたい 4: SM1.1以外のGPUでも動作させたい こちらからの質問として、どんな状況でどんな機能が必要になるのかが もっと知りたいのが以下の4つ 1: ローレベルサウンドAPI 2: 動画再生がしたい 3: SM1.1以外のGPUでも動作させたい 4: GUI とりあえず小一時間くらい滞在します
599 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 17:07:21 ID:B6ARmRBJ] 3: SM1.1以外のGPUでも動作させたい ライトなゲーマーの方はしょぼいグラボ使ってることが多いので、 そういう環境でも2D描画くらいはできると助かります あと、プログラミング初心者の教材に使う時に躓きました。 そういう人に限ってしょぼいPC使ってるので。
600 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/27(水) 17:13:01 ID:nV5kjYID] 同じプロジェクトでXbox 360とWindowsの両プラットフォーム使いたいという要望についてですが Visual Studioの詳しい人に聞いたら、VS自体にアセンブリの参照をプラットフォーム毎に変更するという コンセプトが無いので現状では同じプロジェクトファイルひとつで管理することはできなかったとの回答でした。 ただ、プロジェクトが複数に分かれている利点としては、プラットフォーム毎にインターフェースを変更しやすい、 (例えば現状でもWindowsとXboxのプロジェクトとではファイルを追加したときに表示されるメニューが違うなどが ある) #if XBOXの様にファイル全体を囲うことなく、単にプロジェクトに追加するかしないかなのでコードの可読性が あがるのと、ひとつのプロジェクトにしてしまうとWindows版でフォームを使ったときにコード生成されている 部分が#ifでは対応できないという問題があるとのことでした。 ただし、今後はZuneを含めてサポートするプラットフォームが3つになるので、複数のプロジェクトを 管理できる機能を追加していきたいとのことでした。 例えばファイルを追加、名前変更、削除などをしたときに、WindowsとXboxの 両プロジェクトで同期をとるようにする機能などがアイディアとしてはあるそうです。 それ以外にも、マルチプラットフォームをVS上で管理する上で欲しい機能があったら連絡してください とのことでした。
601 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 17:14:51 ID:p8GIJl6K] あんたこれから常駐する気かw >SM1.1以外のGPUでも動作させたい XNAって基本的に固定機能パイプライン用のステート設定項目削られてんじゃん。 あれ復活させて。360には固定機能シェーダは〜てんなら BasicEffectでエミュレートさせるのでも良いけど。 エフェクトファイルに書いて下さいってのは勘弁。
602 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 17:26:33 ID:Blhcupwm] フレームワーク屋ライブラリ屋うざい ひととおり完成させたゲーム作った上でフレームワークを語るならわかるが ゲーム作らずに仕組みばっかり作るのは下らない自己満足
603 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 17:27:02 ID:l4fGQKhK] >固定機能 いらねーよ asmも記述できなくなる時代だぞ?
604 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 17:38:55 ID:x/FL2loS] どうでもいいからDirectX10専用のXNAを早く作り始めてよw 箱は無視でいいからさw
605 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 17:55:23 ID:FsrER9nz] >>587 ゲーム自作できない奴の遊ぶだけスレ(家ゲ板) 【XBOX】XNAクリエイターズクラブ遊ぶだけスレ【LIVE】 game13.2ch.net/test/read.cgi/famicom/1204095292/
606 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 17:55:49 ID:sLTAwTu/] XNAのサンプルってcreators.xna.comの所と、他にどこかある?
607 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 18:17:33 ID:vDOW+5md] うーん、俺はひげねこの言ってる事も分かるけどね。 つーかさ、今の時点でもウィンドウみたいなの用意するのにそんなに手間かかんねーだろ。 これ以上、楽にしたいんなら、本格的ゲーム制作なんて辞めて、素直にXBox360で配布できるRPGツクールの要望出した方が良いね?
608 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 18:24:53 ID:vDOW+5md] コンパイルエラー強化 PCでのコンパイルは通るのに、実機で試してみると意外な所からエラーが帰ってくる。 PCでのコンパイル時で完全に実機でも通るほどエラーチェックを厳しくする事は出来ない?
609 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 18:26:10 ID:pA3Q2Mma] >動画再生 オープニングやエンディング、ちょっとしたイベントシーンに使いたいこともあるかもしれません。 3Dであればただの動画よりも、リアルタイムに動きをつけたイベントシーンの方が面白いですが、 2Dだとスクリプト的な制御だけでは表現が難しいこともあるため、動画で楽したいってのはあります。 (Flashで作られたアニメーションを再現するのが難しいので、そのまま動画にして再生するなど) Vector Graphics が欲しい……。
610 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/27(水) 18:42:09 ID:sG5OgzFC] GUIに関しては私の言葉不足で誤解を招くような表現になってしまってすみません。 私が言いたかったのは「GUIの表示部分が無いのが一番重要な問題じゃないですよね?」ということです。 例としてDQやFFのショップ出したのは、たとえ表示部分のライブラリを提供しても あんまり作業量減らない、これで本当にゲーム製作のスピードアップになるんだろうか? 本当の問題は別のところにあってGUI表示とイベントハンドル部分は 問題の根幹ではないんじゃないですか?ということです。 っていうか、本当はDataBindingのことか!って突っ込んで欲しかったんですが……。 ちなみに、データバインディング使うとお店のシーンのかなりの分の処理をする必要がなくなるはずです。 今までもGUIの要望はあるのですが、そのどれもが既存のGUIライブラリが欲しいという 要望ばかりで、実際の問題が見えてこないんです。 例えば、Windowsの場合はゲームと違って同期処理が平気で行われているので 大きなリストを表示する場合に、全部が表示されるまで数秒掛かるなんてのは普通ですが、 ゲームの場合ではそれが許されません。表示するまでの間にも、キャラクターは動き回るし、 いろんなアニメーションが再生されてたりするわけです。 そういった非同期処理を実現するには既存のGUIライブラリではどうしても冗長なコードに なってしまうんです。だったら、最初っからそういったものも視野に入れたGUIライブラリを 作るべきなのでは?と思うわけです。っていうか、第一WinForm自体がマルチスレッドに 対応していませんしwww そんな訳で、もっと皆さんの意見を聞いてみたいです。
611 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 18:56:24 ID:l4fGQKhK] >610 対応していませんしwwwじゃねーよ さっさと対応しろ いつまでも同じ事言ってんじゃねーぞ
612 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 19:02:55 ID:3Ur8Sj5B] GUIはDirectXのサンプルがCustomUIを使っているみたいに簡単な表示目的で欲しい。 Gemなんかでもアルゴリズムを説明するのに使っているでしょ。 リストをクリックして表示がどう変わるのかを見るとかね。
613 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 19:06:21 ID:FtdPv/Qb] XAML欲しい >>609 もGUIも解決
614 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 19:08:04 ID:pA3Q2Mma] >GUI ・項目のリスト表示・管理(メニュー周り、スクロール付き) ・はい/いいえなどの選択肢ウィンドウ(メッセージボックス) ・汎用的なウィンドウの表示、Order、オープン/クローズアニメーション ・ウィンドウスキン ・その他ゲームに良くある機能など 個人的にはライブラリというよりは、 叩き台にできるサンプルが欲しいかなと。
615 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/27(水) 19:08:20 ID:sG5OgzFC] >>571 >XACT周りでは音楽を再生するとき >小節をABCBCというような形で再生させる方法が無いって問題があったと思う。 XACTの機能でできそうな気もしますが確認します。もし現状ではできなくとも、 Notifyイベントに対応して欲しいという要望があるので、それがあれば実現できると思われます。 >>574 「玄関開けたら5分でゲーム製作」は、他の面倒なことに時間を割くことなく、直ぐにゲーム製作 に入れるという意味での目標です。現状では実現しておらず、目標達成を目指しているところです。 >>586 愛すべきバカと呼ばれたいです >>593 >あとは箱用に作るのに必要な料金さえ緩和してくれりゃな。 ごめんなさい、今のところ、それがチームでの唯一の収入源なんですwww
616 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/27(水) 19:28:49 ID:sG5OgzFC] >>601 具体的に、どの固定シェーダー機能が欲しいのか詳しく。 マルチテクスチャの変態的なステージ設定が欲しいわけではないですよね? >>604 >箱は無視でいいからさw そんなご無体な…… >>608 >コンパイルエラー強化 確かにそうですね、要望としてだしておきます。 また、デスクトップ.NetにはNetCFに無い機能で必要性の高いと思われるものを見つけた場合は 再度連絡してくれるとありがたいです。 例としてはオリジナルの.NetCFには無かったStopwatchは既に使えるようになってたり、stackallocの 追加要望なども来ていますので。 >>611 根本的な問題点が判らない限りは同じことを問い続けます。 「あなたにとって何が一番重要な問題なんですか?」と、 >>614 GUIについては、まずはCustumUIのようなサンプルが欲しいといったところに落ち着くのでしょうか?
617 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/27(水) 19:34:25 ID:sG5OgzFC] はう、小一時間とか言ってたのに二時間半も居ついてしまった……… もう落ちます。 一通り答えた筈ですが「スルーすんな!」という方は再度突っ込んでください ではでは
618 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 19:40:20 ID:pA3Q2Mma] >>616 >GUI そうですね。 ただ、CustomUIはただのコントロールの集まりだった気がするんで、 ツール的なものを作るには良いと思いますが、 個人的に欲しいのはよりゲームで使われる形に近いものかなと。 >>609 がスルーされた気がする……。
619 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 19:57:11 ID:MufxNy8F] 574と同じ意見で、あと自分の意見 理想系としては、C++Builderみたいな感じで レイアウト決まってるところに適当に貼り付けていって とりあえず動くのは、それで作って 画像とか用意できたら、素材が出来次第 適当なプロパティに突っ込むとそれが反映される そういう手軽さはあってもいいと思うんですがどうでしょうか? パフォーマンスを要求されるゲームの中で使えなくても タイトル画面、コンフィグ画面、タイトル画面、ロード画面、セーブ画面なんかでは 特にさっさと作り終わりたい部分だと思うし。 ゲーム作れるぐらい知識あればこれぐらいは簡単に作れるって話も上でされてるんですが オフィシャルでかゆいところに手が届くようなのがあれば (ビルドインだからパフォーマンスが良いとか、簡潔な書き方ができるとか、リソースエディタと連動するとか) プラットフォームとして面白いんじゃないんでしょうか あと、FSMみたいなシーン管理ってあるんでしたっけ? これもソースを簡潔に書くためには欲しいところです。 今あるもので作れるかもしれないけどあれば便利みたいな いわばC++におけるboostみたいな扱いでもいいと思うんですよね WTLのように用意はしてるけどサポートはしないみたいなのでも。 そもそも3次元座標同士の足し算とかが 展開して書いたほうがパフォーマンスあがるっていうのにマクロで書けないのもなんだかなーと コンシューマーの世界へようこそというなら、マクロを使わせて欲しい
620 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 19:57:35 ID:QnThtTGI] SilverlightのWPF UI FrameworkとDLR取り込めると面白そうだね ゲーム開発だと高級すぎる気もするが
621 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 20:24:42 ID:p8GIJl6K] >>マルチテクスチャの変態的なステージ設定が欲しいわけではないですよね? ゴメン言いたいこと伝わってねえな。単純にPC上なら固定機能のみで作動して欲しいってことと、 そこで360とのクロス性が問題になるならBasicEffectにステージ設定とか 追加して抽象化すりゃいいんじゃねぇのって提案。 >>ごめんなさい、今のところ、それがチームでの唯一の収入源なんですwww そこはホラ、開発者に360買わせるアピールになりますよとか言ってさぁw >>DLR そういやこれの基盤たるLCGがCFだとサポートしてないんだっけ。 せめてGCだけでも世代別になんねーのかなぁ。
622 名前:名前は開発中のものです。 [2008/02/28(木) 00:21:43 ID:/rY3e8Lf] 360の実機で動かすと、描画命令の発行が重すぎてせっかくの高性能GPUが完全に遊んでしまうのが勿体なさすぎです。 15000ポリゴンのモデルを80くらい個出しても60fpsで動くのに、テクスチャ付きのただの6ポリゴンの箱を100個くらい出すだけで処理落ちしてしまうのは辛い・・・。 できることならコンソール機のプログラミングでの常套手段である、GPUへの描画命令発行を別スレッドで動かす仕組みをライブラリ内で隠蔽できないでしょうか。 発行した描画命令を内部でキャッシングしておいて次のフレームの頭で別スレッド動作させる、みたいな感じで。 描画命令発行を別スレッドに追い出すことでゲームロジックに使えるCPU時間が圧倒的に増えるでしょうから、相対的にCPU性能の低い360で動かすにはぜひとも欲しい機能です。 もし描画のマルチスレッド化が難しいのであれば、せめて描画命令の発行自体がもう少し軽くなるとありがたいです。 ちゃんと計測したわけではないので単なる憶測で申し訳ないですが、たとえ同じシェーダー・同じパラメータであってもすべての命令がキャッシングされずに無条件に全て送り直されているかのような挙動に見え、 ちょっと発行バッチ数が増えただけで簡単に処理落ちが発生するのでゲームが作りにくくて困ります。 高性能なはずのXBOX360でのゲームプログラミングなのに、『21世紀にもなって「ショットを撃つと処理落ちするから発射数を半分にして威力を2倍にするか……」』みたいな調整が必要になってしまうのはいかがなものかと。 ライブラリレベルでの高速化はみんなが恩恵を受けられるので、もし何かチューニングの余地があるのであれば、ぜひ考慮していただきたいです。
623 名前:名前は開発中のものです。 mailto:sage [2008/02/28(木) 21:41:12 ID:Onhii9oo] というメールをMSに送った、 っていう話ですか?
624 名前:名前は開発中のものです。 mailto:sage [2008/02/28(木) 22:11:02 ID:Kfd7v7e6] 少人数のゲーム制作って考えると作り込んだモデルより 幾何学的でアブストラクトな表現は都合がいいと思うけど >>622 のレス読むとそういう表現は難しそうだね
625 名前:名前は開発中のものです。 mailto:sage [2008/02/28(木) 23:47:44 ID:7jyXioPU] 次世代機のCPUはPowerPCからX86に戻るかもしれない。x86なら競争が激しいから性能も価格もこなれている。もうMacが見捨てられて次はゲーム機かな
626 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 01:21:41 ID:79yrB4s/] XBOX360版XNAでIMM32のような機能はありますか?
627 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 11:12:33 ID:cyHkH63n] 619みたいな要望なんだけれど、俺はWPF用のデザインテンプレートを どうにか流用できないかな、と考えてた。 ぜんぜん詳しくないのでフレームワークにそういう機能がいいのか、 コンテンツエクスポーターで変換した方がいいのかは判らないが。 まあつまり俺がいいたい一番の問題はExpressionシリーズ、もう少し安くならない? てことなんだがw
628 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 13:30:49 ID:5SO5wm1v] win、360で通信対戦昨日をつけたいのですが、 参考になるサイトありましたらおしえてください。
629 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 13:49:35 ID:KKyqcPHE] 付属のドキュメント(英語)と、 ttp://creators.xna.com/ ここにあるサンプル。
630 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 13:50:23 ID:KKyqcPHE] って通信一般のことかな?
631 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 14:00:06 ID:5SO5wm1v] >>630 TCP/IP通信のようなことをやりたいのです とりあえず教えていただいたサイトをみてみます ありがとう
632 名前:628 mailto:sage [2008/02/29(金) 16:19:52 ID:5SO5wm1v] PeerToPeerSample、ClientServerSample共にダウンロードして 確認してみました。共にLiveに接続するところから始まり ゴールド会員のメールアドレスでサインインしたのですが、 base.Update(gameTime);でエラーを吐きます。内容が、 The current profile does not have an XNA Creators Club membership, which is required to sign in to the Live service. To continue, purchase a membership from Xbox Live Marketplace, or switch to a local gamer profile. とのことで、XNA Creators Clubのメンバーシップを購入していないと ひょっとしてつながらないのですが?ゴールドなら とりあえずセッションは開けるかと思ったのですが・・・。
633 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 16:29:38 ID:KKyqcPHE] 無理 通信はCC非会員は、WindowsでLAN内だけ。 Live使う場合は360、WindowsともにCC会員必須。
634 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 16:30:42 ID:KKyqcPHE] LAN内ってSystemLinkね、念のため
635 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 16:38:02 ID:5SO5wm1v] ありがとう。よくわかりました。
636 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 17:56:37 ID:rwW9Blwo] 単純にオンライン対戦可能なオセロとかトランプとか作りたいんだが もしかして1人動作確認は無理? 360とPCで対戦できる様にしとけば、360vs360でも動く事が期待でき るとか、そんな都合がいい話は多分ないよね?
637 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 18:08:29 ID:sIYszjWf] いや、それでいいはず。 でも実際にやってみないとなんとも言えないけど、 サンプルで特別なことやってるようにも見えないし。 PC3台に360を1台でSystemLinkまでは確認できてるが、 まともにゲームの体裁整えてないと他人とつないで試すわけにもいかんしなあ。
638 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 19:11:46 ID:eQkbLnZK] C#をDirectX抜きで使っていたのでよく知らないんですが、 Managed DirectXとXNAには互換性は無いんですよね?
639 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 01:24:32 ID:lpucU8xl] >>629 に紹介されてるサイトのサンプルには SystemLinkのサンプルはないです?
640 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 01:31:48 ID:HuE7K8R1] >>638 互換性がソースコードレベルでの話しならイエス。 ぶっちゃけどちらもDirectXのラッパーだから大して違いはないけど。
641 名前:ハコ太郎 mailto:sage [2008/03/01(土) 08:42:57 ID:AGjJHtOG] データバインディングはデバッグ窓としては有効だと思うけど ゲーム内で使うメニューなどはボタンを押した時に処理を入れたい。
642 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 11:11:26 ID:8ym58WA/] zuneがサポートされるみたいだけど、日本で発売されるの? zune向けにプログラムを書く場合、輸入しないとダメかな?
643 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 13:53:11 ID:7cruTluh] BoundingBoxとBoundingSphereで当たり判定を取ろうと思っていたのですが、 BoundingSphereの方は毎フレーム移動するので、中心の座標を移動させたいです。 ですが、そのようなインタフェースは無いようなので、毎フレーム新しいBoundingSphereを作って 入れ替えてやらなければいけないのかなと思っています。 その時のパフォーマンスを気にしているのですが、オブジェクトではなく構造体なら 毎フレームnewしてもGCの対象にはならず、パフォーマンスへの影響は無い(のか極めて小さい) という理解で合ってますでしょうか。 気をつけなければいけないのは、オブジェクトの生存期間と数だけ?
644 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 13:58:01 ID:mfMgIQq4] 構造体だから気にしなくていい その前にBoundingSphereのフィールドは普通に書き換えできるぞ だからってフレームを超えてキャッシュしとく意味はないけど
645 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 14:05:26 ID:7cruTluh] >>644 了解です。 最初に大量に作って使い回し云々は全部オブジェクトの話で、構造体には関係ないんですね。
646 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 14:30:12 ID:iss0MbNP] >>645 C#では構造体をスタック上に作る場合もnewキーワードを使ってて、 そこは混乱しやすいポイントではあるね。
647 名前:ハコ太郎 mailto:sage [2008/03/01(土) 14:39:31 ID:AGjJHtOG] 構造体のnewはメンバを全てNULLか0で初期化するだけだったはず
648 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 17:11:56 ID:E+4DCZor] xna-studio.jp/contest/0301.html 花やしき行ってくるけど、誰もいなかったりしないかドキドキする。
649 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 18:13:27 ID:BJdyKXU8] 貸し切りでただで乗り放題なんで行って損はないそ゛。
650 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 20:48:19 ID:KNB/+8nD] Manegedの時よりXNAの方が処理スピード早くね?
651 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 21:01:28 ID:BJdyKXU8] 今行ってきた。 福引きで俺の後ろの人が本体あたった.....
652 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 21:12:03 ID:7cruTluh] XNA Remote Performance MonitorてのはWindowsでローカルで開発している時は 使えないんですか? パフォーマンスチューニングするのに良い開発用の↑みたいなツールって無いですかね?
653 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 21:13:55 ID:ViryCY/U] >>651 七回やって全部缶バッジは萎えたwww
654 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 21:39:38 ID:HuE7K8R1] >>650 基本的にMDXよりもヒープの使い方に敏感だし、 算術ライブラリは参照渡しとコードのベタ書き(要は手動のインライン化)が徹底されてるから 使う側から見れば注意することが少なくなってるってのはあるかもね。 >>652 CLRProfiler 意図のわからんイベントだが、花やしきいいなァ・・・。
655 名前:626 mailto:sage [2008/03/01(土) 23:53:26 ID:w3ZGIR9q] 完全にスルーされてるけど、日本語チャットの実装したい人って他に居ないの?
656 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 23:59:06 ID:6CzHQ4+o] いやだって360自体にあるメッセンジャー連携と音声チャット使えばいいし・・・
657 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 00:03:22 ID:zzw5UN3t] 日本語で新しい本が出てるね。 ttp://www.amazon.co.jp/gp/product/4862460593
658 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 00:03:42 ID:keBEe7WT] >>656 Windowsの場合は? 自分はもうSystem.Windows.Formsで入出力窓作っちゃおうかなあとか思ってるんですが
659 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 00:07:53 ID:fERtkynk] NativeWindow使えばゲームループ中でもどうとでもなるんじゃね?
660 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 00:43:32 ID:l4v/PVfq] >>654 ユーザーの居場所検索、シャウト等メッセンジャーじゃカバーできない機能も沢山あるわけで >>658 XBOXの人と話せないよね?
661 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 00:53:02 ID:WAxvXIYw] >>658 元が「360でのチャット」という話に対しての返答なのにWindowsを出されてきても
662 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 00:55:04 ID:keBEe7WT] >>661 ああいや、360の話は分かった、じゃあWindowsの場合はどうするのが良いんだろうって意味で書いただけで >>656 のレスにケチつけてる訳じゃないよ
663 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 01:00:41 ID:l4v/PVfq] >>661 360でチャットしたい人いるかなんて話はしてない 360でIMM32相当のAPIがあれば、WindowsPCとゲーム内チャットができるようにしたいという話
664 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 01:05:55 ID:jGKSdtCZ] >>657 \7,350は趣味で買うには高いよな。経費で買えるならいいけど。
665 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 01:06:32 ID:fERtkynk] >IMM32相当のAPI 確か「そんなものは無い」って話を聞いたことあるが・・・。 伊藤さんてるみー。
666 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 01:32:38 ID:o9Cw/3Oh] >>658 じゃあ作れ
667 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 02:02:02 ID:OS2eoImf] 擦れ違いかもしらんが花やしきの様子書いておくか。 入りは意外にもかなりの盛況で作品台にもほぼ絶え間なく人が並んでいた。 客層もゲオタ以外の家族連れ、カップルと普段の客層と代わり映え無いほど。 出品作品をプレイすると福引きが出来て、ハズレはバッチだが当たりは 360本体で、俺の目の前だけでも3台用意されてた。 (もし俺の前に出ていたらそれ以上あったろう) かなり太っ腹な対応で狙い目だったと思われ。 作品は作品台に並んでるのでもいかにも専門学校生が作ったレベルや 技術はあるが作り込みが全く未完成なのばかりでなんとか間に合わせた感が 強い。 MSKKが今後どれだけ掘り起こせるかに懸かってるだろう。 (期待してないが) あと何で会場が花やしきなのかというとバンナム傘下の施設だから。 確実な利益のある新商品のプロモでもないのに偉く金かけてたな。 ttp://www.hanayashiki.net/rental/fee.html
668 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 02:11:22 ID:l4v/PVfq] 乙
669 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 10:32:35 ID:8ZJ0iEdC] d.hatena.ne.jp/Nunocky/20080301
670 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 12:33:42 ID:keBEe7WT] Gameクラスの中で、publicなメンバとしてSpriteBatchを宣言し、 GameクラスのDrawメソッドの中の単一のBeginとEndの中で、すべての描画したいオブジェクトのRenderメソッドを呼び、 GameのSpriteBatchを使って描画しています このBeginはBegin( SpriteBlendMode.AlphaBlend, SpriteSortMode.BackToFront, SaveStateMode.SaveState ); という形で呼んでいるのですが、描画したいオブジェクトの中にSpriteBlendMode.Additiveで描画したいものがあります。 そのオブジェクトの中のRenderメソッドで、下記のようにしてみたのですが、うまくいきません。 this.game.spriteBatch.End(); this.game.spriteBatch.Begin( blendMode ); //blendModeで描画する this.game.spriteBatch.Draw( texture, position, bounds, Color.White, rad, origin, 1.0f, SpriteEffects.None, depth ); this.game.spriteBatch.End(); this.game.spriteBatch.Begin( SpriteBlendMode.AlphaBlend, SpriteSortMode.BackToFront, SaveStateMode.SaveState ); 上記コードを呼ばず、単にthis.game.spriteBatch.Drawを呼んで描画しているオブジェクトが 表示されなかったりします。 SpriteBlendMode.AlphaBlendとSpriteBlendMode.Additiveを使い分けるにはどういう風に実装するのが良いでしょうか。 GameクラスにSpriteBlendMode.Additive用のSpriteBatchと、SpriteBlendMode.AlphaBlend用のSpriteBatchを両方別々に持たせて 描画するオブジェクトの中で呼び分けようかなぁとか考えているんですが、あまりスマートじゃない気がします…。
671 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 17:19:42 ID:YDJ5z10X] XNA最大の問題点はパッドが実質非対応な点
672 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 18:13:07 ID:l4v/PVfq] >>671 何しにきたの?
673 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 18:36:54 ID:DkxH8Qas] www.famitsu.com/game/news/1213934_1124.html アマチュアクリエーターのアイデアと想像力が結実した“XNA Game Studio Japan 2008 Spring Contest”の授賞式が開催
674 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 19:02:50 ID:oAhqdNLL] 週末にちょろっと触ってみたんだが、 GameComponentをGameクラスのコンストラクタ時に登録しないと GameComponentのInitializeを呼んでくれないんだけど、そういうモンなの? 気分的にはGameクラスのInitializeの中でアプリケーションの初期化終了後に登録したい感じだが
675 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 19:42:00 ID:+DPdH8iN] 会場でもらった紙に書いてあったアドレス XNAデベロッパーセンター www.microsoft.com/japan/msdn/xna/ さあ、XNAをはじめよう! xna-studio.jp/ XNA Game Studioフォーラム forums.microsoft.com/msdn-ja/ XNAで作るマインスイーパー www.microsoft.com/japan/msdn/vstudio/express/learn/xna XNA GSE HELPの基礎 go.microsoft.com/?LinkId=8371116 できるプログラミングXNA Game Studio Express go.microsoft.com/?LinkId=8371116 XNAビデオチュートリアル(英語) go.microsoft.com/?LinkId=8371116 Visual Studio Express Edition学習用資料集 www.microsoft.com/japan/msdn/vstudio/express/learn/ 手打ち疲れたお⊂(・ω・`)⊃
676 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 19:44:48 ID:D87i6yt5] おつかれ
677 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 19:47:33 ID:YgJJfq7J] スクショで見る限りかなりレベル高いよな 実際どーだったの
678 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/03/02(日) 20:14:42 ID:75eB5Z/y] 寝る前にまた小一時間程お邪魔します。 前々回のまとめは>>598 前回のまとめ 新たに出した要望 1 コンパイラーエラーの強化 Windows上でもコンパイルしたときにXbox360でコンパイルできないものをエラーとする機能が欲しい 2 簡易GUIサンプル 聞いてきたもの XACTでABCBCのような形で再生させたい。 このABCBCというのが、イントロから入ってその後指定した部分からループというのであれば現状でもできます。 WAVファイル自体ににはループ情報を追加することができ、XACTはこのループに対応しています。 実際のやり方ですが、Sound ForgeやフリーのWAVファイル編集ツール(私が試したのはWavosaur)を使って ループしたい部分、この場合はイントロが終わった部分から曲の最後まで選択した後に、ループ範囲の設定をします。 SoundForgeではLoop Region、Wavosaur上ではメニューのTool/Loop/Create Loop Pointsを選択します。 このループ情報を追加したWAVファイルをXACT上でWaveバンク内に読み込むとLoopと書かれている欄にYと表示されます。 そして、ゲーム中に再生するとイントロから始まり、ループ指定した場所をループし続けます(ループカウントの変更も可) オーディオプログラマの人に聞いたら、このループ設定は多くのWAVファイル編集ツールでサポートされているとのことでした。 WAVOSAUR www.wavosaur.com/
679 名前:ハコ太郎 mailto:sage [2008/03/02(日) 20:20:17 ID:Lox6KhX3] へー出来たんだ 出張サポートセンターみたいな人だな
680 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/03/02(日) 20:24:15 ID:75eB5Z/y] >>609 VectorGraphics これはリアルタイムで処理するものでしょうか?それともツールで作ったものをポリゴンデータに落とし込む方法のどちらが良いのでしょうか? 個人的には後者の方が好きなんですが…… GUI要望 サンプルGUI 編集ツール(主に配置) WPFとかSliverLightとか(コンパイルする) WTLのような扱いでも可(サンプルGUIと一緒?) VectorGraphicsのサポート >>621 えっと、現在のSpriteBatchやBasicEffectの機能を使うのであればDX7上で動いて欲しいということでしょぅか? >>622 返事が長くなるのでちょっと待ってください その間に、こちらから質問 1 コンテントを用意する時の苦労や困っていることがあったら教えてください 2 皆さんが使っているコンテント(3Dモデルや、テクスチャとか)を作るのに使っているツールはどんなの使っています?
681 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 20:37:36 ID:JDxaaE78] とりあえずしょぼいC#でなくC++で書かせろと 話はそれからだ
682 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 20:40:58 ID:zkaFSkJm] そもそも、XNAの登場に合わせて、なぜ都合よくおまえらや昨日のコンテストに参加した連中が C#ができるのか教えてくれ
683 名前:ひげねこ ◆oxtErU/kVM mailto:webmaster@higeneko.com [2008/03/02(日) 20:50:53 ID:75eB5Z/y] >>622 もう少し詳しい情報をいただけないでしょうか?100と言うのは実際のゲーム中にだしたとき(他の処理も入っているとき)なのか 単体でパフォーマンステストしたときに遅くなったということでしょうか? もし、よろしければメル欄のアドレス宛てにプロジェクトファイルを送っていただけないでしょうか?こちらの検証させてもらいます。 Xbox 360上でのパフォーマンスについてですが以下のMesh Instancing Sampleが参考になると思います。 creators.xna.com/Headlines/developmentaspx/archive/2007/01/01/Mesh-Instancing.aspx このサンプルはメッシュインスタンスのサンプルコード以外にも、24頂点、12の三角形トライアングルのモデルデータを描画するときに 単に描画を複数回読んだだけのもの(DrawNoInstancingOrStateBatching)と、レンダーステートをバッチしたときのコード(DrawNoInstancing)が含まれます。 このサンプルをXbox 360上でリリース設定、デバッガなしの状態(Ctrl+F5)で起動させると、それぞれのパフォーマンス差が判ります。 DrawNoInstancingOrStateBatchingでは約430個、DrawNoInstancing時には1660個、そしてインスタンスありの場合は5100個のモデルが描画できます。 いきなりモデルインスタンスをするのは敷居が高いですが、ステートの設定回数を抑えたDrawNoInstancingはシェーダープログラムの変更なしで できる最適化です。DrawNoInstancingOrStateBatchingは一つ一つのモデル描画時にモデル、ビュー、そしてプロジェクション行列、 VertexDeclaration、VertexBuffer、そしてIndexBufferを設定し直し、更EffectBegin、PassBeginと贅沢にステート設定をしています。 このコードを表示するモデルが1つのエフェクトしか使っていないので、最初に一回だけ共通するステートを設定して、EffectBegin、PassBeginを行った後に それぞれのモデルに対してはモデル行列の設定して、CommitChangesを呼んでからDrawIndexPrimitiveをひとつのモデルに対して一回呼び出すようにしたのが DrawNoInstancingOrStateBatchingです。これだけで、その最適化をしていないものに比べて4倍の数のモデル数を出すことができます。 つづく
684 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/03/02(日) 21:16:04 ID:75eB5Z/y] 現状、こちらで把握しているなかでボトルネックとなっているのはマネージサイドによるメモリメモリアクセスです。 例えば、簡単なパーティクル表示で、ひとつのパーティクルは単純なテクスチャなしの四角形(2つの三角形ポリゴン、頂点にはVector3とColor)を表示したとします。 パーティクルの動きはあらかじめ設定された速度で動き画面端に届いたら移動量を反転するというものです。このプログラムを5000個のパーティクルを表示したときに それぞれに掛かった時間を計測すると パーティクルの移動処理に1ms マネージメモリに頂点を書き出す部分が4ms そして、SetDataを呼んでDrawPrimitiveを呼び出すのに掛かった時間が0.14ms程度です。 ここから、頂点データのコピーに掛かる時間をメモリ帯域と、ユーザーメモリからカーネルメモリへの変更コストを差し引くと、マネージサイドとネイティブサイドの オーバーヘッドは非常に小さくなります。ですから、このオーバーヘッド部分を隠すためにマルチスレッド化しても効果が期待できないというのが現状です 次にレンダーステートのキャッシングについてですが、レンダーステートがGraphicsDeviceのみによって変更されるのなら問題は無いのですが、 レンダーステートはそれ以外にもネイティブサイド内のEffectによっても変更されます。Effectによるステート変更をマネージサイドのGraphicsDeviceと 辻褄を合わせるためにはせっかくネイティブサイドで動いているEffect実装部分をマネージサイドで実装しないといけません。そうなると、 今度はマネードサイドのEffect実装コードがボトルネックになり、ステートキャッシングによる最適化を相殺どころか逆に遅くなってしまいます。 更に続く
685 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/03/02(日) 21:26:39 ID:75eB5Z/y] そういうことで、DirectXと同じようにレンダーステートの変更数をアプリ側で極力少なくしてもらうしかないというのが現状です。 以下のブログがレンダーステートの管理方法について参考になると思います。 ttp://blogs.msdn.com/shawnhar/archive/2007/10/25/graphics-state-management.aspx ttp://blogs.msdn.com/shawnhar/archive/2007/10/26/bitfield-renderstates.aspx ライブラリレベルでできるレンダーステートの最適化はDX10の様に複数のステートをまとめておき、API呼び出し一回で ガーっと変更することでしょうか?現状でもEffectを使って複数のステートを管理するという方法も役に立つと思います。 パフォーマンスに関しては、こちらの方で単体テストはしていますが、実際にゲームを走らしているときの問題とかを測定するのは 難しいので、実際にゲームを作っていてパフォーマンス問題があった場合は気軽に連絡していただけるとありがたいです。
686 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/03/02(日) 21:47:02 ID:V3NWxRwr] >IMMについて ゲーム内に統合して使える形でのIMMはサポートしていません。 ただ、日本語版Xbox 360上ではチャットパッドがでた時にダッシュボード所で日本語入力ができるようになっているので Guide.ShowComposeMessageを使えば単発のメッセージなら相手に送ることができます。 Windows上にあるダッシュボードではまだIMMに対応していなかったと思われます。少なくとも英語版Windows上では動作しませんでした。 ですから、現状ではボイスチャットを使って欲しいです。そして、IMMのサポートについては既に要望が来ています。 >クロスプラットフォームネットワークについて XNAフレームワークはクロスプラットフォーム上でのネットワーク接続に対応しています。 ですから、Windows、Xbox360間で動作しているのなら、Windows同士、Xbox360間でも問題なく動きます、動かなかったらバグなので報告よろしくです >>641 >データバインディングはデバッグ窓としては有効だと思うけど デバッグ時に有効ってどういうことですか? ちなみに私の言っているデータバインディングとはWPFのようにある程度の実行処理自体もデータで持っておいて プログラムしなくても、例にあるアイテムショップ内でアイテム選択を変更する度に勝手に他の表示部分も変えてくれるような 機能のことです。確かExpressionの初期のチュートリアルがそんなのでした。
687 名前:ハコ太郎 mailto:sage [2008/03/02(日) 21:51:55 ID:Lox6KhX3] 私が考えていたものは 別途フォームを開くかゲーム内でメニューを開くかして データをリアルタイムに変更できるようなものです。 GEMSにそんなのが載ってたので。
688 名前:ハコ太郎 mailto:sage [2008/03/02(日) 21:55:25 ID:Lox6KhX3] プロパティグリッドのようなもので キャラクタのステータスを変更したりするのには便利かなと思いました。
689 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/03/02(日) 22:20:08 ID:V3NWxRwr] >>670 これは推測ですが、やろうとしているのは半透明のスプライトをソートして表示したいわけですよね? もしそうだとしたら、AdditiveBlendにして描画する前後ではソートが正しく行われなくなります。 例えばカメラの手前から奥に向かってA,B,X,D,Eという順の位置関係でXをAdditiveBlenにしたいとします。 そのときに描画を呼び出す順番がA,B,X,D,Eの場合に問題になります。 なぜなら、ここでの正しい描画順序はE,D,X,B,Aとなるからです。 SpriteBatchのソートはBegin/Endをまたいだソートはしません。ですから、Xを描画する時にBegin/Endを入れると、描画順は 0 Begin(Blend) 1 Draw A 2 Draw B 3 End --> B, Aとソートされ描画される 4 Begi(Additive) 5 Draw X 6 End -> Xが描画される 7 Begin(Blend) 8 Draw C 9 Draw D 10 End --> D, Cとソートされ描画される この問題の解決方法はゲームによって色々と変わってきます。例えば横スクロールする2Dのゲームで奥行きを表現したいのであれば 手前、中央、奥といった奥行きを複数のレイヤーのようにして分けておきます。そして描画の時には、奥のレイヤーから順に描画します。 この時にレイヤー内ではBlend、Addtiveの順に描画すると描画問題は目立たなくなります。
690 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 22:43:18 ID:wif61gOz] BGMのストリーミング再生を行おうとしたところPlayCue()の部分でエラーが出てしまいました。 XACT上での設定はここを見て行いました ttp://blogs.msdn.com/ito/archive/2007/05/29/xact-tips.aspx エラー内容↓ InvalidOperationExceptionはハンドルされませんでした。 An error occurred trying to play the cue named "TestBGM". Is the cue name correct? ストリーミング再生を行う場合はWaveBankのコンストラクタが違うということはわかったのですが 設定が上手くいっていないのでしょうか?それともそれ以外に設定が必要なのでしょうか?