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
480 名前:名前は開発中のものです。 mailto:sage [2008/02/23(土) 21:47:40 ID:JVKPawcf] あれ、飯食ってる間に帰っちった・・・まーいっか。 >>475 えーっと、ツール系の作成で使おうとしてとりあえず困ったのが、 o SwapChainが無い これがないと複数のウィンドウにDirect3Dレンダリングが行えないです。 イヤできないことはないけど、でかいバックバッファ確保してPresentに ウィンドウ指定ってのはworkaroundとしてはかなり微妙です。 o ネイティブポインタ公開して たとえばDirectShowでXNAテクスチャにムービーをレンダリングしたくても 現状では手が出せません。 コンシューマ機とのクロス開発ができるゲーム開発用インフラとしてのXNAについては 全然文句はないんですけど(箱の実行環境の乏しさはまた別のところの責任でしょ)、 ネイティブとのすり合わせを考えなきゃならん領域ではやっぱMDX程度のラッパーの ような窓口をMSから用意して欲しいんですよ。そのためにはデバイスロスト処理なんて上等っスよ。 だったらネイティブでおkとか言われそうだなぁ・・・俺のバランス感覚はあんまし理解されんのかもしらん。
481 名前:名前は開発中のものです。 mailto:sage [2008/02/23(土) 21:59:00 ID:JVKPawcf] あーひとつ文句を思い出した。 デフォルトで用意されているモデルアニメーション用のフレームワーク、 あれコンテントのプロセス段階でフレームキーにMatrixしか指定できないのって どうにかならんですか? 他人のソース読んでたら実行時にアニメーションブレンドの 段階でまず行列の分解から始めざるを得ないのを見て涙を誘った。 こんなことでわざわざカスタムプロセサ書きたくねっス。
482 名前:名前は開発中のものです。 [2008/02/23(土) 22:11:19 ID:JcOPu2mE] >>478 乙ですた。 適当にまとめてみたょ。 1.Xbox360実機上でパフォーマンスが出ないのですが 2.テクスチャのContent ProcessorパラメータColorを勝手に変えるのやめてくれませんか?いちいち面倒なのですが(デフォルトでNoChangeか、初期値設定可能に) 3.GUI部品が欲しいのですが 4.コンテントパイプラインを通さずともコンテントが読めるフォームアプリを作りたいのですが 5.SpriteBatch.DrawStringで文字範囲を指定して描画したいのですが 6.GCが動くのが怖くてAPIが呼べないのですが 7.日本語のドキュメントが日本語で書かれていないのですが 8.FPSなどの計測系のAPIが欲しいのですが 9.VS2008でXNAを使いたいのですが 10.Xbox360コントローラー以外のジョイスティックをPCで使いたいのですが 11.特定のフォーマットの動画や音楽を再生したいのですが 12.DNAを使って子供を作りたいのですが 13.Shawnの翻訳ばっかなのは勘弁してほしいのですが 14.OSつんでるんだから最低限のシステムフォントくらい用意して欲しいのですが 15.360で動かすのにカネが要るのですが 16.非会員に配布できないのですが
483 名前:名前は開発中のものです。 mailto:sage [2008/02/23(土) 23:20:54 ID:w6vvWs4v] >>475 > そこで、私が知りたいのは具体的にWIn専用のAPIとしてどのような機能が欲しいのかということです。 FormやButtonやTextBoxみたいな使い勝手のGUI部品 ゲームの画面は多種多様だから汎用的なのは作れない〜というのがありますけど、 個人レベルでそれっぽい画面が作れればいい人向けの部品が全くないのはきついです 背景色と透明度と背景テクスチャくらい指定できれば大喜びで使います Formと同じように、開発時のパーツ配置をマウスでグリグリやれれば言うことありません もっと高度な美しい画面を作りたい人は勝手に自前で実装すればいい話で XNAはとにかく動くものを楽しく作れるようにって目的のフレームワークだと思います ゲーム制作者が作りたいのはコンテンツであって、メニュー画面の枠だとかボタン押したら 別のメニューが表示されるような仕組みが作りたいわけじゃないと思います ご一考頂ければ幸いです。 よろしくお願いいたします。
484 名前:ハコ太郎 mailto:sage [2008/02/23(土) 23:26:20 ID:X8rHv9Nz] さすがにそこら辺をフレームワークに求めるのはどうかと思う
485 名前:名前は開発中のものです。 mailto:sage [2008/02/23(土) 23:27:30 ID:tZJ3Ho9e] >>483 もうさ、メニュー画面なんて無くしてすべて音声入力とかどうよ
486 名前:名前は開発中のものです。 mailto:sage [2008/02/23(土) 23:48:26 ID:nQCDvOGx] DirectXのサンプルにあるCustomUIみたいなのは欲しいよね。 もっと使い方を簡略化したバージョンで。 あとコンテンツパイプラインでNodeTreeとか作る方法のサンプルとかが(可能なら)欲しい。 Heightmapのサンプルとかあるけどあれだと現実的じゃないよね。
487 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 00:22:11 ID:txphrCja] おはよです、もどってきました。少しずつ回答していきます。
488 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 00:23:11 ID:txphrCja] >>479 コミュニティというのはそこに集まる人達によって形成され、その姿はあたかも自我をもった一己の存在であり(ry コミュニティがどういったものになるかを今から気にしてもしょうがないでしょう。 評価の仕方も状況に合わせて変化するでしょうし。派閥問題もひどすぎる場合はそれを 抑制するような仕組みも作るようになると思いますよ。
489 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 00:24:39 ID:txphrCja] >>480 SwapChainについて 実を言うとSwapChain自体がworkaroundだったりします(汗)。 完全には覚えてはいないのですがDX6あたりの時代にドライバによってPresent(hWnd)を使って ちゃんとレンダリングできないという問題を解決するために作られたものだったと記憶しています。 しかし、DX9(8だったかも?)になってからPresent(hWnd)がちゃんと動くことが義務付けられたので SwapChainの必要性はなくなりました。 ですから、レンダリングしたいウィンドウサイズの最大値に合わせてバックバッファをひとつだけ確保して 使いまわすというのが実は最適解だったりします。
490 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 00:26:39 ID:txphrCja] >>480 ネイティブポインタ公開について ネイティブポインタの公開は無理ですが、アクセスはできます。 Texture2D.pComPtrはinternal指定ですがinternalは単に公開していない=正式サポートしていないという意味であって リフレクション使えば問題なくアクセスできます。 タイプのフルネームを指定してTypeを取得すればGetValueとかでアクセスできます。 タイプのフルネームのアセンブリ指定部分はCultureやPublicKeyTokenを含むフルクオリファイネームでReflectorとか使って取得できます。 もちろん、これはサポートされていない使い方なので自己責任ということになりますけど……。
491 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 00:28:32 ID:txphrCja] >>480 MDXラッパーの可能性について MDXと同等のラッパーというのは厳しいですね。Xbox 360のDirectXはDX9.5斜め上って感じなAPIセットだったりするので 厳密にはDX9とは違います。 また、Zuneに至ってはDirectX自体がなかったりするのでMDXではマルチプラットフォームを達成するのは現実的ではないですね。 ですから、現状でネイティブアクセスがしたい場合は個々に対応するというのが好ましいです。
492 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 01:08:50 ID:+59mpAEs] GUIのサンプルはほしいなぁ。 あとスプライトフォントはテクスチャ1枚に詰め込む感じだと思うんですが、 日本語みたいに文字数が多いとサイズが巨大になりませんか? ちなみにCachedSpriteFontってのを自作して使ってますが、 公式的にはどうなんですかね。
493 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 01:18:51 ID:sZgW8xAQ] 必要なPCのスペックはどこに書いてありますか? HDDの容量等
494 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 01:19:48 ID:txphrCja] >>481 質問: アニメーションのキーフレームにMatrixe以外を指定したい 回答: アニメーション用フレームワークとはコンテントパイプラインのAnimationContentクラスのことでしょうか? そうであればコンテントパイプライン内で宣言されているデータはDOMとして使うことを目的にしているので Matrix以外のフォーマットサポートは厳しいです。 ただし、こちらの思惑としてはカスタムプロセッサ内で自分の好きなフォーマットに変換してねというスタンスです。 オイラー角での回転+移動にしたり、実際のゲームでよく使われているQuaternion+Positionにしたい場合は Matrix.Decomposeが便利です。 ここら辺はゲームエンジンに近い機能なので、面倒でもカスタムプロセッサを書くかサンプルコードを使って欲しいです。
495 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 02:34:41 ID:x3jty5vK] >>489 >実を言うとSwapChain自体がworkaroundだったりします(汗) マ ヂ で か ! ? いやまぁPresent(hWnd)でも機能はするし、 気持ちの問題かなーと思ってたけど、まさか逆だったとは。 >>490 ,491 あれ、Public以外でもインスタンスのフィールド値って取得できたんスね(汗 とはいえ、デバイスロストの仮想化なんて裏でやってると、マネージオブジェクトは 生きてるのにネイティブ層では勝手にオブジェクト差し替えられてた、なんて危険性が 増すので(ポインタ公開してる時点で程度の問題ですが)、だったら最初からMDXのような なるべくステートレスなラッパーがあっても良いんじゃないかしらってゆー・・・ あー、結局現実的な回答は「理想が欲しいならラッパー自分で書けば?」しか出てこねーw >>494 >ここら辺はゲームエンジンに近い機能なので、面倒でもカスタムプロセッサを書くか うぃ、了解。なかのひとからスタンスが聞けただけでもじゅうぶんです。 まぁスキンアニメとか始めるとどうしても欲が出てきてタイトな実装になっちゃうので どのみちカスタムを書く羽目になるのは目に見えてますw てか、丁寧な回答ありがとごぜーます。GDC08の発表でわりとモチベーション出てきたので 今後も暇な時にスレにきてつかぁーさい。
496 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 02:51:04 ID:txphrCja] 1.Xbox360実機上でパフォーマンスが出ないのですが ようこそ、コンシュマー機開発の世界へ。コンシューマー機ではコストを下げるためにプログラマが手動で最適化を強いる環境なので、 元来簡単にパフォーマンスを出すということは難しいです。 パフォーマンスの出ない要因は沢山ありますが、ロストプラネットの記事にある 「1コアで同クロックのPentium4の2/3くらい」ということを判って欲しいです。 ttp://www.t-pot.com/program/143_XnaTuningFest/index.html ネイティブでこの状態で、その上セキュアなマネージコードをPowerPC初のCLRが動かしているので、 どうしてもパフォーマンスが低くなってしまいます。 特に、最近のCore 2 Duoとか載ってるPCで動かした後にXbox 360で動かすと鬱になります。 パフォーマンスを上げる手法はもちろんありますが、ホビープログラムとして手を出すのは面倒なものが多いです。 幸いGPU部分はシェーダーがそのまま使え、高パフォーマンスで動作するので、 100ポリゴンのオブジェクトを500個出すよりも、1万ポリゴンのキャラクターを5体表示する方が高いパフォーマンスを得ることができます。 パフォーマンス問題で悩んでいる人は「こういうことがしたいが速度がでない」という具体例を言ってもらえれば個々に対応できます。
497 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 02:58:45 ID:txphrCja] >>482 2.テクスチャのContent ProcessorパラメータColorを勝手に変えるのやめてくれませんか?いちいち面倒なのですが(デフォルトでNoChangeか、初期値設定可能に) たしかに、そうですね。初期設定を変更できるような仕組みはあるといいかもしれません。 ただ、Visual Studio上で複数のファイルを選んだ状態でプロパティを変更することで選択した ファイル全ての設定を変更できるので面倒くささがちょっとだけ減るかもしれません。 3.GUI部品が欲しいのですが どのような部品が、どんな場面で必要になるのかを教えてください。 4.コンテントパイプラインを通さずともコンテントが読めるフォームアプリを作りたいのですが なぜコンテントパイプラインを通したくないのか、どんなコンテントをどんな目的で読みたいのかを詳しく。 ちなみにContent Loading Sampleがあり、ここではフォームアプリ上で コンテントパイプラインを使ってモデルを表示していますが、それではダメですか? ttp://creators.xna.com/Headlines/developmentaspx/archive/2007/01/01/WinForms-Series-2_3A00_--Content-Loading.aspx 5.SpriteBatch.DrawStringで文字範囲を指定して描画したいのですが こんな感じのAPIですか? DrawString( IList<char> text, int offset, int length); DrawString( IEnumerable<char> text); 6.GCが動くのが怖くてAPIが呼べないのですが XNA 2.0では報告のあったAPI についてはGCの問題となる部分は修正されました。 例: GamePad.GetState foreach ( ModelMesh mesh in model.meshes ) SpriteBatch.DrawString 他にもみつけたら報告よろしくです
498 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 03:01:02 ID:txphrCja] 7.日本語のドキュメントが日本語で書かれていないのですが MSKKに日本語でリクエストしてください 8.FPSなどの計測系のAPIが欲しいのですが FPSであればSystem.Diagnostics.Stopwatchを使って簡単に作れます(どこかにサンプルがあった)。他の計測手法については詳細求む 9.VS2008でXNAを使いたいのですが XNA 3.0まで待って、春頃にレビューリリース、ホリデーシーズンに正式リリース予定 10.Xbox360コントローラー以外のジョイスティックをPCで使いたいのですが 将来的にはXNPUTとDINPUTを統合したものが提供できるといいのですが、 DINPUTをサポートする場合、Action Mapとかのサポートはラッパーにすると煩雑になるし、抽象化は難しいという問題もありますね。 11.特定のフォーマットの動画や音楽を再生したいのですが Windows上限定なら、DirectShowなどが使えます。Xbox 360は現在検討中です。 ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2813458&SiteID=7 12.DNAを使って子供を作りたいのですが 相手を探す、無理やりはダメ
499 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 03:01:23 ID:txphrCja] 13.Shawnの翻訳ばっかなのは勘弁してほしいのですが サーセン、ネタがなくなると翻訳に走ります。取り上げて欲しいことがあったら連絡よろしく。 14.OSつんでるんだから最低限のシステムフォントくらい用意して欲しいのですが 積んでいるのはOSカーネル部分でGUI部分は無いです。ダッシュボードは独立したプログラム。 15.360で動かすのにカネが要るのですが 日本ではまだですがDream Sparkという学生向けの無償提供サービスがあり、それには クリエーターズクラブ12ヶ月無料会員になれるというのがついています。日本で展開されれば使えるかも? ttp://journal.mycom.co.jp/news/2008/02/20/059/index.html 16.非会員に配布できないのですが Windows版は配布は自由。Xbox 360版はコミュニティゲーム登場まで待って。
500 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 03:16:18 ID:x3jty5vK] 寝る前にもう一個だけ・・・。 >こういうことがしたいが速度がでない VertexBuffer等を動的に使用したいのにマネージ配列経由でしか書き込めないので 実質ユーザメモリの頂点に対するパフォーマンスの優位性がほとんどありません。 要はLockでIntPtrを返して欲しいんだけど(またそれか) 確かこの件は英語のmsdnフォーラムでなんか言ってた覚えがあるなぁ。
501 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 03:52:04 ID:txphrCja] GUIについては色々意見を聞きたいです。Windows GUIクローンが欲しいのか、実際のゲーム中に使うもの、開発中に必要なもの と言った感じにいろんな用途があるので、それらをひとつにまとめるのは難しいですね。 >>486 NodeTreeのサンプルはどんなのが良いですかね? >>492 XNAのサポートしているSM1.1以上のビデオカードでは最低でも2048x2048の大きさのテクスチャが使えます。 ですから、仮に32x32のサイズの文字を使った場合は4096文字使えることになるので特に問題はないと思われます。 この場合容量が16MBになりますけど……。っていうか、SpriteFontは出力するフォーマットを指定できるようにしないといけませんね。 自前でフォント描画作るのはまったく問題無いです。 >>493 公式は英文ですがここに書いてあります creators.xna.com/gamestudio2/gamestudio2readme.htm 開発環境は Windows Vista/XP(SP2)が動く環境で、SM1.1以上のビデオカード XNA自体の開発環境は大体110MBのディスク容量を必要とするので、150MB余っていれば大丈夫かと思われます
502 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 04:00:12 ID:i3OWrPrj] モデルのアニメーションにSkinnedModelサンプルを使って動かしているけど、 XNAでアニメーションをサポートして欲しいとずっと思ってたりする。 SkinnedModelサンプルのAnimationPlayer相当の機能をModelクラスに持って欲しい。 あと、スキンモデルではないモデルのアニメーションにも対応して欲しい。
503 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 05:16:38 ID:XxNI12Tm] >>500 Xbox 360ではWindowsと同じようにユーザーモードと、スーパーバイザーモードがあります。 ユーザーモードではユーザーメモリ空間、スパーバイザーモードではカーネルメモリ空間があります。 GPUリソースはカーネルメモリ内にあって、ユーザーモードからはカーネルメモリには直接アクセスすることはできません。 全てのマネージコードはこのユーザーモードで動作するので、頂点データをセットするときは ユーザーメモリからカーネルメモリへのデータコピーをしなければなりません。 仮にLockがあったとしても、帰ってくるのはユーザーメモリのポインタなので、 処理を終えたときに、やはりユーザーメモリからカーネルメモリへのコピーが必要になります。 Windows上ではVertexBufferの作られたときのフラグとロック時のフラグ状態によって暗黙的に動作方法を変化させています。 この判りづらく、間違えやすいという問題を明示的にしたものがSetData<T>、GetData<T>です。 ですから、Lockがあったとしても速度的な違いはありません。
504 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 05:17:03 ID:XxNI12Tm] では、どうすれば良いのか?ということになりますが、例としてはパーティクルシステムがあります。 それぞれのパーティクルは四角形なので全ての処理をCPU側ですると4頂点分の計算処理に加えて、 4頂点分のデータを書かないといけません。 ここで殆どの人が見落とすのがデータの書き込み自体に掛かるコストです。Xbox 360はPCに比べると速いメモリを積んでいますが、 キャッシュミスしたときのペナルティが数百サイクルと非常に大きいんです。 そして、このキャッシュミスは書き出すデータの量に比例して増大します。 ですから、通常はPosition(Vec3)、 UV(Vec2)、Color(Color) = 24バイト*4 = 56バイトとなるところを CenterPosition、Color、そしてパーティクルの四隅を計算するのに必要なパラメーター(スケール、回転など)とすると、24バイトと 半分以下にすることでメモリ書き込みのコストを減らすことができ、さらに4頂点分の計算は頂点シェーダー内で行われるので その分、CPUの計算量を減らすことができます。 Xbox 360のシェーダーにはvfetchと呼ばれる命令があり、これを使うとDX10のジオメトリシェーダーっぽいことができます。 クリエーターズクラブにあるパーティクルサンプルはvfetchを使っていませんが回転などの処理はシェーダー内で行っています。 ttp://creators.xna.com/Headlines/developmentaspx/archive/2007/01/01/Particle-3D-Sample.aspx vfetchについてはMeshインスタンスのサンプルで使われています。 creators.xna.com/Headlines/developmentaspx/archive/2007/01/01/Mesh-Instancing.aspx 現状、XNAをXbox360上で動かした場合、CPUに比べてGPUは暇を持て余しているのでこき使ってあげましょう。
505 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 05:41:36 ID:XxNI12Tm] >>502 >>494 でも言いいましたが、ゲームエンジンに近い部分なのでフレームワーク内で実装するのはきついです。 アニメーションシステムは奥が深く、作る人によって色々な作り方があるのでうまく一般化するのは難しいです。 現状でもスキンサンプルはサンプルとしては複雑なので、これ以上の物を作ろうとなると スターターキットという形が望ましいのかもしれませんね。
506 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 11:31:27 ID:7pYcKWcW] 急に神スレになっててびっくりした Silverlight互換程度でいいからXAML使いたいな GUIもそれで作れるし
507 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 11:53:09 ID:wlXwDeHQ] >>501 > GUIについては色々意見を聞きたいです。Windows GUIクローンが欲しいのか、実際のゲーム中に使うもの、開発中に必要なもの > と言った感じにいろんな用途があるので、それらをひとつにまとめるのは難しいですね。 おはようございます。 私個人の意見としては以下のようなものが欲しいです。 ・ボタン(クリックイベントあると良) ・ラベル ・テキストボックス(日本語入力可能) ・ピクチャ ボックス ・コンテキストメニュー ・上記を配置するためのメニューフレーム 以上すべて背景色・背景テクスチャ・透明度設定可能で、開発時はWindowsのGUIと同じ感覚で マウスでグリグリ動かして配置したいです。 コントロールが配置されているメニューフレームが非アクティブな時はコントロールも 消えてて欲しいです アクティブなフレーム上のコントロールへのフォーカスの当て方も、FormでTabで移動する順番 指定できるみたいに、GamePadStateの特定キーで移動させたいです Windowsでアプリケーション開発するときに.NET Frameworkが提供しているGUI部品を使うと思います ゲーム開発専用のフレームワークにゲーム用GUI部品を期待するのはそれほど突飛なニーズではないと思っています とにかく既存の部品を使いまくって開発時の工数(ステップ数)を減らしたいです
508 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 11:54:58 ID:0wox6gWO] どんなゲームに使うの?
509 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 12:02:13 ID:wlXwDeHQ] >>508 RPGとか、例えばSFCのFFとか、メニュー画面の工数が爆発してると思います ステータス画面やら装備画面やらアイテム画面やらセーブ画面やら店の画面やら… あれを部品使って、コード書くのは動的に値が変化するところと、メニュー同士の遷移と、 コントロールのイベントの中身だけとかになれば、かなり楽になると思いますが 特に一人で作ってる場合は
510 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 12:09:37 ID:d3JILfQT] >>507 >ゲーム開発専用のフレームワークにゲーム用GUI部品を期待するのはそれほど突飛なニーズではないと思っています ニーズとしては突飛ではないけどニーズの内容は千差万別だからフレームワーク化が難しい部分なような。 5年ぐらいかけて作ったWPFですら全てのニーズをちゃんと調査し切れてないと思えるところが多々あるので。 実際のコンシューマ機開発だとどうやってるんだろうね? >>509 >コントロールのイベントの中身だけとかになれば、かなり楽になると思いますが それは「原理上楽になるはず」であって実際に楽になっている事例とか聞いてみないとなんとも言えない気もするね。 一人でRPGが作れることに特化するならむしろツクール系を作った方が良い気がする。
511 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 12:25:59 ID:wlXwDeHQ] >>510 > >>507 > >ゲーム開発専用のフレームワークにゲーム用GUI部品を期待するのはそれほど突飛なニーズではないと思っています > > ニーズとしては突飛ではないけどニーズの内容は千差万別だからフレームワーク化が難しい部分なような。 > 5年ぐらいかけて作ったWPFですら全てのニーズをちゃんと調査し切れてないと思えるところが多々あるので。 それはそう思います ので、(どこまで汎化できるのかはわかりませんが)汎用的な部品だけ提供して貰って、 それじゃヤダって人はそれを継承するなりしないなりして、自分で実装する形にすればどうでしょうか。 個人なら細部にこだわるより、まず動く物を作りたいでしょうし… .NET FrameworkのGUI部品もそういうポリシーのように思われます というか、テクスチャ設定できて、イベント拾えるなら、たいていのニーズは満たせるような気もしなくてもないですが
512 名前:ハコ太郎 mailto:sage [2008/02/24(日) 12:38:59 ID:YFu/xKpZ] それはフレームワークレベルで提供するべきなのかなあ そういうコンポーネントを誰かが作ればいい話だと思うんだが
513 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 12:46:01 ID:7pYcKWcW] そういうのは結構いろんな人が作ってクラスライブラリとして公開してるよ 自分で作るにしてもそんなに手間がかかるものでもない
514 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 12:50:08 ID:wlXwDeHQ] >>513 例えばどんなんでしょう
515 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 12:51:03 ID:d3JILfQT] >>511 >というか、テクスチャ設定できて、イベント拾えるなら、たいていのニーズは満たせるような気もしなくてもないですが 実際それをやったはずのCustomUIがそんなに流行らなかったところを見ると、 そういう理想論はあんまり信じられない俺ガイル。ごめんね夢が無いこと言って。 CustomUI使うと人の流儀でロジックを書かされることになって ・ソースが汚くなる ・なんか使い勝手が悪い といった意見が多かった希ガス。 実際MDXにもCustomUI移植されてたと思うけど誰か使ってた人いたっけ? 結局フレームワークにこだわる人は、 目の前のソースコードが綺麗に書けないことが気になって 細部にこだわっちゃうんじゃなかろうか。 一人で作っている人がゲームを作りきれないパターンが多いのは 「細部にこだわるより、まず動く物を作りたい」に 徹することができないってのがあると思うんだな。
516 名前:ハコ太郎 mailto:sage [2008/02/24(日) 12:53:00 ID:YFu/xKpZ] デリゲート使えば綺麗に書けそうな気もするがどうなんでしょう
517 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 12:58:27 ID:d3JILfQT] >>516 MDXのCustomUIはデリゲート使ってましたよ。 ソースごと提供されているので見てみると良いかも。
518 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 16:18:16 ID:i3OWrPrj] ホリデーシーズンって年末って事? ContentPipelineで、読み込んでるアセンブリが変更になった場合、 関係無い物も含めて全部リビルドされるのは何とかしてほしい。 ContentPipelineを拡張するときには、ミニマムな別プロジェクトを用意して 作業しないと駄目なのが非常に手間がかかる。
519 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 16:50:26 ID:N5aKJpKa] >518 余所で、2008年中って有ったので、俺は年末だと思いこんでたけど。 確かにこの書き方じゃどちらとも取れるな。 そろそろここでワンクッション置かないで、フォーラムに書いた方がよくね? フィードバックなら非公開設定出来たはずだし。 フォーラムに書き込まざる得なくなったとき2chと重複ってキモチわるそう。 まだ日本語の公開投稿ないんで。 そう言ってる、このタイミングで来る可能性もあるけどさw。 スゲー神スレだな。 .datとテキストの両方で保存したよ。 俺、正直某社関係の人達はプライド無いのかとさえ思っていたけど、むしろ耐えてたんだな。
520 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 20:39:33 ID:+h4Baf/g] n n (ヨ ) ( E) / | _、_ _、_ | ヽ \ \/( ,_ノ` )/( <_,` )ヽ/ / \(uu / uu)/ | ∧ /
521 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 21:57:25 ID:MNadbUKV] GUIについて、 とりあえず、ゲーム中に使える簡易的なメニューのサンプルがクリエータズクラブにあります。 このサンプルではゲームスタート画面から、ゲーム画面やオプション画面への移行、ゲーム終了時の確認画面といった 面倒だけど必要不可欠なものが書いてあります。 creators.xna.com/Headlines/developmentaspx/archive/2007/01/01/Game-State-Management-Sample.aspx で、本題ですが、どんなGUIが欲しいのかでなく、仮にWinFormがそのまま使えるとして考えてみてはどうでしょうか? ゲーム製作の効率はどれぐらい上がるのでしょうか? 例えばSFCのDQやFFのお店のシーンを考えてみましょう。 お店に入った時には、アイテム表示をするリストボックスにアイテムをListItemとして追加します。 ゲームで使うデータ構造はTagとして保持しておきます。 時にはイベントをクリアした後と前では表示されるアイテムが変わることがあります。 パーティーメンバーを表示するためのリストボックスには現在のパーティーメンバを入れます 次に、アイテムが選択された時には、その詳細を表示するテキストボックスを更新し、 装備可能なパーティーメンバの装備後のステータスを表示し、FFの場合は装備可能なキャラクターをアニメーションさせます。 時にはアイテムを値段順、名前順にソートすることもあります。 そしてアイテムを購入した場合の残高を表示したりします。 更に、何分以内に町から脱出するというイベント中は、残り時間を表示します。
522 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 21:57:48 ID:MNadbUKV] これらのゲームに必要な作業自体はGUIシステムは手助けしてくれません。お店だけで、これだけの作業があるのですから、 ステータス画面、装備画面、戦闘画面と、それぞれのシーンによって同様の作業をしないといけません。 これらの大量の作業リストの末席に「簡単なメニュー表示を作る」という作業を加えても、 全体の作業量の変化は無視できる範囲なのではないでしょうか? 特にコントローラーやキーボードの十字キーでのみ操作するだけだったら、冒頭のサンプルのように メニュー画面を作るのは比較的簡単な作業だったりします。 ちなみに、このことは私自身「WindowsみたいなGUIシステム作れば勝ツル」と思って、 CとC++でGUIシステムを時間を掛けて作ったものの、デザイナーさんの「カコワルイ」の一言で 実際のゲーム中に使うことはなかったという経験からきています。
523 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 22:07:07 ID:MNadbUKV] >>518 ホリデーシーズンとは北米での感謝祭がある11月中旬から年末までを指します。年末っていうと、 そんなに待たないといけないの?と思われちゃいますが、 ホリデーシーズンというと11月中にでるかも?と期待させる効果もある魔法の言葉です。 感覚的には2000円と言わずに1980円と言ってるようなもんです。 確かに、現状ではコンテントビルドは単純に使われているアセンブリファイルの更新時間を元にして フルビルドするようになっています。 理想的にはビルドアセット毎に依存しているアセンブリファイルを持つことなのですが 依存しているアセンブリファイルの追跡は複雑な処理になるので時間的制約によって XNA 2.0ではこうなっています。 再確認しますが、要望として同じものがあったはずです、なければ要望として出しておきます。
524 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/24(日) 22:49:13 ID:MNadbUKV] >>519 私としてはフィードバックさえ貰えればどっちでも良いです。 っていうか、MSDNに限らず日本の会社公式フォーラムに行って質問すると、 「○○社××担当のhogeと申します、この度は弊社の(ry というヘッダーに始まって 「以上、宜しくお願い(ry というフッターで終わってて、肝心の本文がヘッダーとフッターより少ないじゃないかと突っ込みたくなる 衝動に駆られるわけです。 そんな定型句の無いアメリカでさえMSDNフォーラムはビジネス色が強いってことで開設されたのが クリエーターズクラブのフォーラムだったりします。 ちなみにアメリカの場合公式フォーラムの時でさえ「XNAのメンバはゲーム作ったことないだろ、こんなクソ使えん」 とかきつい口調で書かれる時もあるし、知識の無い人が勝手に邪推して騒ぎ立てるなんていう 2chと同じような光景が見れたりします。 それだったら、2chでフィードバック貰っとくればいいんジャネ?と思って来たわけです。 ちなみに私は「プライドって揚げ物の事?」ってなくらいに自尊心のかけらもないスチャラカ人間です(汗) ただ「MSは俺らの要望なんか聞きやしねえんだ」と言われると、GSE 1.0 Refreshの時に自分がした 作業の殆どがフィードバックを元にしたものだったので、そんなことないよ〜と言いたかった訳です。
525 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 23:03:42 ID:i3OWrPrj] 518です。回答ありがとうございます。 せっかくなので無理とわかっているけど不満点を挙げてみます。 ・Debug/Release切り替える度にContentのリビルドと転送しなおし(以下略 ・Xbox360のプロジェクトだと、LibraryプロジェクトがContentPipeline用のWinと、 ゲーム用の360両方必要なのは何とかならないの? 1つのプロジェクトでCPU設定のx86か、Xbox360かで切り替えられるようになってほしい。 ・Xbox360でマウスは使えないの?
526 名前:???? ◆oxtErU/kVM mailto:sage [2008/02/24(日) 23:40:31 ID:MNadbUKV] >>525 >Debug/Release切り替える度にContentのリビルドと転送しなおし(以下略 転送しなおしはXbox上のディスク領域を確保するプログラムにビルドコンフィグの概念が存在しないのが問題ですね。 確かに、不便なので報告しておきます。 Contentのリビルドも発生するんですか?こっちで試してみましたが再現できませんでした。もしリビルドが発生するなら バグなので再現方法を教えてください。 >Xbox360のプロジェクトだと、LibraryプロジェクトがContentPipeline用のWinと、 ゲーム用の360両方必要なのは何とかならないの? これはXNA 2.0でやろうとしたのですが、VSか.Netのどちらかの問題で 実現できなかったと記憶しています。詳しい人に月曜日(日本時間では火曜日)にでも聞いてみます。 >Xbox360でマウスはつかえない? はい、使えないです。Xbox 360自体がマウスをサポートしていないんです。 Xboxのライブラリチームに要望としてだしやすくなるので、マウスの具体的な使い道を教えてください。
527 名前:名前は開発中のものです。 mailto:sage [2008/02/24(日) 23:51:09 ID:PewWGQxK] >取り上げて欲しいことがあったら連絡よろしく。 creators.xna.com/ の基本的なモデル関係のサンプルの翻訳と解説をお願いしたいです 例えばXファイルって3Dソフトによって頂点カラーとかボーンとかモーションとかがあったりなかったりするんですよね? これはコンテントパイプラインがよきにはからってくれるということなのでしょうか? この辺がよくわからずモヤモヤしています FBXとかいうのもよくわかりません
528 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 00:08:58 ID:0I7QPy1e] プログラム上から作成したPCMを再生出来るような低レベルオーディオAPIが欲しいかも WindowsだけならDirectSound叩いていけるけど
529 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 01:26:53 ID:CAfA3WjY] >> 526 > Contentのリビルドも発生するんですか?こっちで試してみましたが再現できませんでした。もしリビルドが発生するなら > バグなので再現方法を教えてください。 確認しなおしましたが、ビルドされました。バグなんでしょうか。 再現するプロジェクトをhigeneko.comにメールで送りました。 > >Xbox360でマウスはつかえない? > はい、使えないです。Xbox 360自体がマウスをサポートしていないんです。 > Xboxのライブラリチームに要望としてだしやすくなるので、マウスの具体的な使い道を教えてください。 360発売当初からFPSやRTSをはじめとしてマウスが一切使えないので OSがサポートしていないんだろうなと思っていましたが・・・。 せっかくUSB付いてるのにキーボードのみサポートなのは勿体無いですね。 個人的にはFlashでよくあるような脱出ゲームで、部屋の中をひたすらクリックする タイプのゲームで、片手でダラダラと遊べるものが作れたら良いなと思っています。 まぁ、アナログスティック使えば良いじゃないかって一蹴される話ですけど。
530 名前:???? ◆oxtErU/kVM mailto:sage [2008/02/25(月) 02:38:34 ID:NIfrKGUT] >>527 全部は厳しいので、どのサンプルの説明か詳しく はい、コンテントパイプラインはいい感じにやってくれます。基本的に VertexElementUsageに書いてあるもの全てをVertexChannelとして指定でき、 Xファイルからだと頂点データはそのまんま持ってきてくれます。 アニメーションに関してはコンテントパイプラインまでAnimationChannelとして持ってきてはくれますが、 デフォルトではランタイム側まで持ってきてくれません。ランタイムへの持っいきかたはスキンアニメーションサンプルが 参考になります。 FBXはもともとMotionBuilderと呼ばれるツールで使われていたファイルフォーマットでMayaとか3Ds MAXを作ってる Autodeskという会社がSDKを含めて公開しているものです。 モデルデータはもちろん、アニメーション、カメラ、ライティング、マテリアル、テクスチャといった情報も含むことができます。 便利な機能としてはテクスチャファイルをFBXファイル内に埋め込むことができるので、 データの受け渡しに便利なことです。 FBX SDKは誰でもダウンロードできるので、Audodesk社以外でもXSI上でも使えるようになっていて 異なるDCCツール間でのデータ受け渡しに使われることが多いです。 ただ、現在のバージョンではXファイルではできるシェーダーの受け渡しができません。 Audodeskは「将来的にはサポートするッス」とは言ってるので、続報を待てといった感じです。
531 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/25(月) 02:49:32 ID:NIfrKGUT] >>528 低レベルオーディオAPIの要望は確かにありますね。 個人的にオーディオ関係のプログラムには疎いのですが、XACTじゃダメですか? 考えられるのはWindows上でADPCMしか使えないってのがネックなのと、 リアルタイムにテンポを変える必要があるときにシーケンサーを作るといった ぐらいしかないんですが、他にどんな理由があるのか気になります。
532 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 03:14:01 ID:YMc7s6r8] >>528 XAudio2のXNA版が欲しいってこと?
533 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/25(月) 03:21:56 ID:NIfrKGUT] >>529 ただいまダウンロード中です、検証したらまた連絡します。 マウスが使えないのはたぶん今までのコンシュマー機でマウスが周辺機器として何度かでてるけど いまいちパッとしなかったという歴史があるので出さないのでは?と思っています。 >個人的にはFlashでよくあるような脱出ゲームで、部屋の中をひたすらクリックする 確かにそういったゲームにはポインディングデバイスが欲しいですね。 実用的ではないですが、同じアプリをWindows上で作ってマウス対応にしておいて、 ネットワーク介してXbox 360にポインタ情報だけ送るとかいう手はありますね。 後はこんなマネージライブラリ(Win専用)があるから、それをマウスと同じようにして使えば……… blogs.msdn.com/coding4fun/archive/2007/03/14/1879033.aspx
534 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 03:54:48 ID:0I7QPy1e] >>531 理由は大方書かれているとおりです XACTでサポートされていない種類の音源を鳴らしたい場合や、 ビルド時では用意出来ない(ユーザーの介入が必要な)場合などですね 必要とされるシーンは限られると思いますけど、あればいいなという程度で書き込みました >>532 XAudio2がXNAに統合されればオーディオ周りも充実しますね
535 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 04:03:22 ID:CAfA3WjY] サポートしないのはエミュ作り放題になってしまうからではw
536 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 05:30:59 ID:uRS2aAsC] 一瞬スレ間違えたかと思ったぜ
537 名前:名前は開発中のものです。 [2008/02/25(月) 11:05:42 ID:e2yQJsbU] 勝ち組MSKK社員が底辺2ちゃんねらをからかいに来てんのか?死ねよ クソみたいな翻訳とお恵み程度のデモ配信・XBLA、自分らだけが楽しんでるインサイド、 マジでカスだな。360が普及しないのはてめーらが遊んでるだけじゃねーかカス死ね
538 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 11:12:58 ID:uYDBeCJS] 煽りは無視で。
539 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 12:17:58 ID:Gw8LbSl3] >MSKK社員 初っ端から間違ってて吹いた。
540 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/25(月) 12:39:51 ID:L8QociHQ] >>537 MSKK社員を過大評価するのも、2ちゃんねらを過小評価するのもあなたの自由ですが その仮定が本当だとすると、自分を勝ち組だと思ってるMSKK社員を増長させるだけですよ? ついでにいうと私はMSKK社員じゃないですけどね。 あと、コミュニティゲームはYouTubeやニコ動のゲーム版であるわけであって、 「デモ面白くない、MSオワタ」というのは、YouTubeやニコ動にあがってる動画が面白くないのを 運営のせいにするようなものですよ? ただし、「XNAフレームワークがクソで、俺様の素晴らしいゲームが作れん!!」というのは XNAチームの責任であり、落ち度でもあります。ですから、その時は遠慮なく言ってもらいたいです。 私のここでの発言はXNAチームはもとよりMSとはまったく無関係で 私、ひげねここと伊藤雄一が一個人として皆にゲームを楽しく作ってもらいたいという目的のために 来ているだけです。 その経緯についての詳細 ttp://higeneko.com/diary.php?Date=2005-12-15#Date2005-12-15 あなたも何かゲームを作ってみてはどうですか? 自分の作ったゲームをプレイしてくれる人達が楽しんでいるのをみるというのは一度でも経験すると やめられませんよ? 最後に、バタ臭くなってしまってサーセンでした
541 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 12:55:58 ID:uYDBeCJS] >>540 お疲れ様です。早速要望です。 プログラマブルシェーダー非対応のグラボ積んだPCでも、オプション次第で動くようにしてほしいです。 これ使ったこと有る方って居ます? Mono版XNA ttp://groups.google.com/group/monoxna あとで自分も試して見ます
542 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/25(月) 12:59:39 ID:L8QociHQ] >>529 ダウンロード完了しました。っていうか、面白いゲームですね。ついついデバッグ忘れて遊んでしまいましたwww さて、Release、Debugを切り替えるとコンテントリビルドが発生するという現象をこちらでも確認しました。 明確な原因は判りませんが、どうもContentサブプロジェクトのビルド時の依存チェックが怪しい気がします。 この現象は Contentサブプロジェクト ↓参照 カスタムプロセッサ用のアセンブリ ↓参照 ランタイム用のデータ構造が入っているWindows板のアセンブリ といった関係になった時に起こるようです。 回避策として見つけたのは、構成マネージャーを使ってカスタムプロセッサ用のプロジェクトと Windows版のランタイムデータ用のプロジェクトの構成をアクティブソリューション構成のDebug/Releaseの 両方で同じにするとコンテントのビルドは発生しません。 アップしてもらったプロジェクトを例にすると、構成マネージャを開き、アクティブソリューション構成をReleaseに変更 XXXvipaLibraryWindows、SceneDataWindows、SkinnedModelWindowsのプロジェクトの構成を Debugに変更することで、Release/Debugに変更してもコンテントビルドが発生しないことを確認しました。 報告乙です。早速、中の人に伝えておきます
543 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 13:37:35 ID:pe46J7UO] >537は本当に毎週か3日一度は湧くので無視してくれた方が良い奴でした。(多分このスレの伝統?) それにも関わらず、丁寧な対応に感動しました。 誰かに話を聞いて貰いたくて質問します。 今はまだ、草案で、ソースの一行たりとも書いてない所なので、殆ど人生相談なのですがw。 Q.hlslシェーダーでの動画デコードをしてみようかなと思います。xnaで需要は発生しえますか? ネタ元 ttp://www.itmedia.co.jp/news/0305/08/nj00_hecnvidia.html ttp://blogs.msdn.com/shawnhar/archive/2006/12/12/technicolor-julias.aspx −抜本的なシェーダー周りのスキルアップ狙いで、全くゲームでは無いのですw。 −実際に実用するには、PCでのエンコードが前提。 −現在もXBOX360はDVDの再生が可能なので、xnaがもう次のリリースでmpeg2対応となったら。 それを利用できる様に案を練り直した方が良いかなと。 (ゲームも勿論作りたいですから、後回しにします) 「明日やろう」と決めた事は決して行われないとも言うので、 早くに誰かに一蹴してもらいたいw。
544 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 14:15:27 ID:KqdbHwgC] うお、すげー伸びてんな。 土日はほとんど2ちゃんしないからなー
545 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 16:42:46 ID:0gXu/rAf] mdx1.1細々やりつつここのスレを覗き見してるが、正直ここ2日間の流れが羨まし過ぎる。
546 名前:名前は開発中のものです。 [2008/02/25(月) 16:43:36 ID:fGj1dnlX] 友達から募集中! 日記見ました! 更新頑張って下さい!(*‘ω‘*) homepagenir.com/linef1/
547 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/25(月) 18:00:25 ID:L8QociHQ] >>541 要望: プログラマブルシェーダー非対応のグラボのサポート。 回答: XNA GSE 1.0の時はターゲットプラットフォームがWindowsとXbox 360のみだったので 製作する側とサポートコストが増大するという観点からSM 1.1以上となっていました。 特にDX7時代のハードは今よりもドライバ問題が多くて、中には会社自体が消えてしまったものもあるので どうしようもない場合もあるんです。 ただ、GPU自体が無いZuneをサポートすると発表した段階で、この決定を再考する良い機会だと思います。 そこで、私からの質問なのですが、もしDX7レベルのハードウェアをサポートするとしたら、 どのような機能が欲しいのでしょうか? ZuneのようにSpriteBatchtしかない2Dに特化したもので十分なんでしょうか? それともデフォルトでついているランタイムのモデルデータを表示できるのが良いのでしょうか? 私が心配なのは、フレームワークレベルで抽象化を進めても下にあるハードウェアの制約によって 開発が困難になるということです。例えばDX7レベルのハードウェアには最大テクスチャサイズが 256x256なんていうビデオカードも含まれる訳です(こいつのせいで何度泣かされたことか……)。 ですから求められるニーズが 「作りたいのは簡単な2Dゲーム、だからハードウェアの敷居を下げてよ」なのか 「N64みたくテクスチャがぼやけても良いから、シンプルな3D'ゲームがつくりたい」なのかによって 対応方法が変わってくるとおもいます。
548 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/25(月) 18:20:15 ID:L8QociHQ] >>543 動画再生の需要については私も聞いてみたいところです。 昨今のゲームのカットシーンとかリアルタイムレンダリングが主要になってきているので、PS1、PS2時代に比べると そんなに高い需要はないのではないのか?と思っています。 ただ、技術的には面白いトピックだと思います。DCTデコードとかはGPGPUのトピックのひとつですし。 とりあえずモーションJPEGを作っておけば、将来的にXNAtが動画再生サポートしたとしても テクスチャの圧縮に使えそうなので完全に無駄にはならないとおもいます?
549 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/02/25(月) 18:38:01 ID:L8QociHQ] さて、こっちでは日曜の夜も更けてきたので、そろろ落ちます。 この二日間、いろんなフィードバッグが聞けて本当に嬉しかったです。 一応、全ての質問には答えたつもりですが、抜けてたらサーセン 平日の出没時間はグッと減ってしまうと思いますが XNA関連の質問はもとより、それなりにゲーム開発経験もあるので、そんな感じの質問でも 大歓迎です。特にゲームプログラムが初めての人でも気にせず質問ください。 私が最初に作ったゲームはXという文字(本人はXウィングのつもりだった)が画面上から ランダムで移動(っていうかワープだった)してきて、Aという文字が自機で ボタンを押すと!という文字(弾のつもり)が上に向かって移動するものでした。 しかも、弾が移動している間は敵機も自機も動かないという、ターンベースみたいなシューティングでしたwww 最初はそんなもんなんで、気軽な気持ちでゲームプログラミングを試してもらいたいです。 あと、こっちのフォーラムの方がは集計とかとりやすかったりするので、そっちもヨロシクです。 forums.microsoft.com/MSDN-JA/ShowForum.aspx?ForumID=1326&SiteID=7 ではでは
550 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 19:08:17 ID:ot8yIVD1] >>549 乙でした
551 名前:名前は開発中のものです。 mailto:sage [2008/02/25(月) 21:03:40 ID:v4NM3TUQ] 360向けでは開発しないつもりでいたけど ピアレビュー制の発表でかなり気持ちが揺らいだ これでもしZunePhone出たら確実に俺陥落。 出そうにないけど…
552 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 02:32:15 ID:eoifVlPM] >>548 確かに最近のゲームはリアルタイムで描画する傾向にありますが さすがに実写映像まではカバーできないですし、他にもAfterEffectsで 作るような映像をリアルタイムでやるのはさすがに大変なのでは。
553 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 07:54:20 ID:Do4X3wBs] あれ・・・ここXNAスレ? いつもみたく無意味に争えよ!お互いにいがみ合うのがXNAスレだろ! テスト前に「おれも勉強してねーよwww」と言ってた友達が成績上位に入ってて だまされた感じに似てるじゃねーかよwwwww 別に嬉しいわけじゃないんだからッ! ////
554 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 11:39:53 ID:+Md91q6C] 初めてXNAをやり始めたのですが、日本語の説明書はないのですか?
555 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 12:03:02 ID:PSiNRJla] ない。 英語の説明と、日本語でちょっと翻訳したサイトがあるから 見比べながら進めるといい
556 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 12:06:15 ID:gUk7N6wJ] 英語にさえ抵抗がなければ情報には恵まれた環境
557 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 12:18:31 ID:2urv8Pyv] >>553 馬鹿が何人か胡麻すってただけだろ。 よく読んでみろ。 ひとつも要望を受け入れていない。全部かわされてる。 アンチは一人しかいないと思い込んで何か言ってる可哀相な奴もいるし。 XNAが糞なのも33%故障ハードなのも、何も解決してないだろ。 馬鹿だな。
558 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 12:22:51 ID:5Y6Ore0r] >>554 翻訳本あるよ Microsoft XNA Unleashed ―グラフィックスとゲーム開発―
559 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 12:44:59 ID:yyM3wreG] XNAはこれからだ!(夕日に向かって走る開発者) 〜ひげねこ先生の次回作にご期待ください〜 以下、いつも通り.net信者による荒んだスレに戻ります。
560 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 12:59:13 ID:f17huFb2] >>558 1.0用と教えずに買わせるなんてワルだな ま、英語ドキュメントで十分だな
561 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 20:09:48 ID:IjVf2kaq] >552 ムービーを見たい、見せたいが主目的なら勿論そうなんだろうけどね。 ひげねこ氏の個人的意見が聞けた価値はあると思うよ。 PS1PS2の頃の様な、いちいちムービー入れるようなのゲームが嫌って認識が、 xnaチーム内や今後のコミュニティできれば、それが一番好ましい。 俺がそうだからw。 逆に動画機能を増やしたが為に、ニコ動とかの転載をタダ切り貼りしだけの ゲームと呼びづらい物が横行したら目も当てられない。 Shaderを使ってHDR以外の事をやらせるネタはまだ有る。
562 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 21:24:44 ID:f17huFb2] 頭が固いな
563 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 23:54:50 ID:5+e5jrw3] GUIに関してなんだけど、まあ実装しないってのは分かったからもう良いんですけど、 >>522 はゲーム作るのちょー工数かかるから、ちょっとぐらい工数減ったって一緒だろ! って読めなくもない気がするのが気になる そこってXNAのレーゾンデートルじゃないのかなぁ
564 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 00:01:08 ID:gUk7N6wJ] いや低レベルなところを面倒みるためのライブラリだし
565 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 01:08:46 ID:bBhvobFx] >>564 ひにけにの最初の方で言ってたじゃない ゲームは楽しく作ろうとか、ゲーム制作の工数肥大化によってコンテンツ以外の部分に 手を取られるとか そういう楽しくない面倒なだけのところはできるだけフレームワークでやるから コンテンツ部分を作ってねって思想に基づくフレームワークだと思っていた
566 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 01:41:16 ID:cqy3gtFB] UIはコンテンツとは言えないってことか。
567 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 02:20:29 ID:l4fGQKhK] 玄関開けたら5分でゲーム製作とか言ってたよな 所詮は絵空事か >564がひげねこだったら笑える 結局フィードバックなんて聞く気なんかなくて、自分達の 都合の良い簡単なことしかやらない >GSE 1.0 Refreshの時に自分がした作業の殆どがフィードバックを元にしたものだったので 単に改善の余地が多過ぎる糞だったってことだろ 別に期待も何もしていないが、できないことをさも簡単にできると言って 初心者を引きずり込むその性根が許せない 今すぐ誇大広告やめろ >自分の作ったゲームをプレイしてくれる人達が楽しんでいるのをみるというのは一度でも経験するとやめられませんよ? 笑わせんじゃねーよ
568 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 02:24:42 ID:vkGiPy+h] >>567 いつもID変わるの待ってからの書き込みご苦労様です 流れどころか空気も読めないなら失せろ
569 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 03:18:59 ID:x/FL2loS] 4分でレス返す君も相当な粘着だと思うけど? これだけ荒れるってことは少なからず理由があるってこと。 それを軽視して一方的に押し付けてるだけじゃ、そりゃユーザーも消えてくよ。 信者が荒らしと同レベルじゃ話にならないって。
570 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 03:33:06 ID:ZOefSqv5] >>569 で?
571 名前:ハコ太郎 mailto:sage [2008/02/27(水) 07:39:14 ID:fTrql+iS] フレームワークでやるべきことではないと思うけど サンプルやコンポーネントという形で欲しいとは前から思ってる。 あと初心者の意見としては コンテントパイプラインでアニメーション持ってきてるんなら それを再生させる方法も標準で用意して欲しい。 アニメーションやメニューの部分は有志が作ってるのがあるけど 初心者にそれを探させて組み込ませるのは酷な話だと思う 簡単にゲームが作れるといってるけど スキンアニメーション実装するよりデバイスロストの面倒見るほうが 簡単だと思うけどね。 XACT周りでは音楽を再生するとき 小節をABCBCというような形で再生させる方法が無いって問題があったと思う。
572 名前:ハコ太郎 mailto:sage [2008/02/27(水) 07:56:50 ID:fTrql+iS] そう考えると 結局XNAがやってることは環境周りの抽象化で 初心者に優しいというのはちょっと違う気がするね
573 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 08:23:31 ID:Y+dvb887] 低レベルなアホを面倒みるためのライブラリじゃないんだからネ
574 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 08:25:40 ID:bBhvobFx] >>572 そう、結局初心者というか、個人の制作者でひっかかるのは、動く物を作るところまで 持って行くところで、XNAはそれを強力に支援するものだと思っていた。 クロスプラットフォームとかはオマケでね。 >肥大化する昨今のゲーム製作現場では、ツール製作といったゲームに直接関係の無い作業に >長時間掛かることが日常になり、それがあまりに長くなりすぎて自分の本業がゲームを作ることなのか、 >ツールを作ることなのか判らなくなることが少なからずありました。 >個人的にXNAが目指すべき目標は「ゲームを楽しみながら作れる」環境を提供することだと思います。 >違う言い方をすれば、XNAを使った人達がゲーム作りに集中できるような環境を提供することです。 >XNAチームの目標は、ゲーム製作者がプロジェクトを新規作成してから5分以内でゲームのコードが書けるということです。 >個人的にはこれを「玄関開けたら、5分でゲーム製作」と呼んでいます。 ひにけにからの引用だけど、個人的にこういうポリシーで天下のMSがゲーム制作フレームワークを作るのに 注力していますというのは、とても頼もしく思っていて、そこでその開発者の一人と会話できるラッキーに恵まれたときに、 >>522 >これらの大量の作業リストの末席に「簡単なメニュー表示を作る」という作業を加えても、 >全体の作業量の変化は無視できる範囲なのではないでしょうか? ということを言われると、「やっぱXNA使ってもゲーム制作大変なのは大変だから、XNAチームが汗かいても大して楽になんないし、やらないよ?」 て言われたように感じてしまいました。 まぁその後の、GUI作っても使われない経験から作らんことにしますというのが主であって、上記は邪推すんなってことなんでしょうけど…。 GUI作るのは実は簡単で、大変だと思ってるのは君の思いこみだよと仰るなら、なにか別のところでゲーム制作が楽になるように 汗をかいて、XNAを使うと本当に5分でゲームが作れると思わせて頂きたいところです。 クロスプラットフォームとやらも良い物なんでしょうけども。
575 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 08:44:20 ID:p8GIJl6K] Ito居なくなって一気に暇になったな。セールストークと僕の理想のすれ違いなんてどうでもいいよ。 ぶっちゃけ環境まわりの問題で足止め食うのがいちばんムカつく。 forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2899685&SiteID=7 誰か同じような目に合ってるやついる? バイナリじゃなくてソースを提出する意味がわからんが、 そのソースですらランタイム足りてても動かないようにできてて萎えた。(なんだほにゃ字って) Blogではだいぶご立腹のようだが、デバッグビルドで配布してたとかいうオチじゃねーだろうな。
576 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 10:27:24 ID:L8xhRnhE] 通信のことで聞きたいのですが、 いわゆる、socketみたいなライブラリーは用意されてるのでしょうか? windowsならTCP/IPでP2Pといった形が、DirextXで出来たのですが、 windowsと360では、勝手がちがうでしょうし、ライブラリーが吸収してくれる ものかのかと思いまして。 360だと、ゴールドメンバーシップでマルチ対戦できるので、 単純な将棋みたいなプログラムをつくって、xna会員のフレンドと お互い360で通信対極したいとおもいまして。
577 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 10:32:00 ID:Ee+aUcpQ] 360でXNAのやつのデモ配信始まったけど遊んだ人いる? 車のとアクションのをいくつか遊んでみて思ったんだけどさ、オレが360で遊びたいのは マシンパワーをふんだんに活かしたいかにも次世代機なゲーム、Halo3とかギアーズとかああいうの なんだなーって気づいたよ。PCのフリゲで遊べるようなのを360で遊んでも面白くないなと もちろんオレ一個人の意見でおそらく少数派だと思うけど、一応自分でもXNAちょっとかじり始めたところ だったからなんかねーあーまとまんねーやチラ裏スマン
578 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 10:49:23 ID:igm36G3t] >>577 さすがに少人数で作るものとHALOみたいな大作は分けて考えた方が良くない? 一人でアニメ映画作る人がいる時代だから可能性を否定するつもりはないけどさ 大作を作りたいって言う人は何にどれくらいの工数がかかるのか全く見えてない 素人な人が多いなーって印象がある それとマシンパワーだったらPCの方がはるかに高いよ Core 2 Duoのマシンで何でもいいから動かしてみるといいよ マシンパワーを使ったゲームって目標はいいけど、例にあげたゲームが釣りすぎる
579 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 11:32:45 ID:nTH4tms8] 俺個人から言わせて貰うと、 昔のPCエンジンのボンバーマンとかモトローダーとかあの程度(と言ったら大変失礼なのは分かるが)のゲームでいいから、 みんなでオンラインで気軽に遊べる対戦モノ作品がいいな。 それかXBOX360から直接読み書きできる伝言板とか、メッセージどうこうのツール類ね。 XNAの環境でどこまで何ができるのか全く知らんけども。 (表現方面的に)マシンパワーをふんだんに活かしたいかにも次世代機なゲームの素人作品なんて全く興味ないよ。 勉強や趣味で勝手に好き好きで作ってる人(がほとんどだと思うけど)には関係ない話ですまん。
580 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 11:55:02 ID:C9+WQaUM] 予算20億円と100人ぐらいのスタッフでXNAを使用したゲーム開発も夢だな。
581 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 12:27:35 ID:FtdPv/Qb] GUI付けるくらいならシーン管理とか付ける方が先だろ
582 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 12:48:12 ID:x/FL2loS] >>579 いいな、じゃなくて自分で作ればいいじゃない。 そのための開発環境でしょ? 何でそこで自分好みのゲームがないからって、こうあるべきだ、みたいな押し付けが始まるの? >>581 シーン管理はサンプルがあるよ。 何から何まで取り込んでたらただのデブになる。 ただあんな使えない使わない算術ライブラリを大量に書いておいて、初心者に向かって工数も何もないと思うけどね。
583 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 12:56:40 ID:nTH4tms8] いや、だから勝手に好き好きで作ってる人には関係ない話って書いたんだけどね。 この先行われる予定の配布(需要)まで考えたら、 実際オンライン対戦ものくらいしかわざわざ落として遊ぶ人いねーんじゃねーの?という話。 XNAのサンプルみたいなのやってもつまらんし、逆にポリゴンバリバリで一見大作っぽいけど結局素人に毛の映えた程度のものなんて誰も落とさないんじゃね。
584 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 12:57:56 ID:v9GLKcCp] オマエ、本当に>521のこれ読んでから書いてるのか? ttp://creators.xna.com/Headlines/developmentaspx/archive/2007/01/01/Game-State-Management-Sample.aspx すげーくだらねー事をするのにとんでもないコード量を要求してくるんだぜ。
585 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 13:26:07 ID:x/FL2loS] それがゲーム製作ってもんでしょ? 需要は、一般ユーザーならそうかもしれないけど XNAに興味を持ち始めた人はどんなものでも欲しくなるだろうね。
586 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 13:32:30 ID:v9GLKcCp] フレームワーク作ってる奴が、低脳なのか、自己慢心のキチガイなのか。 俺はそこの所を純粋に知りたい。
587 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 13:47:51 ID:nTH4tms8] いや、おれはべつにXNA製作自体興味なくて、XNAで何か面白いもんあるのかただ気になっただけなんでw (根本的にスレ違いなんでそこは謝るけど、他にXNAスレ見当たらんので) まあ同期とったり何かとめんどくさそうだからアクションゲームは要求はしないけど、 例えばオン対戦の大富豪とかでも作るの面倒なの? 携帯ゲー製作より面倒なんじゃXNA意味ねーじゃん
588 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 13:53:06 ID:B6ARmRBJ] >>574 5分でってのは、ゲームの製作が完了するまでの時間じゃなく、 "すぐに各ゲーム依存部分を書き始められる"の意味だろ。 そのあたりをよく考えてみるべき。 あと、あれもこれも無いって言ってるやつはcodeplexにあるXNAラッパ使え
589 名前:名前は開発中のものです。 mailto:sage [2008/02/27(水) 14:03:44 ID:g4UrQFjY] フレームワーク≠ゲームエンジン
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のコンストラクタが違うということはわかったのですが 設定が上手くいっていないのでしょうか?それともそれ以外に設定が必要なのでしょうか?
691 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 22:44:28 ID:keBEe7WT] >>689 ありがとうございます。 半透明ではなく透明度ゼロのスプライトの表示ですね。 奥から、地形、アイテム、キャラ、弾丸(←こいつにAdditiveが混ざってる)、エフェクト、メニュー(←こいつが半透明) という表示をしたくて、spriteBatch.Drawの最後の引数の値で管理してます。 AlphaBlend用のSpriteBatch(Aとする)とAdditive用のSpriteBatch(Bとする)をそれぞれ持っておくというのは合ってて、 下記のように呼べばOKでしょうか? ただ、この場合、弾もメニューも他のものもDrawableGameComponentを継承した、○○Managerというのを作って、 そのDrawメソッドの中でそれぞれのオブジェクトのDrawメソッドを呼んでいるのですが、DrawableGameComponentにしちゃうと まとめてGameから呼ばれちゃうので、弾ManagerとメニューManagerはDrawableGameComponentにせずに別管理になるということでしょうか。 //地形、アイテム、キャラ描画 SpriteBatch_A.Begin(Blend); SpriteBatch_A.Draw( 地形とかアイテムとかキャラとか ); SpriteBatch_A.End(); //弾 SpriteBatch_A.Begin(Blend); SpriteBatch_B.Begin(Additive); if ( 弾.blendmode == AlphaBlend ) { SpriteBatch_A.Draw( 弾 ); } else { SpriteBatch_B.Draw( 弾 ); } SpriteBatch_A.End(); SpriteBatch_B.End(); //メニュー SpriteBatch_A.Begin(Blend); SpriteBatch_A.Draw( メニュー ); SpriteBatch_A.End();
692 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/03/02(日) 23:01:48 ID:Oj9SUC9L] >>681 単にC++の構文が使いたいのであれば、Windows限定なら何の問題も無くC++/CLI使えますし、Xbox 360上でも/pureフラグ使えばできますよ。 どちらもサポート外でけど。 あと、名前は忘れましたがC++からC#のコードに変換してくれるソフトがあったりして、実際にそれを使っている人もいましたよ 適当にググってみたらこんなの見つけましたけど ttp://tangiblesoftwaresolutions.com/Product_Details/CPlusPlus_to_CSharp_Converter_Details.htm さあ、話しましょうか? >>682 弘法筆を選ばず、プログラマー言語を選ばずです。 >>688 そういったパラメーター変更のような機能の要望は確かにあります。 現状ではWindowsのみならプロパティグリットは使えますが(WinFormとして使うなら)、要求としてはPC上から Xbox360で動作しているデータの変更したいというのはあります。 >>690 このメッセージは指定した名前のキューが無かったときにでます。この名前はケースセンシティブなので XACTでしていした名前と大文字小文字も一緒にする必要があることに気をつけてください。
693 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 23:11:28 ID:qhGLCmSg] XNAで「フォグ」って、ピクセルフォグしか使えないんでしょうか? ピクセルフォグはDX9の設定をXNA的な書き方に直しただけで動いたのですが、 どーにもFogVertexModeではフォグカラーで塗りつぶされただけになってしまうので。 子一時間といってたけど・・・ま、次に来たときにでも教えてください>ひげねこさま
694 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 23:13:15 ID:keBEe7WT] >>691 あ、そうじゃなくて、SpriteBatch_IroiroとSpriteBatch_TamaとSpriteBatch_Menuを作って、 SpriteBatch_Iroiro.Begin( blend ); SpriteBatch_Tama.Begin( additive ); SpriteBatch_Menu.Begin( blend ); base.Draw(); //DrawableGameComponentをDraw SpriteBatch_Iroiro.End(); SpriteBatch_Tama.End(); SpriteBatch_Menu.End(); とすれば良いのかな。Endのタイミングで描画でしたよね。
695 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 23:30:45 ID:Ng8vALwi] >弘法筆を選ばず、プログラマー言語を選ばずです。 xna-studio.jp/howto.html ↑にはプログラマーじゃない人でも出来る話なんですけど
696 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 23:39:09 ID:wif61gOz] >>692 そうなんですか。でもキューの名前は合っているはずなのにおかしいな? もう少し調べてみます、ありがとうございました
697 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 23:50:59 ID:RrXwWPHL] >VectorGraphics 欲を言えばアンチエイリアス付きの簡易Flashみたいな。 まあ、System.Drawing の GraphicsやGraphicsPathが使えれば良いかなと。 (自作しようにもTesselation(Triangulation?)で躓いた) ツールで作ったものをポリゴンデータにするっていう具体例が思いつきませぬ。
698 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 23:54:01 ID:iyg+0+D4] >>697 まさにSilverlight Silverlightのサポートの予定はあるの?
699 名前:ハコ太郎 mailto:sage [2008/03/02(日) 23:55:06 ID:Lox6KhX3] 俺よく調べてないんだがSilverlightってweb側の技術じゃないのか
700 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/03/03(月) 00:02:55 ID:JIaq5K5i] >>693 FogVertexModeにした場合は、頂点シェーダーでFog係数を出力する必要があります。 struct VSOUTPUT { >>695 っていうか、最初の段落で思いっきりプログラミングツールって言ってるんですけど……。
701 名前:ハコ太郎 mailto:sage [2008/03/03(月) 00:10:20 ID:ih84mIid] そもそも何も知らない主婦にやらせるのが間違いでは? どうも意識のずれがあるように思うけど
702 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/03/03(月) 00:11:23 ID:JIaq5K5i] 途中で送信してしまいました、すいません >>693 こんな感じでFOG係数を頂点シェーダーから出力します struct VSOUTPUT { float4 PositionPS : POSITION; float Fog : FOG; }; >>691 もしかして、Addtiveの弾とメニュー以外は、アルファ値が0と1しかないスプライトですか? それだったら、もっと簡単な方法があります。 はう、こちらは朝の7時で非常に眠いです。 このまま書き続けるとヘンなこと書きそうなので寝ます。 日本時間で月曜の夕方くらいに戻ってきます。では
703 名前:ハコ太郎 mailto:sage [2008/03/03(月) 00:14:38 ID:ih84mIid] お疲れ様でした
704 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 00:46:07 ID:51SXKyNl] xna-studio.jp/howto.html >しかし、プログラミングを学習するのは難解であり、開発関係の情報は専門に選考している方に >しか理解し難いものです。 >通常はこの段階で一般の方もしくは、これから始めようとされる方、興味を持ってもやはりその >難しさにハードルの高さを感じて断念、敬遠される場合があります。 ここ読むと、プログラミング学習の難解さ、敷居の高さを解消しないとどうにもならないような気がするが。 でも、まさかMSがゆとり学生から氷河期ゲーム廃人までの全員を対象に無料プログラミングスクールを 毎週提供するわけにもいかないしなw その下の段落読むと、プログラミングできない人はとりあえず応援して、アマチュアが作ったゲームを 楽しんでね〜、絵心や音楽のセンスあるやつはできる範囲で協力してXNAを盛り上げましょうね〜みたいな 感じだな。
705 名前:693 mailto:sage [2008/03/03(月) 01:03:25 ID:CQVhtOku] >>700 ありがとうございます。 ということは、今はBasicEffectに頼り切ってfxファイルなんて使っていないので、あきらめろって言うことですね・・・。了解です。
706 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 01:15:25 ID:oA5jTKAz] >>702 > >>691 > もしかして、Addtiveの弾とメニュー以外は、アルファ値が0と1しかないスプライトですか? > それだったら、もっと簡単な方法があります。 今のところそのつもりです。もしかしたら弾とエフェクトは半透明にするかもですが、 地形とキャラはベタの予定。 // スプライトの描画準備 this.spriteBatch.Begin(); // スプライトを描画する this.spriteBatch.Draw(this.texture, Vector2.Zero, Color.White); とか、Beginの引数を省略とかじゃなくてですか?<簡単な方法
707 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 01:27:09 ID:LQEfvSeq] XNAって文字をスプライト化せずに表示することは不可能なんでしょうか? 今までは画像ファイルで済ましていたんですが、 テキストの多いゲームを作ろうと思っているので、 片っ端から文字をスプライト化するのは避けたいんです ユーザー側で使用フォントを変えれるようにもしたいですし
708 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 03:55:13 ID:x67FlAoB] 過去レスくらい読もうぜ
709 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 09:56:04 ID:ulYtu6Pm] 自前でTrueTypeレンダリングするとか
710 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 12:56:24 ID:qepHyWRQ] 今、XNAフィードバック使えなくない? IE7にしてから初めてのアクセスなので、自己解決しそうだけど念の為書いておく。
711 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 16:03:15 ID:F45LgXfd] Effect Fileを書くとき入力支援機能があると楽なんだが3.0に搭載してほしい
712 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 16:55:48 ID:TzOzZLK6] OPADSFはレリノマッソサイテスタルムン゜タイテ゜゛からせねふほぉん゜まのちしとはくちしとは
713 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 17:05:51 ID:S1J4GBTq] 日本語でおk
714 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/03/03(月) 17:18:04 ID:Q5EkCE5+] 今日は本当に小一時間だけ(で終わるといいなぁ)出没します。 >>696 あと、考えられるのはストリーミング用のWaveバンクを生成した後にAudioEngine.Updateを一回呼ぶ必要があります。 audioEngine = new AudioEngine(@"Content\Audio\xact.xgs"); streamWaveBank = new WaveBank(audioEngine, @"Content\Audio\Streaming.xwb", 0, 16); soundBank = new SoundBank(audioEngine, @"Content\Audio\Sound Bank.xsb"); audioEngine.Update(); // これを追加 cue = soundBank.GetCue("test"); >>697 例えば、XAMLとかをそのまま正直にランタイムで処理すると時間が掛かるので、GPUフレンドリーなデータ構造に変換したり、 ツール内でベクター使いまくって作ったボタンイメージとかをコンバート時にビットマップに変換してくれたりといった機能ですね
715 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/03/03(月) 17:34:28 ID:Q5EkCE5+] >>706 こんな感じです。 // 抜きスプライトを描画 spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.SaveState); GraphicsDevice.RenderState.DepthBufferEnable = true; GraphicsDevice.RenderState.ReferenceAlpha = 128; spriteBatch.Draw(...) spriteBatch.End(); // 半透明のスプライトを描画 spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.SaveState); GraphicsDevice.RenderState.DepthBufferEnable = true; GraphicsDevice.RenderState.DepthBufferWriteEnable = false; spriteBatch.Draw(...) spriteBatch.End(); // Additveのスプライトを描画 spriteBatch.Begin(SpriteBlendMode.Additive, SpriteSortMode.Immediate, SaveStateMode.SaveState); GraphicsDevice.RenderState.DepthBufferEnable = true; GraphicsDevice.RenderState.DepthBufferWriteEnable = false; spriteBatch.Draw(...) spriteBatch.End(); // メニュー部分を描画 spriteBatch.Begin(); spriteBatch.Draw(...) spriteBatch.End(); 抜きテクスチャを描画する時にZバッファと、Alphaテストを使うのがコツです。こうするとAlpha値が1のものだけが 描画されると同時にZバッファも更新されるのでちゃんとしたdepthを指定すれば順不同に描画しても問題ありません 次にの半透明部分ですが、前の描画でZバッファには情報が入っているので既に描かれているものより手前のピクセルしか描画しません。 Zバッファは参照するけど、更新はしないというのがミソです。続くAddtiveの部分も一緒です。 これで見た目上一番問題のある抜きスプライトとそれ以外のスプライトの前後関係は正しくなります。ただし、半透明同士が重なったとき の前後関係はおかしくなりますが、見た目上の問題は大幅に減るはずです。
716 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/03/03(月) 17:44:53 ID:Q5EkCE5+] >>705 確かにBasicEffectはFogパラメーターを頂点シェーダーで出力していませんが、独自のFogパラメータを持っています。 Fogパラメータを出力するように変更することができますが、Xbox360にはFog関連のレンダーステートが無いので、BasicEffectを 使う場合はそのパラメーターを変更することをお勧めします。 >>707 文面から察するにSpriteFontを使っていないように見えますが、そうであればSpriteFontを使うことで文字列描画できます。 このスプライトフォントには表示につかう文字コードを指定する必要があり、デフォルトでは英文字が追加されています。 それ以外の文字を表示するには以下が参考になります。 ttp://blogs.msdn.com/ito/archive/2008/02/22/simple-japanese-message.aspx ttp://blogs.msdn.com/ito/archive/2007/05/02/content-pipeline-part3.aspx >>711 Effect Fileを書くとき入力支援機能があると楽なんだが3.0に搭載してほしい これはインテリセンスが動作して欲しいということでしょうか?確かにあると便利なので要望として出しておきます。
717 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 18:05:24 ID:S1J4GBTq] RenderTargetでColor.Singleのフォーマットが作れないんですけど、 作成できるかチェックする方法ってあるんですか?
718 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 18:18:16 ID:ST1FZc0o] >>714 >例えば、XAMLとかをそのまま正直にランタイムで処理すると時間が掛かるので、GPUフレンドリーなデータ構造に変換したり、 >ツール内でベクター使いまくって作ったボタンイメージとかをコンバート時にビットマップに変換してくれたりといった機能ですね なるほど。 そういったパーツを多関節でつなげたり、 スキニングみたいにトランスフォームしたりでアニメーションさせたいですね。 ってその程度であればスプライトで代用できるんで、拡大縮小で劣化を防ぐ以外にはあまり意味がないような。 そういうのをリアルタイムでやりたいんで、 グラフィックスパスをポリゴン化するようなサンプルが欲しいなぁと。
719 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 18:51:45 ID:zo2Ibxr1] Win2kで動くように… 無理か
720 名前:ひげねこ ◆oxtErU/kVM mailto:sage [2008/03/03(月) 19:13:41 ID:Q5EkCE5+] >>717 GraphicsAdapterクラスのCheckDeviceFormatを使います。 bool canUse = GraphicsDevice.CreationParameters.Adapter.CheckDeviceFormat( graphics.GraphicsDevice.CreationParameters.DeviceType, GraphicsDevice.DisplayMode.Format, TextureUsage.None, QueryUsages.None, ResourceType.RenderTarget, SurfaceFormat.Single); この戻り値がtrueなら使えることになります。 >>718 Triangulationサンプルということですね。ここら辺の処理は他のグラフィクス処理に比べると地味ですが、あるとなにかと便利なんですよね >>719 Win2Kがサポート外なのはXNAが依存しているものの問題なんで、厳しいですね。 明日は月曜日なので、今日はもう落ちます。ではでは
721 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 19:48:20 ID:S1J4GBTq] >>720 > GraphicsAdapterクラスのCheckDeviceFormatを使います。 ありがとうございます。945GMで無事にfalseが帰ってきましたorz 色々なサンプルを見るだけでも影のハードルは高いっすね・・・。 >>716 > これはインテリセンスが動作して欲しいということでしょうか?確かにあると便利なので要望として出しておきます。 個人的にはシェーダーでリファクタリングが使えるようになって欲しいですね。 同じようなシェーダーを書き換えたり、コピペしたりするときに欲しいなと思います。
722 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 20:07:26 ID:EdvlV9oX] XNAのインストールから会員の入会方法、XBOXで動かすのを具体的に解説してるページってないですか?
723 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 20:35:22 ID:aH5g85ZF] >>712
724 名前:696 mailto:sage [2008/03/03(月) 21:12:34 ID:vsU7ZvID] >>714 おお、ちゃんと再生できました!! ありがとうございます
725 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 22:33:54 ID:CwLMLFGc] >>722 xna-studio.jp/ スターターのダウンロード ゲームを動くようにする メンバーシップへ参加 スターターのダウンロード パソコンとの接続設定 ゲームを動くようにする Xbox 360 へ展開する ゲームサンプル てあるから読んでみたら?
726 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 22:54:32 ID:EdvlV9oX] その人と一緒にがんばってみます
727 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 23:59:09 ID:b9qJgCmK] スレ違いで恐縮なんですけども、win向けのXNAバイナリがどれもこれも動作しません。 ・(問題の環境がVistaなので).Net2.0再頒布可能パッケージインストーラは蹴られる ・DirectX End-User Runtime Web Installerは「最新です」と言われる (DxDiagも正常、AeroGlass環境なのでGPU要件は問題無い、筈) ・Microsoft XNA Framework Redistributable 2.0はインストール済 ・イベントビューアによると何らかのコンポーネントが足らないか壊れている、らしい で、ここからが要望なんですが、もう少しエラーメッセージ周りをどうにかするか (実際に何が欠けているかが解らないので、どれを疑ってよいのか解りません) XNAバイナリを動作させる為の必須コンポーネントのAll-in-oneパッケージのようなもの を用意していただけるとありがたいのですが。
728 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 00:47:09 ID:sCnHkz0D] おちんちんびろんびろ〜ん
729 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 01:03:46 ID:s/9UoCnb] それができたら苦労しない そもそもPCでXNAやること自体間違っとる 箱でやれよ
730 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 08:40:03 ID:RsF5/lls] >>727 CRT8SP1だったか.NETFX2.0SP1だったかが足りにゃい
731 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 09:20:55 ID:s/9UoCnb] こんな得体の知れないランタイム要求するなんて Vista買った初心者は全員XNA挫折だな
732 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 10:19:39 ID:j0/ST36S] XNA End-User Runtime Web Installerが必要かもな。 ・DirectXをチェックしてインストール ・.Net Framework 2.0 SP1をチェックしてインストール ・XNA Framework をチェックしてインストール このぐらい自動でやってもらいたいものだ。
733 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 10:44:53 ID:s/9UoCnb] 無理だな できるなら既にやっている もうXNAが出てから何年も経ってるんだぞ
734 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 10:50:42 ID:OToBjVMK] ベータ含めて1年半だろ
735 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 11:30:35 ID:dikiCYmh] 3.5入れさせとけ
736 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 12:06:08 ID:RsF5/lls] >>731 何が知れないのか知らんがCRTは要するにCランタイムでVS2005で 開発されたほぼ全てのアプリに必要。 VS2005SP1で更新されたんだが今いち内部ですら認識されてなさげ つか見てみたがこれXna redistパッケージのバグと言ってもいい気がしてきた。 CRTだけで大丈夫なら同封すべき。NETFX2.0SP1必要ならNotWinFx2Actionの カスタムアクションが間違ってる。とりあえず依存関係抽出してパッケージ 作るぐらいはして下さい>これつくった人 WiX使ってるようだけどこれは詳しくないと火傷するぽ
737 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 12:33:49 ID:Q04dOBkw] >>575 のリンク先の原因と同じかな? ちゅーかこれXNAに限らずC++/CLIアプリを配布する時に気をつけた方が良いなぁ。
738 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 12:45:45 ID:ij7C/RJ0] プレイさせるだけでも一苦労だな
739 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 12:54:30 ID:NA3DgFZP] さっさと>575の「この投稿は参考になりましたか?」の「はい」を押す作業に戻るんだ。
740 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 13:02:16 ID:ozuNs0rT] 不毛なインストール作業を強いる時点で ゲームプレイ環境としては失格だな
741 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 13:24:57 ID:RsF5/lls] >>738 >>740 その辺パッケージで吸収せなならんのにというそれ以前の問題っつーか これつくったやつと通したQA出てこいっつーか…
742 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 13:26:36 ID:s/9UoCnb] MDXと違って金が入るからC#もXNAもこの先生きのこると思う人も多いかもしれないが その期待をことごとく裏切るのがM$流 既にGDKなんて出してるくらいだからな 箱の寿命かDX10世代が来るまでの命だろ
743 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 13:27:23 ID:AVay9o0V] 途中送信しかけた… >>740 文句は言うのは自由だが、非生産的な文句は誰も得しないからやめれ
744 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 13:31:48 ID:dikiCYmh] GDKはサードパーティー製品の制限版だぞ
745 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 13:42:19 ID:s/9UoCnb] >不毛なインストール作業を強いる時点で >ゲームプレイ環境としては失格 認識を持たせるという意味では生産的な意見だな
746 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 14:09:42 ID:ozuNs0rT] >>743 どうやら君の1bitの情報量も無い書き込みよりは生産的みたいだよ?
747 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 14:11:24 ID:6jZ5YXCn] >>745 かえって問題の本質をぼかしているだけだろ
748 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 14:35:23 ID:tkXnqvSo] この前のイベントが海外への良いアピールになっているといいなぁ ひげねこ氏も積極的に動いてくれているみたいだし 要望を踏まえた3.0の成長に期待 あとは新機能が追加されてもそれを上手く使わせるサンプルが不足していることだと思う ジオメトリインスタンシングのサンプルなんて複数のサンプルがごちゃごちゃしすぎて分かり難いし スターターキットに至っては(ry
749 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 14:38:21 ID:du42uvgl] MSの開発ツールってドキュメントはMSDN Libraryに代表されるように非常にしっかりしてるんだが サンプルが今ひとつな事が多いよな
750 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 14:51:11 ID:CujTJOWH] 断片的な情報しかないのは仕様です。
751 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 15:13:19 ID:0b6eMKRw] 翻訳何とかして欲しいなあ。 調べ物は英語でいいけど、パラパラ読みができん
752 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 16:28:19 ID:sCnHkz0D] おちんちんびろ〜ん
753 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 17:04:20 ID:s/9UoCnb] 戻らなくなるぞ
754 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 17:23:51 ID:sCnHkz0D] 皮が伸びて被ったままになっちゃった・・・最初からだけど つω;) ウッ・・・
755 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 22:14:38 ID:/QfDBMTz] >>728-729 wwwwwwwwwwwwww箱だとびろ〜んできますか?wwwwwwwwwww
756 名前:名前は開発中のものです。 mailto:sage [2008/03/04(火) 23:08:18 ID:mWxzbpcN] サンプルの充実と解説の和訳が欲しい できればサンプルには、それを学ぶことでどのような知識が得られるのか、 落とす前に体系的にわかるようにして欲しい 基礎から応用まで
757 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 00:02:31 ID:G13W8xfV] 2Dで、BoundingBoxとBoundingSphereを使って 矩形同士の衝突判定と、矩形と円の衝突判定をやっています。 ですが、矩形の方を回転させて、斜めになってる状態で判定する必要がでてきました。 そこでちょっと教えて頂きたいのですが、BoundingBoxを回転させる方法はありますでしょうか。 MSDNで探してみたつもりなんですが、そういうメンバは見あたりませんでした。 どうすればBoundingBoxを回転させて衝突判定させられるでしょうか。 それとも、回転する矩形の衝突判定する方法は提供されてなくて、 4点取って自分で衝突判定処理を実装しなければならないのでしょうか。 教えて頂けると助かります。よろしくお願いします。
758 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 00:18:28 ID:tt2IYbDX] >>757 ごめん、俺XNAは全然素人なんで正しい答えは返せないんだけど 元々矩形で当たり判定してるなら中身が回っても矩形的には無視 できるんじゃない? 中央の座標だけ揃えとくとか、そんなんじゃ駄目なんかな?
759 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 00:35:26 ID:iMklzerV] >>758 ええと、言いたいことが伝わってないかもしれません ε=○□=3 と ε=□□=3 とやってたのを、 ε=○◇=3 と ε=□◇=3 とやりたい、ということです。 /\○ ←当たってない / \ \ / \/ と、矩形の傾きで衝突してるか否かが変わってくると思います で、BoundingBoxは原点に近い方の座標と遠い方の座標で値として持つので、 座標を傾けても、矩形の縦横の長さが変わるだけで傾きはないという認識です で、もしBoundingBox自体を回転できなくても、BoundingBoxと傾き角度を引数とかで 渡してやれば衝突判定してくれるメソッドとかXNAで提供されてないかなぁと思いまして
760 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 00:40:56 ID:dCj5PHbb] おまえはBBの意味が分かっていない
761 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 07:37:59 ID:vf5nbNmt] >>759 XNAは知りませんが、普通2DのBBはAABBの一種で、座標軸に平行な矩形です。 回転するBBと円との当たり判定を行いたい場合、円の座標を変換して AABB vs 円にしてから判定を行うとよいでしょう。 数学的に難しくは無いですが多少重いです。
762 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 07:47:03 ID:vf5nbNmt] 訂正。 円の座標ー>矩形と円の座標
763 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 08:17:04 ID:iMklzerV] >>761 あーなるほど、円と矩形回転させてやって、軸に平行な矩形を作って、そちらと判定する訳ですね 矩形同士の衝突の場合も、片方の矩形は軸に平行になるようにして あとは斜めになってる方の矩形の四点が、回転してない矩形に進入してるかどうか、ですかね?
764 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 10:23:06 ID:PKtFPGkc] 759のようにもっと正確に判断したい場合 回転バウンディングボックス(OBB)と球の判定になるんだけれど XNAのライブラリには含まれていないぽい リアルタイム衝突判定本の中に説明とサンプルが含まれているので 自作するか誰かのコードを流用させてもらうのが良いかと
765 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 12:13:04 ID:wiI7nq2k] >回転バウンディングボックス(OBB)と球の判定になるんだけれど >XNAのライブラリには含まれていないぽい こういう中途半端なところがあるから嫌いだ。 物理エンジン書いたこともないような素人の算術ライブラリなんかのせるな。 自前で用意するからいいが、はっきり言って萎える。 依存箇所全て書き直しか?ふざけるのも大概にしろ。
766 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 14:20:57 ID:ptj03fcF] 日本人がいかに完璧主義かがよく分かるスレだな。
767 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 14:33:06 ID:Cu5Bc2PE] 少なくともこんなくだらないことで騒いでる奴よりは中の人の方が頭いいと思うよ
768 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 14:35:13 ID:x2y+3/wK] 外人マッチョ「XNA初めてか?力抜けよ」 日本人「エ・・・、X、N、Aッー!」
769 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 15:09:53 ID:mPAG9DMI] ttp://xoops.peak.ne.jp/modules/d3pipes/index.php?page=clipping&clipping_id=216 中の人の頭の良さは別次元だからな。 >C# によるリテール版開発は、 Microsoft 自身が XNA 環境では XBOX360 コンテンツに課す要求クオリティレベルをクリアできないだろうと発言しています。 そりゃ端からプロデビューして、C/C++ とインラインアセンブリでunreal engineも会社の経費で使い放題の奴らと 同じ事を考えろなんて無茶言うなよ。('A`)
770 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 15:16:55 ID:HhOx8svu] なんでもやろうとするからいけないんだ。 コンシューマーゲームって本来ハードスペックとの戦いだろ? XNAも同じさ。XNAという仕様の中でいかにおもしろいもの作るかってことだ。 初心に戻って今のXNAでできることをやろうぜ?
771 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 15:22:22 ID:nSoZ+6/k] 何か当たり前の事を書いてる記事だな。あぁ・・・そう・・・としか反応できんわ
772 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 15:23:52 ID:mPAG9DMI] >770 なんだよ。オマエ。 すげーエスパーだな。 俺の自作自演かと思ったぜ。 まーそう言う事だ。
773 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 19:25:51 ID:JIb0oR1t] >>768 がじわじわくる
774 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 22:01:40 ID:iMklzerV] >>770 XNAは仕様じゃなくて手段だと思うな
775 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 23:21:57 ID:gnjL6vbU] >>771 2chの1レスを記事とか書いちゃうお前、嫌いじゃないぜ……
776 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 01:06:36 ID:T3j+VmAd] バイリニアフィルタとマルチテクスチャを使った草と土の綺麗な繋ぎ方ってどうやるんですか? 前から気になってはいたんですが、ポリゴンの分割とUVの微調整をしているのだと思っていました DirectX7&8時代に使われた知られざる中級テクニック教えてください
777 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 11:47:40 ID:jWMG+kMJ] もしかしてMicrosoft.Xna.Framework.Game.dllってC++/CLIじゃなくてC#で書かれてる? そのためにDLL分けてるのかな そうだったからって別にどうでもいいんだけどやっぱりMSとしてはC++/CLIは 橋渡し言語としてしか使わない/使わせない方針なのかなあ
778 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 14:22:02 ID:L4hyp2ZA] むしろマーシャリング上の手抜き以外の理由でC++/CLIを使いたいって人が 意外と多いのが謎だけどな。そんなに新しい言語(C#)覚えるの嫌なのかしら。
779 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 14:46:26 ID:Xs46mVOD] オマエら幸せだな。 人のソースとか読まないし。ボックス化とか聞いた事も無いだろう。 // position += velocity ; // velocity *= frication; position.x += velocity.x; position.y += velocity.y; position.z += velocity.z; velocity.x *= frication; velocity.y *= frication; velocity.z *= frication; こんなのでな、コメントアウトした行の3.8倍のスピードがでるんだぜ。
780 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 14:50:18 ID:a8Un48/x] VertexBufferとIndexBufferってビデオメモリに置いた方が高速なんだよね? それってどうすればいいの? Meshクラスはビデオメモリに作るようになってるの? でもDrawIndexedPrimitiveってやってるよね?
781 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 14:56:55 ID:Xs46mVOD] これがよさげ、 ttp://creators.xna.com/Headlines/developmentaspx/archive/2007/01/01/Mesh-Instancing.aspx vertices[0].SetFrequencyOfIndexData(instanceTransforms.Length); あたりを気を付けて読むと良いよ。 っていうか >683が既出。 >779 コメントアウトした方に戻すと。 0.26倍まで低下って書いた方がオマエらのレベルに合うな。
782 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 14:57:02 ID:jWMG+kMJ] >>779 それボックス化全く関係ないからw 演算子を実装するメソッド間の受け渡しが発生するから遅くなるだけ
783 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 15:20:27 ID:L4hyp2ZA] >>779 boxing覚えたてか? 上のコードが遅い原因は+=がop_Additionに変換されてVector3のビットコピーがx3発生。 さらにAdd(ref Vector3, ref Vector3, out Vector3)のようなメソッドを呼ぶにしても jitのインライン条件が厳しすぎてやっぱりベタ書きの方が早い。 ってところまで書かないとお前勘違いしてそうだな。 >>780 何もしなけりゃビデオメモリにおかれてるよ。Drawうんたらは多分認識が間違ってる。
784 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 15:35:09 ID:Xs46mVOD] >それボックス化全く関係ないからw さすがに解るよ。('A`) 俺の書き込みで、ボックス化と全く関係ない事に気付ない奴を連れてこいよ。 おまえらもうちょっと頑張れ。 問題はC#のILコードが糞だって事な事だろ。
785 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 15:37:58 ID:jWMG+kMJ] インライン展開される(ことがある)のはC#をILにコンパイルするときじゃなくて 実行時にネイティブコードにJITコンパイルされるときだぞ それをいうならCLRが糞
786 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 15:42:21 ID:Xs46mVOD] >CLRが糞 すまんかった。 だけど C++/CILにはマクロがある Ok? 折角だから質問していく。 >何もしなけりゃビデオメモリ ってDraw***Primitive系のメソッドでも良いのか? mesh.Draw();が良いのはイメージできる。
787 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 15:47:37 ID:kWblePHM] >>779 つい最近、どっかで仕入れた知識をそのまま披露かw
788 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 15:49:15 ID:Xs46mVOD] >787 そういう事だ。 C#初心者系のスレで、「効率を考える奴がC#をつかうなんてありえないよね」とか言われてきた。
789 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 15:59:02 ID:L4hyp2ZA] >>786 ModelMesh.Drawのことなら中でDrawIndexedPrimitiveが呼ばれてるだけだぞ。 てゆーかなんでジオメトリインスタンシングなんて紹介した? ありゃカーネル<->ユーザーモードの推移を抑えて速度稼ぐものだから >>780 の質問のデータの配置云々はあんま関係ねーぞ。 >だけど C++/CILにはマクロがある Ok? それを先に言え。だがプリプロセッサマクロごときの微妙な可読性/記述性を得るために C#からC++/CLIにプロジェクト全体を鞍替えするのか? 残念だが、プロファイラでクリティカルな部分だけ探してベタ書きする方がなんぼかマシだ。
790 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 16:12:14 ID:Xs46mVOD] ビデオメモリとDrawはVertexStream.SetSource()を見て、自己解決した気になってるが、 ビデオメモリに保存する事を狙ってやってるソースを見た気がしない。 ...こりゃ、後から開き直るのがどうこう ってレスがつくんだな。 オマエらそれだけ解ってるのに、なんでC#つかってるんだ? C#厨がマンセーしてると思って、やってきて釣られたようなもんだぜ。 >789 >残念だが、プロファイラでクリティカルな部分だけ探してベタ書きする方がなんぼかマシだ。 フォロー サンキュー。
791 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 16:50:37 ID:1SbOg85e] なんでって、、、Xbox360で動かす手段が事実上これしかないからだ
792 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 19:33:22 ID:a8Un48/x] 例えば頂点の位置と色とテクスチャ座標をもった三角形をContent.Loadを 使わないでビデオメモリにVertexBufferとIndexBufferを自分で作成するにはどうすればいいのですか? あと毎フレーム頂点の位置を(VertexShaderではなく)アプリケーションで変える 頂点をセットするような使い方のときはどういうふうにVertexBufferとIndexBufferを作成すればいいのでしょうか?
793 名前:ハコ太郎 mailto:sage [2008/03/06(木) 19:49:27 ID:rAQJhDRv] リファレンスに載ってなかったっけ
794 名前:ハコ太郎 mailto:sage [2008/03/06(木) 19:50:27 ID:rAQJhDRv] 見当違いならすまん
795 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 20:42:21 ID:L4hyp2ZA] >>792 答えたはずだがな・・・何の反応もなくしかも質問内容増えてるし。ちょっとは自分で調べたか? 1.普通にコンストラクタで作ってSetData。ネイティブで考えればシステムメモリにも 頂点バッファは作れるが、恐らく360との絡みでXNAでは意識できないようになってる。 2.めんどくさいのでヘルプより抜粋 Xbox 360 does not support dynamic vertex buffers that use the Overwrite/Discard semantic. This affects calls to DrawPrimitives. For this reason, when rendering dynamic geometry, DrawUserPrimitives is recommended at all times on both Xbox 360 and Windows. (The performance disadvantages of DrawUserPrimitives, though previously a factor on Windows, are largely obsolete in newer video drivers.) 結論だけ書くと「DrawUserPrimitives使え」 個人的にはDynamicVertex/IndexBufferの存在がXNA2.0最大の謎。
796 名前:名前は開発中のものです。 mailto:sage [2008/03/06(木) 20:58:31 ID:T8fo1IZY] www.bba.or.jp/ogc/2008/ XNA、ひろゆき、新清士、ニワンゴ・・・ なんという異色の協演・・・
797 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 10:35:28 ID:fLmqr2Fy] 誰かひろゆきにXNAについてどう思うか聞いてきて〜
798 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 13:42:25 ID:fxAYtVJw] 実機で動かすのに金いるのか 配布するときに入会させればいいのに 面倒だからやーめた
799 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 15:28:02 ID:gESQYUPJ] xnaはC++/CLIやvb.netでも書けるだろ
800 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 16:15:54 ID:1NfIumuY] C++でXNA使うなら、機能面で既存の別のライブラリ使うな
801 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 17:51:50 ID:wZGs4Gxf] 「書ける」と「箱で動く」は別問題だよね。
802 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 20:44:59 ID:2hUQvDJc] MS、「XNA Game Studio Japan 2008 Spring Contest」受賞作を発表 journal.mycom.co.jp/news/2008/03/03/013/index.html いろんなのがあるな
803 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 21:58:15 ID:B9T8jdIP] >>2 ,5 HSPコンテストのレベルと大して変わらんのじゃねーか
804 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 22:10:04 ID:NP1Sf3E1] そう言ってられる内の方がまだよくね? どうせそのうち空気読めない外人が何億と金かけたゲーム作り始めて ここはそういう力のある集団だけのコミュニティになる 俺たちアマチュアの居場所など無くなるさ
805 名前:名前は開発中のものです。 mailto:sage [2008/03/07(金) 22:52:04 ID:1WoBL1I/] >>800 いやいや。 CRTには依存できないから既存のライブラリは使えないでしょ
806 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 01:28:46 ID:vb/FCMXc] xna-studio.jp/spring_contest/index.html 動画になってるー
807 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 14:59:20 ID:eGTZlkp3] このスレの過去ログでを見てないだけの>791の人気に嫉妬。 つ/clr:pure boost程度は行けるんじゃ無い? libを使うregexやpythonはダメだろうけど。 C#2.0でNGのfunction(ラムダ式とか)がいけるハズ。 入会してるやつに聞きたいんだけど、C#のunsafeオプション付けてポインタ使ったソースを実機でうごかした奴いる?
808 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 15:26:09 ID:ylYCbKqV] PCと箱でも違うだろ 相変わらず検証もせずにできるんじゃね?ばっかだな
809 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 10:31:35 ID:jqFDLiaS] C++/CLIが使えるっていうんだったらC#3.0も使える LINQも使えないこともない
810 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 14:39:46 ID:XqL6geom] 360で動かす気ならマルチスレッド化はゼッテー、とか聞いて速攻やる気無くなった
811 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 14:56:17 ID:49SSB0i8] ZUNEで動かすならシングルスレッドでおk
812 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 15:00:08 ID:H9PKMdul] ロスプラの記事? あれはやる気なくなる そもそもXNA マルチスレッドのサンプルっつーか 情報がまったくないんだが
813 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 15:11:31 ID:EmgsrfLc] >>807 BoostがXNAの代わりになるんだ、へ〜(棒読み
814 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 18:02:08 ID:7kYlwlzQ] 今回のコンテスト程度のゲームならシングルスレッドで十分だろ どんなすげえ大作ゲーム作るつもりなんだよ 計画を聞かせてもらいたいね
815 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 18:12:35 ID:5/FT7FE1] 処理の重さと作品規模は全く関係ないわけで
816 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 18:16:06 ID:5KzUSteu] そうだ!スローモーションゲームをつくろう!!
817 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 18:27:14 ID:7kYlwlzQ] >>815 小規模で高負荷ってーと、パーティクル出しまくって弾幕〜とかやるぐらいか? ・・・それぐらいしか思いつかん俺もレベル低いな
818 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 19:03:19 ID:KeTdRw33] ゼッテーかどうかはともかく本腰入れるなら避けては通れないだろうなぁ>マルチスレッド
819 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 00:26:56 ID:Vk26lBz9] Draw1回にUpdate1回なら、Updateがマルチスレッドしてても、Draw完了まで空ループさせとくとかは? …日本語ヤバイので、脳内仕様だけどモデルも書く。 Draw()//60fps { if (threadA.count==0||threadB.count==0||threadC.count==0) return;//空ループ:処理落ち。 //同期処理 & 描画処理 threadA.count = 0; threadB.count = 0; threadC.count = 0; //描画処理の前に置くと、4スレッド並走。 } Update(){//入力とか60fps} threadOya //スレッド継承元 { public int count =0; threadOya() //コンストラクタとか { thread = new Thread(new ThreadStart(running)); thread.Start(); } void running() //60fps以上のハズ。 { thread.Sleep(0); if(count > 0 ) return;//空ループ:同期待ち //スレッド内処理、入力を見たり、行列を弄ったり。 count++; //boolでも良かった…。 } } スレッド内処理でthreadAの持ってるオブジェクトとthreadBの持ってるオブジェクトがぶつかったりすると、 すり抜けたり、残像に衝突したり、デッドロックする。
820 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 00:33:21 ID:9gm0l7t/] どういうゲーム作るかの前提無しに、プログラム設計だけ語っても仕方が無いだろ まずはゲーム内容を決めてから、必要ならマルチスレッド化を検討すればいい
821 名前:名前は開発中のものです。 [2008/03/10(月) 09:37:05 ID:wOwdHCnQ] 360のベータ終了しました
822 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 11:15:05 ID:oL43JEi6] >>813 なんかかわいそうな子みたいだから触るのやめたわ、私は。
823 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 13:07:19 ID:mR//SHEf] boostは最強だろ
824 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 14:05:52 ID:5xBAafCs] >>822 >>800 読んだ上で言ってる? 内部でnewするものは一切使えない インライン展開による処理コスト低減が目的じゃないなら素直にC#3.0使えよと思う
825 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 14:09:48 ID:Uj9vviuV] >>824 だったらそれでXbox360で動かしてくれよ。 話の流れが読めないやつだな。
826 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 14:21:59 ID:Bcod4ZKE] 自己満足の技術雑談とフレーム合戦ばかりで、ゲーム製作を実行する奴が少ない・・・ ワンダーウィッチの時の状況にそっくりた。
827 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 14:47:09 ID:wteaVBEy] ワーカーばかりでクリエイターがいない今の日本
828 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 15:57:34 ID:W43Q16wA] クリエイター(笑)
829 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 16:37:57 ID:MN338FyH] >>825 読めてないのはお前。 C#3.0はilレベルで互換性がある。 互換性が無い部分はLINQ等ライブラリに依存している部分のみ。 まさか>>472 を見て、ilレベルで互換性が無いと思ったわけではないよな? 普通に動く
830 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 16:41:37 ID:bMJbJ2iH] >>827 みたいな何か言った風で何も言ってない奴らばかりなのが今の日本
831 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 17:24:13 ID:sUorN5Yv] >>830 自己紹介乙
832 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 17:52:06 ID:BqL/OQgN] 言い合ってるより、ゲームつくったほうが早そうだな。
833 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 19:14:55 ID:RLf5EWSW] 某受賞作で、構造体の配列を自前でガベコレしてるのには泣いたので、 C++/CLIでもC#3.0でも、どっちでも良いから頑張ってほしい。 そして巨大な構造体の配列をポインターでやりくりするunsafeってネタも投下。 ttp://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=667325&SiteID=1 日本語でforums.xna.com ができれば、俺含めそう言う輩は幸せになれる事に気づいた。
834 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 20:33:58 ID:OjMru5Aq] >某受賞作で、構造体の配列を自前でガベコレしてるのには泣いたので、 でも、こうゆうの聞くとがんばろうとも思うよな。 自前でやってまでカタチにしてる姿勢は見習いたい。
835 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 20:53:45 ID:BQQtszMo] ガベコレが走る以上、言語レベルで頑張ってどうにかなる時が来るとは思えんけどねー。 ぶっちゃけGCとハードリアルタイムで求められるパフォーマンスをうまく実現できる 処理系も言語も見たこと無いよ。 むしろそのへんC#というか.NETがもっとも現実主義に見える。
836 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 21:07:53 ID:TDrO6x61] 細かいパフォーマンス気にしてる奴ってそんなギリギリの性能が必要なゲーム作るの?
837 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 23:19:34 ID:TpVcEEJ9] というかGCはCFだから遅いんだと思うが。世代別じゃねーし