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
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だから遅いんだと思うが。世代別じゃねーし