【Xbox360】 XNA Game ..
554:名前は開発中のものです。
08/02/26 11:39:53 +Md91q6C
初めてXNAをやり始めたのですが、日本語の説明書はないのですか?
555:名前は開発中のものです。
08/02/26 12:03:02 PSiNRJla
ない。
英語の説明と、日本語でちょっと翻訳したサイトがあるから
見比べながら進めるといい
556:名前は開発中のものです。
08/02/26 12:06:15 gUk7N6wJ
英語にさえ抵抗がなければ情報には恵まれた環境
557:名前は開発中のものです。
08/02/26 12:18:31 2urv8Pyv
>>553
馬鹿が何人か胡麻すってただけだろ。
よく読んでみろ。
ひとつも要望を受け入れていない。全部かわされてる。
アンチは一人しかいないと思い込んで何か言ってる可哀相な奴もいるし。
XNAが糞なのも33%故障ハードなのも、何も解決してないだろ。
馬鹿だな。
558:名前は開発中のものです。
08/02/26 12:22:51 5Y6Ore0r
>>554
翻訳本あるよ
Microsoft XNA Unleashed ―グラフィックスとゲーム開発―
559:名前は開発中のものです。
08/02/26 12:44:59 yyM3wreG
XNAはこれからだ!(夕日に向かって走る開発者)
〜ひげねこ先生の次回作にご期待ください〜
以下、いつも通り.net信者による荒んだスレに戻ります。
560:名前は開発中のものです。
08/02/26 12:59:13 f17huFb2
>>558
1.0用と教えずに買わせるなんてワルだな
ま、英語ドキュメントで十分だな
561:名前は開発中のものです。
08/02/26 20:09:48 IjVf2kaq
>552
ムービーを見たい、見せたいが主目的なら勿論そうなんだろうけどね。
ひげねこ氏の個人的意見が聞けた価値はあると思うよ。
PS1PS2の頃の様な、いちいちムービー入れるようなのゲームが嫌って認識が、
xnaチーム内や今後のコミュニティできれば、それが一番好ましい。 俺がそうだからw。
逆に動画機能を増やしたが為に、ニコ動とかの転載をタダ切り貼りしだけの
ゲームと呼びづらい物が横行したら目も当てられない。
Shaderを使ってHDR以外の事をやらせるネタはまだ有る。
562:名前は開発中のものです。
08/02/26 21:24:44 f17huFb2
頭が固いな
563:名前は開発中のものです。
08/02/26 23:54:50 5+e5jrw3
GUIに関してなんだけど、まあ実装しないってのは分かったからもう良いんですけど、
>>522はゲーム作るのちょー工数かかるから、ちょっとぐらい工数減ったって一緒だろ!
って読めなくもない気がするのが気になる
そこってXNAのレーゾンデートルじゃないのかなぁ
564:名前は開発中のものです。
08/02/27 00:01:08 gUk7N6wJ
いや低レベルなところを面倒みるためのライブラリだし
565:名前は開発中のものです。
08/02/27 01:08:46 bBhvobFx
>>564
ひにけにの最初の方で言ってたじゃない
ゲームは楽しく作ろうとか、ゲーム制作の工数肥大化によってコンテンツ以外の部分に
手を取られるとか
そういう楽しくない面倒なだけのところはできるだけフレームワークでやるから
コンテンツ部分を作ってねって思想に基づくフレームワークだと思っていた
566:名前は開発中のものです。
08/02/27 01:41:16 cqy3gtFB
UIはコンテンツとは言えないってことか。
567:名前は開発中のものです。
08/02/27 02:20:29 l4fGQKhK
玄関開けたら5分でゲーム製作とか言ってたよな
所詮は絵空事か
>564がひげねこだったら笑える
結局フィードバックなんて聞く気なんかなくて、自分達の
都合の良い簡単なことしかやらない
>GSE 1.0 Refreshの時に自分がした作業の殆どがフィードバックを元にしたものだったので
単に改善の余地が多過ぎる糞だったってことだろ
別に期待も何もしていないが、できないことをさも簡単にできると言って
初心者を引きずり込むその性根が許せない
今すぐ誇大広告やめろ
>自分の作ったゲームをプレイしてくれる人達が楽しんでいるのをみるというのは一度でも経験するとやめられませんよ?
笑わせんじゃねーよ
568:名前は開発中のものです。
08/02/27 02:24:42 vkGiPy+h
>>567
いつもID変わるの待ってからの書き込みご苦労様です
流れどころか空気も読めないなら失せろ
569:名前は開発中のものです。
08/02/27 03:18:59 x/FL2loS
4分でレス返す君も相当な粘着だと思うけど?
これだけ荒れるってことは少なからず理由があるってこと。
それを軽視して一方的に押し付けてるだけじゃ、そりゃユーザーも消えてくよ。
信者が荒らしと同レベルじゃ話にならないって。
570:名前は開発中のものです。
08/02/27 03:33:06 ZOefSqv5
>>569
で?
571:ハコ太郎
08/02/27 07:39:14 fTrql+iS
フレームワークでやるべきことではないと思うけど
サンプルやコンポーネントという形で欲しいとは前から思ってる。
あと初心者の意見としては
コンテントパイプラインでアニメーション持ってきてるんなら
それを再生させる方法も標準で用意して欲しい。
アニメーションやメニューの部分は有志が作ってるのがあるけど
初心者にそれを探させて組み込ませるのは酷な話だと思う
簡単にゲームが作れるといってるけど
スキンアニメーション実装するよりデバイスロストの面倒見るほうが
簡単だと思うけどね。
XACT周りでは音楽を再生するとき
小節をABCBCというような形で再生させる方法が無いって問題があったと思う。
572:ハコ太郎
08/02/27 07:56:50 fTrql+iS
そう考えると
結局XNAがやってることは環境周りの抽象化で
初心者に優しいというのはちょっと違う気がするね
573:名前は開発中のものです。
08/02/27 08:23:31 Y+dvb887
低レベルなアホを面倒みるためのライブラリじゃないんだからネ
574:名前は開発中のものです。
08/02/27 08:25:40 bBhvobFx
>>572
そう、結局初心者というか、個人の制作者でひっかかるのは、動く物を作るところまで
持って行くところで、XNAはそれを強力に支援するものだと思っていた。
クロスプラットフォームとかはオマケでね。
>肥大化する昨今のゲーム製作現場では、ツール製作といったゲームに直接関係の無い作業に
>長時間掛かることが日常になり、それがあまりに長くなりすぎて自分の本業がゲームを作ることなのか、
>ツールを作ることなのか判らなくなることが少なからずありました。
>個人的にXNAが目指すべき目標は「ゲームを楽しみながら作れる」環境を提供することだと思います。
>違う言い方をすれば、XNAを使った人達がゲーム作りに集中できるような環境を提供することです。
>XNAチームの目標は、ゲーム製作者がプロジェクトを新規作成してから5分以内でゲームのコードが書けるということです。
>個人的にはこれを「玄関開けたら、5分でゲーム製作」と呼んでいます。
ひにけにからの引用だけど、個人的にこういうポリシーで天下のMSがゲーム制作フレームワークを作るのに
注力していますというのは、とても頼もしく思っていて、そこでその開発者の一人と会話できるラッキーに恵まれたときに、
>>522
>これらの大量の作業リストの末席に「簡単なメニュー表示を作る」という作業を加えても、
>全体の作業量の変化は無視できる範囲なのではないでしょうか?
ということを言われると、「やっぱXNA使ってもゲーム制作大変なのは大変だから、XNAチームが汗かいても大して楽になんないし、やらないよ?」
て言われたように感じてしまいました。
まぁその後の、GUI作っても使われない経験から作らんことにしますというのが主であって、上記は邪推すんなってことなんでしょうけど…。
GUI作るのは実は簡単で、大変だと思ってるのは君の思いこみだよと仰るなら、なにか別のところでゲーム制作が楽になるように
汗をかいて、XNAを使うと本当に5分でゲームが作れると思わせて頂きたいところです。
クロスプラットフォームとやらも良い物なんでしょうけども。
575:名前は開発中のものです。
08/02/27 08:44:20 p8GIJl6K
Ito居なくなって一気に暇になったな。セールストークと僕の理想のすれ違いなんてどうでもいいよ。
ぶっちゃけ環境まわりの問題で足止め食うのがいちばんムカつく。
URLリンク(forums.microsoft.com)
誰か同じような目に合ってるやついる? バイナリじゃなくてソースを提出する意味がわからんが、
そのソースですらランタイム足りてても動かないようにできてて萎えた。(なんだほにゃ字って)
Blogではだいぶご立腹のようだが、デバッグビルドで配布してたとかいうオチじゃねーだろうな。
576:名前は開発中のものです。
08/02/27 10:27:24 L8xhRnhE
通信のことで聞きたいのですが、
いわゆる、socketみたいなライブラリーは用意されてるのでしょうか?
windowsならTCP/IPでP2Pといった形が、DirextXで出来たのですが、
windowsと360では、勝手がちがうでしょうし、ライブラリーが吸収してくれる
ものかのかと思いまして。
360だと、ゴールドメンバーシップでマルチ対戦できるので、
単純な将棋みたいなプログラムをつくって、xna会員のフレンドと
お互い360で通信対極したいとおもいまして。
577:名前は開発中のものです。
08/02/27 10:32:00 Ee+aUcpQ
360でXNAのやつのデモ配信始まったけど遊んだ人いる?
車のとアクションのをいくつか遊んでみて思ったんだけどさ、オレが360で遊びたいのは
マシンパワーをふんだんに活かしたいかにも次世代機なゲーム、Halo3とかギアーズとかああいうの
なんだなーって気づいたよ。PCのフリゲで遊べるようなのを360で遊んでも面白くないなと
もちろんオレ一個人の意見でおそらく少数派だと思うけど、一応自分でもXNAちょっとかじり始めたところ
だったからなんかねーあーまとまんねーやチラ裏スマン
578:名前は開発中のものです。
08/02/27 10:49:23 igm36G3t
>>577
さすがに少人数で作るものとHALOみたいな大作は分けて考えた方が良くない?
一人でアニメ映画作る人がいる時代だから可能性を否定するつもりはないけどさ
大作を作りたいって言う人は何にどれくらいの工数がかかるのか全く見えてない
素人な人が多いなーって印象がある
それとマシンパワーだったらPCの方がはるかに高いよ
Core 2 Duoのマシンで何でもいいから動かしてみるといいよ
マシンパワーを使ったゲームって目標はいいけど、例にあげたゲームが釣りすぎる
579:名前は開発中のものです。
08/02/27 11:32:45 nTH4tms8
俺個人から言わせて貰うと、
昔のPCエンジンのボンバーマンとかモトローダーとかあの程度(と言ったら大変失礼なのは分かるが)のゲームでいいから、
みんなでオンラインで気軽に遊べる対戦モノ作品がいいな。
それかXBOX360から直接読み書きできる伝言板とか、メッセージどうこうのツール類ね。
XNAの環境でどこまで何ができるのか全く知らんけども。
(表現方面的に)マシンパワーをふんだんに活かしたいかにも次世代機なゲームの素人作品なんて全く興味ないよ。
勉強や趣味で勝手に好き好きで作ってる人(がほとんどだと思うけど)には関係ない話ですまん。
580:名前は開発中のものです。
08/02/27 11:55:02 C9+WQaUM
予算20億円と100人ぐらいのスタッフでXNAを使用したゲーム開発も夢だな。
581:名前は開発中のものです。
08/02/27 12:27:35 FtdPv/Qb
GUI付けるくらいならシーン管理とか付ける方が先だろ
582:名前は開発中のものです。
08/02/27 12:48:12 x/FL2loS
>>579
いいな、じゃなくて自分で作ればいいじゃない。
そのための開発環境でしょ?
何でそこで自分好みのゲームがないからって、こうあるべきだ、みたいな押し付けが始まるの?
>>581
シーン管理はサンプルがあるよ。
何から何まで取り込んでたらただのデブになる。
ただあんな使えない使わない算術ライブラリを大量に書いておいて、初心者に向かって工数も何もないと思うけどね。
583:名前は開発中のものです。
08/02/27 12:56:40 nTH4tms8
いや、だから勝手に好き好きで作ってる人には関係ない話って書いたんだけどね。
この先行われる予定の配布(需要)まで考えたら、
実際オンライン対戦ものくらいしかわざわざ落として遊ぶ人いねーんじゃねーの?という話。
XNAのサンプルみたいなのやってもつまらんし、逆にポリゴンバリバリで一見大作っぽいけど結局素人に毛の映えた程度のものなんて誰も落とさないんじゃね。
584:名前は開発中のものです。
08/02/27 12:57:56 v9GLKcCp
オマエ、本当に>521のこれ読んでから書いてるのか?
URLリンク(creators.xna.com)
すげーくだらねー事をするのにとんでもないコード量を要求してくるんだぜ。
585:名前は開発中のものです。
08/02/27 13:26:07 x/FL2loS
それがゲーム製作ってもんでしょ?
需要は、一般ユーザーならそうかもしれないけど
XNAに興味を持ち始めた人はどんなものでも欲しくなるだろうね。
586:名前は開発中のものです。
08/02/27 13:32:30 v9GLKcCp
フレームワーク作ってる奴が、低脳なのか、自己慢心のキチガイなのか。
俺はそこの所を純粋に知りたい。
587:名前は開発中のものです。
08/02/27 13:47:51 nTH4tms8
いや、おれはべつにXNA製作自体興味なくて、XNAで何か面白いもんあるのかただ気になっただけなんでw
(根本的にスレ違いなんでそこは謝るけど、他にXNAスレ見当たらんので)
まあ同期とったり何かとめんどくさそうだからアクションゲームは要求はしないけど、
例えばオン対戦の大富豪とかでも作るの面倒なの?
携帯ゲー製作より面倒なんじゃXNA意味ねーじゃん
588:名前は開発中のものです。
08/02/27 13:53:06 B6ARmRBJ
>>574
5分でってのは、ゲームの製作が完了するまでの時間じゃなく、
"すぐに各ゲーム依存部分を書き始められる"の意味だろ。
そのあたりをよく考えてみるべき。
あと、あれもこれも無いって言ってるやつはcodeplexにあるXNAラッパ使え
589:名前は開発中のものです。
08/02/27 14:03:44 g4UrQFjY
フレームワーク≠ゲームエンジン
590:名前は開発中のものです。
08/02/27 14:04:53 p8GIJl6K
大富豪作るのに大富豪のルーチンを書く以外に何が必要なんだ?
携帯開発ってカードゲーム用のライブラリが標準でついてるのか?そりゃ便利だね。
おっと>>576が置いてけぼりだ、だいたいお望みのネットワーク用のクラス郡あるよ。
PCをLANで繋げてパケット送受信くらいならすぐ試せる。ドキュメント見れ。
591:名前は開発中のものです。
08/02/27 14:24:40 B6ARmRBJ
>>587
>>590
携帯の場合、機種依存のほうが問題になるって
あとJavaの旧いのしか使えないから、言語的にも面倒だな
592:名前は開発中のものです。
08/02/27 14:28:00 L8xhRnhE
>>590
ありがとう。
windowでxnaはそれでいけそうですが、
xboxのほうは、liveがかんでるんですが、
同じようなコードで通信対戦プログラムできるのでしょうか?
593:名前は開発中のものです。
08/02/27 15:12:43 p8GIJl6K
>>xboxのほうは、liveがかんでるんですが
まぁそのせいで下準備のコードがちょっとめんどくさいんだけど、
>>同じようなコードで通信対戦プログラムできるのでしょうか?
これに関しては心配いらない。
あとは箱用に作るのに必要な料金さえ緩和してくれりゃな。
MS金だけはあるんだからただでやらせろよう。
594:名前は開発中のものです。
08/02/27 15:15:29 L8xhRnhE
>>593
ありがとう
595:名前は開発中のものです。
08/02/27 15:38:20 2UlhBHC9
このまえいい雰囲気だったので来たらまたこの流れでワロタw
グダグダしててもいいけど足の引っ張り合いは恥ずかしいぜ?
海外のフォーラムをみて考え直せよ
596:名前は開発中のものです。
08/02/27 15:54:30 l4fGQKhK
不毛な議論ご苦労様wwwww
開発者が対応しないと言ってるものをいつまでもグダグダと
あーでもないこーでもないと話して楽しいか?wwwww
早くゲーム作れよ、特にハコ太郎
将棋ゲームやってみたいからよ
597:名前は開発中のものです。
08/02/27 16:39:28 nTH4tms8
そーそー。早く対戦ツール作れよ。
素人にAIというかルーチン期待出来ないから、単純な対戦ツールでいいよ。
598:ひげねこ ◆oxtErU/kVM
08/02/27 16:53:42 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:名前は開発中のものです。
08/02/27 17:07:21 B6ARmRBJ
3: SM1.1以外のGPUでも動作させたい
ライトなゲーマーの方はしょぼいグラボ使ってることが多いので、
そういう環境でも2D描画くらいはできると助かります
あと、プログラミング初心者の教材に使う時に躓きました。
そういう人に限ってしょぼいPC使ってるので。
600:ひげねこ ◆oxtErU/kVM
08/02/27 17:13:01 nV5kjYID
同じプロジェクトでXbox 360とWindowsの両プラットフォーム使いたいという要望についてですが
Visual Studioの詳しい人に聞いたら、VS自体にアセンブリの参照をプラットフォーム毎に変更するという
コンセプトが無いので現状では同じプロジェクトファイルひとつで管理することはできなかったとの回答でした。
ただ、プロジェクトが複数に分かれている利点としては、プラットフォーム毎にインターフェースを変更しやすい、
(例えば現状でもWindowsとXboxのプロジェクトとではファイルを追加したときに表示されるメニューが違うなどが
ある)
#if XBOXの様にファイル全体を囲うことなく、単にプロジェクトに追加するかしないかなのでコードの可読性が
あがるのと、ひとつのプロジェクトにしてしまうとWindows版でフォームを使ったときにコード生成されている
部分が#ifでは対応できないという問題があるとのことでした。
ただし、今後はZuneを含めてサポートするプラットフォームが3つになるので、複数のプロジェクトを
管理できる機能を追加していきたいとのことでした。
例えばファイルを追加、名前変更、削除などをしたときに、WindowsとXboxの
両プロジェクトで同期をとるようにする機能などがアイディアとしてはあるそうです。
それ以外にも、マルチプラットフォームをVS上で管理する上で欲しい機能があったら連絡してください
とのことでした。
601:名前は開発中のものです。
08/02/27 17:14:51 p8GIJl6K
あんたこれから常駐する気かw
>SM1.1以外のGPUでも動作させたい
XNAって基本的に固定機能パイプライン用のステート設定項目削られてんじゃん。
あれ復活させて。360には固定機能シェーダは〜てんなら
BasicEffectでエミュレートさせるのでも良いけど。
エフェクトファイルに書いて下さいってのは勘弁。
602:名前は開発中のものです。
08/02/27 17:26:33 Blhcupwm
フレームワーク屋ライブラリ屋うざい
ひととおり完成させたゲーム作った上でフレームワークを語るならわかるが
ゲーム作らずに仕組みばっかり作るのは下らない自己満足
603:名前は開発中のものです。
08/02/27 17:27:02 l4fGQKhK
>固定機能
いらねーよ
asmも記述できなくなる時代だぞ?
604:名前は開発中のものです。
08/02/27 17:38:55 x/FL2loS
どうでもいいからDirectX10専用のXNAを早く作り始めてよw
箱は無視でいいからさw
605:名前は開発中のものです。
08/02/27 17:55:23 FsrER9nz
>>587
ゲーム自作できない奴の遊ぶだけスレ(家ゲ板)
【XBOX】XNAクリエイターズクラブ遊ぶだけスレ【LIVE】
スレリンク(famicom板)
606:名前は開発中のものです。
08/02/27 17:55:49 sLTAwTu/
XNAのサンプルってcreators.xna.comの所と、他にどこかある?
607:名前は開発中のものです。
08/02/27 18:17:33 vDOW+5md
うーん、俺はひげねこの言ってる事も分かるけどね。
つーかさ、今の時点でもウィンドウみたいなの用意するのにそんなに手間かかんねーだろ。
これ以上、楽にしたいんなら、本格的ゲーム制作なんて辞めて、素直にXBox360で配布できるRPGツクールの要望出した方が良いね?
608:名前は開発中のものです。
08/02/27 18:24:53 vDOW+5md
コンパイルエラー強化
PCでのコンパイルは通るのに、実機で試してみると意外な所からエラーが帰ってくる。
PCでのコンパイル時で完全に実機でも通るほどエラーチェックを厳しくする事は出来ない?
609:名前は開発中のものです。
08/02/27 18:26:10 pA3Q2Mma
>動画再生
オープニングやエンディング、ちょっとしたイベントシーンに使いたいこともあるかもしれません。
3Dであればただの動画よりも、リアルタイムに動きをつけたイベントシーンの方が面白いですが、
2Dだとスクリプト的な制御だけでは表現が難しいこともあるため、動画で楽したいってのはあります。
(Flashで作られたアニメーションを再現するのが難しいので、そのまま動画にして再生するなど)
Vector Graphics が欲しい……。
610:ひげねこ ◆oxtErU/kVM
08/02/27 18:42:09 sG5OgzFC
GUIに関しては私の言葉不足で誤解を招くような表現になってしまってすみません。
私が言いたかったのは「GUIの表示部分が無いのが一番重要な問題じゃないですよね?」ということです。
例としてDQやFFのショップ出したのは、たとえ表示部分のライブラリを提供しても
あんまり作業量減らない、これで本当にゲーム製作のスピードアップになるんだろうか?
本当の問題は別のところにあってGUI表示とイベントハンドル部分は
問題の根幹ではないんじゃないですか?ということです。
っていうか、本当はDataBindingのことか!って突っ込んで欲しかったんですが……。
ちなみに、データバインディング使うとお店のシーンのかなりの分の処理をする必要がなくなるはずです。
今までもGUIの要望はあるのですが、そのどれもが既存のGUIライブラリが欲しいという
要望ばかりで、実際の問題が見えてこないんです。
例えば、Windowsの場合はゲームと違って同期処理が平気で行われているので
大きなリストを表示する場合に、全部が表示されるまで数秒掛かるなんてのは普通ですが、
ゲームの場合ではそれが許されません。表示するまでの間にも、キャラクターは動き回るし、
いろんなアニメーションが再生されてたりするわけです。
そういった非同期処理を実現するには既存のGUIライブラリではどうしても冗長なコードに
なってしまうんです。だったら、最初っからそういったものも視野に入れたGUIライブラリを
作るべきなのでは?と思うわけです。っていうか、第一WinForm自体がマルチスレッドに
対応していませんしwww
そんな訳で、もっと皆さんの意見を聞いてみたいです。
611:名前は開発中のものです。
08/02/27 18:56:24 l4fGQKhK
>610
対応していませんしwwwじゃねーよ
さっさと対応しろ
いつまでも同じ事言ってんじゃねーぞ
612:名前は開発中のものです。
08/02/27 19:02:55 3Ur8Sj5B
GUIはDirectXのサンプルがCustomUIを使っているみたいに簡単な表示目的で欲しい。
Gemなんかでもアルゴリズムを説明するのに使っているでしょ。
リストをクリックして表示がどう変わるのかを見るとかね。
613:名前は開発中のものです。
08/02/27 19:06:21 FtdPv/Qb
XAML欲しい
>>609もGUIも解決
614:名前は開発中のものです。
08/02/27 19:08:04 pA3Q2Mma
>GUI
・項目のリスト表示・管理(メニュー周り、スクロール付き)
・はい/いいえなどの選択肢ウィンドウ(メッセージボックス)
・汎用的なウィンドウの表示、Order、オープン/クローズアニメーション
・ウィンドウスキン
・その他ゲームに良くある機能など
個人的にはライブラリというよりは、
叩き台にできるサンプルが欲しいかなと。
615:ひげねこ ◆oxtErU/kVM
08/02/27 19:08:20 sG5OgzFC
>>571
>XACT周りでは音楽を再生するとき
>小節をABCBCというような形で再生させる方法が無いって問題があったと思う。
XACTの機能でできそうな気もしますが確認します。もし現状ではできなくとも、
Notifyイベントに対応して欲しいという要望があるので、それがあれば実現できると思われます。
>>574
「玄関開けたら5分でゲーム製作」は、他の面倒なことに時間を割くことなく、直ぐにゲーム製作
に入れるという意味での目標です。現状では実現しておらず、目標達成を目指しているところです。
>>586
愛すべきバカと呼ばれたいです
>>593
>あとは箱用に作るのに必要な料金さえ緩和してくれりゃな。
ごめんなさい、今のところ、それがチームでの唯一の収入源なんですwww
616:ひげねこ ◆oxtErU/kVM
08/02/27 19:28:49 sG5OgzFC
>>601
具体的に、どの固定シェーダー機能が欲しいのか詳しく。
マルチテクスチャの変態的なステージ設定が欲しいわけではないですよね?
>>604
>箱は無視でいいからさw
そんなご無体な……
>>608
>コンパイルエラー強化
確かにそうですね、要望としてだしておきます。
また、デスクトップ.NetにはNetCFに無い機能で必要性の高いと思われるものを見つけた場合は
再度連絡してくれるとありがたいです。
例としてはオリジナルの.NetCFには無かったStopwatchは既に使えるようになってたり、stackallocの
追加要望なども来ていますので。
>>611
根本的な問題点が判らない限りは同じことを問い続けます。
「あなたにとって何が一番重要な問題なんですか?」と、
>>614
GUIについては、まずはCustumUIのようなサンプルが欲しいといったところに落ち着くのでしょうか?
617:ひげねこ ◆oxtErU/kVM
08/02/27 19:34:25 sG5OgzFC
はう、小一時間とか言ってたのに二時間半も居ついてしまった………
もう落ちます。
一通り答えた筈ですが「スルーすんな!」という方は再度突っ込んでください
ではでは
618:名前は開発中のものです。
08/02/27 19:40:20 pA3Q2Mma
>>616
>GUI
そうですね。
ただ、CustomUIはただのコントロールの集まりだった気がするんで、
ツール的なものを作るには良いと思いますが、
個人的に欲しいのはよりゲームで使われる形に近いものかなと。
>>609
がスルーされた気がする……。
619:名前は開発中のものです。
08/02/27 19:57:11 MufxNy8F
574と同じ意見で、あと自分の意見
理想系としては、C++Builderみたいな感じで
レイアウト決まってるところに適当に貼り付けていって
とりあえず動くのは、それで作って
画像とか用意できたら、素材が出来次第
適当なプロパティに突っ込むとそれが反映される
そういう手軽さはあってもいいと思うんですがどうでしょうか?
パフォーマンスを要求されるゲームの中で使えなくても
タイトル画面、コンフィグ画面、タイトル画面、ロード画面、セーブ画面なんかでは
特にさっさと作り終わりたい部分だと思うし。
ゲーム作れるぐらい知識あればこれぐらいは簡単に作れるって話も上でされてるんですが
オフィシャルでかゆいところに手が届くようなのがあれば
(ビルドインだからパフォーマンスが良いとか、簡潔な書き方ができるとか、リソースエディタと連動するとか)
プラットフォームとして面白いんじゃないんでしょうか
あと、FSMみたいなシーン管理ってあるんでしたっけ?
これもソースを簡潔に書くためには欲しいところです。
今あるもので作れるかもしれないけどあれば便利みたいな
いわばC++におけるboostみたいな扱いでもいいと思うんですよね
WTLのように用意はしてるけどサポートはしないみたいなのでも。
そもそも3次元座標同士の足し算とかが
展開して書いたほうがパフォーマンスあがるっていうのにマクロで書けないのもなんだかなーと
コンシューマーの世界へようこそというなら、マクロを使わせて欲しい
620:名前は開発中のものです。
08/02/27 19:57:35 QnThtTGI
SilverlightのWPF UI FrameworkとDLR取り込めると面白そうだね
ゲーム開発だと高級すぎる気もするが
621:名前は開発中のものです。
08/02/27 20:24:42 p8GIJl6K
>>マルチテクスチャの変態的なステージ設定が欲しいわけではないですよね?
ゴメン言いたいこと伝わってねえな。単純にPC上なら固定機能のみで作動して欲しいってことと、
そこで360とのクロス性が問題になるならBasicEffectにステージ設定とか
追加して抽象化すりゃいいんじゃねぇのって提案。
>>ごめんなさい、今のところ、それがチームでの唯一の収入源なんですwww
そこはホラ、開発者に360買わせるアピールになりますよとか言ってさぁw
>>DLR
そういやこれの基盤たるLCGがCFだとサポートしてないんだっけ。
せめてGCだけでも世代別になんねーのかなぁ。
622:名前は開発中のものです。
08/02/28 00:21:43 /rY3e8Lf
360の実機で動かすと、描画命令の発行が重すぎてせっかくの高性能GPUが完全に遊んでしまうのが勿体なさすぎです。
15000ポリゴンのモデルを80くらい個出しても60fpsで動くのに、テクスチャ付きのただの6ポリゴンの箱を100個くらい出すだけで処理落ちしてしまうのは辛い・・・。
できることならコンソール機のプログラミングでの常套手段である、GPUへの描画命令発行を別スレッドで動かす仕組みをライブラリ内で隠蔽できないでしょうか。
発行した描画命令を内部でキャッシングしておいて次のフレームの頭で別スレッド動作させる、みたいな感じで。
描画命令発行を別スレッドに追い出すことでゲームロジックに使えるCPU時間が圧倒的に増えるでしょうから、相対的にCPU性能の低い360で動かすにはぜひとも欲しい機能です。
もし描画のマルチスレッド化が難しいのであれば、せめて描画命令の発行自体がもう少し軽くなるとありがたいです。
ちゃんと計測したわけではないので単なる憶測で申し訳ないですが、たとえ同じシェーダー・同じパラメータであってもすべての命令がキャッシングされずに無条件に全て送り直されているかのような挙動に見え、
ちょっと発行バッチ数が増えただけで簡単に処理落ちが発生するのでゲームが作りにくくて困ります。
高性能なはずのXBOX360でのゲームプログラミングなのに、『21世紀にもなって「ショットを撃つと処理落ちするから発射数を半分にして威力を2倍にするか……」』みたいな調整が必要になってしまうのはいかがなものかと。
ライブラリレベルでの高速化はみんなが恩恵を受けられるので、もし何かチューニングの余地があるのであれば、ぜひ考慮していただきたいです。
623:名前は開発中のものです。
08/02/28 21:41:12 Onhii9oo
というメールをMSに送った、
っていう話ですか?
624:名前は開発中のものです。
08/02/28 22:11:02 Kfd7v7e6
少人数のゲーム制作って考えると作り込んだモデルより
幾何学的でアブストラクトな表現は都合がいいと思うけど
>>622のレス読むとそういう表現は難しそうだね
625:名前は開発中のものです。
08/02/28 23:47:44 7jyXioPU
次世代機のCPUはPowerPCからX86に戻るかもしれない。x86なら競争が激しいから性能も価格もこなれている。もうMacが見捨てられて次はゲーム機かな
626:名前は開発中のものです。
08/02/29 01:21:41 79yrB4s/
XBOX360版XNAでIMM32のような機能はありますか?
627:名前は開発中のものです。
08/02/29 11:12:33 cyHkH63n
619みたいな要望なんだけれど、俺はWPF用のデザインテンプレートを
どうにか流用できないかな、と考えてた。
ぜんぜん詳しくないのでフレームワークにそういう機能がいいのか、
コンテンツエクスポーターで変換した方がいいのかは判らないが。
まあつまり俺がいいたい一番の問題はExpressionシリーズ、もう少し安くならない?
てことなんだがw
628:名前は開発中のものです。
08/02/29 13:30:49 5SO5wm1v
win、360で通信対戦昨日をつけたいのですが、
参考になるサイトありましたらおしえてください。
629:名前は開発中のものです。
08/02/29 13:49:35 KKyqcPHE
付属のドキュメント(英語)と、
URLリンク(creators.xna.com)
ここにあるサンプル。
630:名前は開発中のものです。
08/02/29 13:50:23 KKyqcPHE
って通信一般のことかな?
631:名前は開発中のものです。
08/02/29 14:00:06 5SO5wm1v
>>630
TCP/IP通信のようなことをやりたいのです
とりあえず教えていただいたサイトをみてみます
ありがとう
632:628
08/02/29 16:19:52 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:名前は開発中のものです。
08/02/29 16:29:38 KKyqcPHE
無理
通信はCC非会員は、WindowsでLAN内だけ。
Live使う場合は360、WindowsともにCC会員必須。
634:名前は開発中のものです。
08/02/29 16:30:42 KKyqcPHE
LAN内ってSystemLinkね、念のため
635:名前は開発中のものです。
08/02/29 16:38:02 5SO5wm1v
ありがとう。よくわかりました。
636:名前は開発中のものです。
08/02/29 17:56:37 rwW9Blwo
単純にオンライン対戦可能なオセロとかトランプとか作りたいんだが
もしかして1人動作確認は無理?
360とPCで対戦できる様にしとけば、360vs360でも動く事が期待でき
るとか、そんな都合がいい話は多分ないよね?
637:名前は開発中のものです。
08/02/29 18:08:29 sIYszjWf
いや、それでいいはず。
でも実際にやってみないとなんとも言えないけど、
サンプルで特別なことやってるようにも見えないし。
PC3台に360を1台でSystemLinkまでは確認できてるが、
まともにゲームの体裁整えてないと他人とつないで試すわけにもいかんしなあ。
638:名前は開発中のものです。
08/02/29 19:11:46 eQkbLnZK
C#をDirectX抜きで使っていたのでよく知らないんですが、
Managed DirectXとXNAには互換性は無いんですよね?
639:名前は開発中のものです。
08/03/01 01:24:32 lpucU8xl
>>629に紹介されてるサイトのサンプルには
SystemLinkのサンプルはないです?
640:名前は開発中のものです。
08/03/01 01:31:48 HuE7K8R1
>>638
互換性がソースコードレベルでの話しならイエス。
ぶっちゃけどちらもDirectXのラッパーだから大して違いはないけど。
641:ハコ太郎
08/03/01 08:42:57 AGjJHtOG
データバインディングはデバッグ窓としては有効だと思うけど
ゲーム内で使うメニューなどはボタンを押した時に処理を入れたい。
642:名前は開発中のものです。
08/03/01 11:11:26 8ym58WA/
zuneがサポートされるみたいだけど、日本で発売されるの?
zune向けにプログラムを書く場合、輸入しないとダメかな?
643:名前は開発中のものです。
08/03/01 13:53:11 7cruTluh
BoundingBoxとBoundingSphereで当たり判定を取ろうと思っていたのですが、
BoundingSphereの方は毎フレーム移動するので、中心の座標を移動させたいです。
ですが、そのようなインタフェースは無いようなので、毎フレーム新しいBoundingSphereを作って
入れ替えてやらなければいけないのかなと思っています。
その時のパフォーマンスを気にしているのですが、オブジェクトではなく構造体なら
毎フレームnewしてもGCの対象にはならず、パフォーマンスへの影響は無い(のか極めて小さい)
という理解で合ってますでしょうか。
気をつけなければいけないのは、オブジェクトの生存期間と数だけ?
644:名前は開発中のものです。
08/03/01 13:58:01 mfMgIQq4
構造体だから気にしなくていい
その前にBoundingSphereのフィールドは普通に書き換えできるぞ
だからってフレームを超えてキャッシュしとく意味はないけど
645:名前は開発中のものです。
08/03/01 14:05:26 7cruTluh
>>644
了解です。
最初に大量に作って使い回し云々は全部オブジェクトの話で、構造体には関係ないんですね。
646:名前は開発中のものです。
08/03/01 14:30:12 iss0MbNP
>>645
C#では構造体をスタック上に作る場合もnewキーワードを使ってて、
そこは混乱しやすいポイントではあるね。
647:ハコ太郎
08/03/01 14:39:31 AGjJHtOG
構造体のnewはメンバを全てNULLか0で初期化するだけだったはず
648:名前は開発中のものです。
08/03/01 17:11:56 E+4DCZor
URLリンク(xna-studio.jp)
花やしき行ってくるけど、誰もいなかったりしないかドキドキする。
649:名前は開発中のものです。
08/03/01 18:13:27 BJdyKXU8
貸し切りでただで乗り放題なんで行って損はないそ゛。
650:名前は開発中のものです。
08/03/01 20:48:19 KNB/+8nD
Manegedの時よりXNAの方が処理スピード早くね?
651:名前は開発中のものです。
08/03/01 21:01:28 BJdyKXU8
今行ってきた。
福引きで俺の後ろの人が本体あたった.....
652:名前は開発中のものです。
08/03/01 21:12:03 7cruTluh
XNA Remote Performance MonitorてのはWindowsでローカルで開発している時は
使えないんですか?
パフォーマンスチューニングするのに良い開発用の↑みたいなツールって無いですかね?
653:名前は開発中のものです。
08/03/01 21:13:55 ViryCY/U
>>651
七回やって全部缶バッジは萎えたwww
654:名前は開発中のものです。
08/03/01 21:39:38 HuE7K8R1
>>650
基本的にMDXよりもヒープの使い方に敏感だし、
算術ライブラリは参照渡しとコードのベタ書き(要は手動のインライン化)が徹底されてるから
使う側から見れば注意することが少なくなってるってのはあるかもね。
>>652
CLRProfiler
意図のわからんイベントだが、花やしきいいなァ・・・。
655:626
08/03/01 23:53:26 w3ZGIR9q
完全にスルーされてるけど、日本語チャットの実装したい人って他に居ないの?
656:名前は開発中のものです。
08/03/01 23:59:06 6CzHQ4+o
いやだって360自体にあるメッセンジャー連携と音声チャット使えばいいし・・・
657:名前は開発中のものです。
08/03/02 00:03:22 zzw5UN3t
日本語で新しい本が出てるね。
URLリンク(www.amazon.co.jp)
658:名前は開発中のものです。
08/03/02 00:03:42 keBEe7WT
>>656
Windowsの場合は?
自分はもうSystem.Windows.Formsで入出力窓作っちゃおうかなあとか思ってるんですが
659:名前は開発中のものです。
08/03/02 00:07:53 fERtkynk
NativeWindow使えばゲームループ中でもどうとでもなるんじゃね?
660:名前は開発中のものです。
08/03/02 00:43:32 l4v/PVfq
>>654
ユーザーの居場所検索、シャウト等メッセンジャーじゃカバーできない機能も沢山あるわけで
>>658
XBOXの人と話せないよね?
661:名前は開発中のものです。
08/03/02 00:53:02 WAxvXIYw
>>658
元が「360でのチャット」という話に対しての返答なのにWindowsを出されてきても
662:名前は開発中のものです。
08/03/02 00:55:04 keBEe7WT
>>661
ああいや、360の話は分かった、じゃあWindowsの場合はどうするのが良いんだろうって意味で書いただけで
>>656のレスにケチつけてる訳じゃないよ
663:名前は開発中のものです。
08/03/02 01:00:41 l4v/PVfq
>>661
360でチャットしたい人いるかなんて話はしてない
360でIMM32相当のAPIがあれば、WindowsPCとゲーム内チャットができるようにしたいという話
664:名前は開発中のものです。
08/03/02 01:05:55 jGKSdtCZ
>>657
\7,350は趣味で買うには高いよな。経費で買えるならいいけど。
665:名前は開発中のものです。
08/03/02 01:06:32 fERtkynk
>IMM32相当のAPI
確か「そんなものは無い」って話を聞いたことあるが・・・。
伊藤さんてるみー。
666:名前は開発中のものです。
08/03/02 01:32:38 o9Cw/3Oh
>>658
じゃあ作れ
667:名前は開発中のものです。
08/03/02 02:02:02 OS2eoImf
擦れ違いかもしらんが花やしきの様子書いておくか。
入りは意外にもかなりの盛況で作品台にもほぼ絶え間なく人が並んでいた。
客層もゲオタ以外の家族連れ、カップルと普段の客層と代わり映え無いほど。
出品作品をプレイすると福引きが出来て、ハズレはバッチだが当たりは
360本体で、俺の目の前だけでも3台用意されてた。
(もし俺の前に出ていたらそれ以上あったろう)
かなり太っ腹な対応で狙い目だったと思われ。
作品は作品台に並んでるのでもいかにも専門学校生が作ったレベルや
技術はあるが作り込みが全く未完成なのばかりでなんとか間に合わせた感が
強い。
MSKKが今後どれだけ掘り起こせるかに懸かってるだろう。
(期待してないが)
あと何で会場が花やしきなのかというとバンナム傘下の施設だから。
確実な利益のある新商品のプロモでもないのに偉く金かけてたな。
URLリンク(www.hanayashiki.net)
668:名前は開発中のものです。
08/03/02 02:11:22 l4v/PVfq
乙
669:名前は開発中のものです。
08/03/02 10:32:35 8ZJ0iEdC
URLリンク(d.hatena.ne.jp)
670:名前は開発中のものです。
08/03/02 12:33:42 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:名前は開発中のものです。
08/03/02 17:19:42 YDJ5z10X
XNA最大の問題点はパッドが実質非対応な点
672:名前は開発中のものです。
08/03/02 18:13:07 l4v/PVfq
>>671
何しにきたの?
673:名前は開発中のものです。
08/03/02 18:36:54 DkxH8Qas
URLリンク(www.famitsu.com)
アマチュアクリエーターのアイデアと想像力が結実した“XNA Game Studio Japan 2008 Spring Contest”の授賞式が開催
674:名前は開発中のものです。
08/03/02 19:02:50 oAhqdNLL
週末にちょろっと触ってみたんだが、
GameComponentをGameクラスのコンストラクタ時に登録しないと
GameComponentのInitializeを呼んでくれないんだけど、そういうモンなの?
気分的にはGameクラスのInitializeの中でアプリケーションの初期化終了後に登録したい感じだが
675:名前は開発中のものです。
08/03/02 19:42:00 +DPdH8iN
会場でもらった紙に書いてあったアドレス
XNAデベロッパーセンター
URLリンク(www.microsoft.com)
さあ、XNAをはじめよう!
URLリンク(xna-studio.jp)
XNA Game Studioフォーラム
URLリンク(forums.microsoft.com)
XNAで作るマインスイーパー
URLリンク(www.microsoft.com)
XNA GSE HELPの基礎
URLリンク(go.microsoft.com)
できるプログラミングXNA Game Studio Express
URLリンク(go.microsoft.com)
XNAビデオチュートリアル(英語)
URLリンク(go.microsoft.com)
Visual Studio Express Edition学習用資料集
URLリンク(www.microsoft.com)
手打ち疲れたお⊂(・ω・`)⊃
676:名前は開発中のものです。
08/03/02 19:44:48 D87i6yt5
おつかれ
677:名前は開発中のものです。
08/03/02 19:47:33 YgJJfq7J
スクショで見る限りかなりレベル高いよな
実際どーだったの
678:ひげねこ ◆oxtErU/kVM
08/03/02 20:14:42 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
URLリンク(www.wavosaur.com)
679:ハコ太郎
08/03/02 20:20:17 Lox6KhX3
へー出来たんだ
出張サポートセンターみたいな人だな
680:ひげねこ ◆oxtErU/kVM
08/03/02 20:24:15 75eB5Z/y
>>609
VectorGraphics
これはリアルタイムで処理するものでしょうか?それともツールで作ったものをポリゴンデータに落とし込む方法のどちらが良いのでしょうか?
個人的には後者の方が好きなんですが……
GUI要望
サンプルGUI
編集ツール(主に配置)
WPFとかSliverLightとか(コンパイルする)
WTLのような扱いでも可(サンプルGUIと一緒?)
VectorGraphicsのサポート
>>621
えっと、現在のSpriteBatchやBasicEffectの機能を使うのであればDX7上で動いて欲しいということでしょぅか?
>>622
返事が長くなるのでちょっと待ってください
その間に、こちらから質問
1 コンテントを用意する時の苦労や困っていることがあったら教えてください
2 皆さんが使っているコンテント(3Dモデルや、テクスチャとか)を作るのに使っているツールはどんなの使っています?
681:名前は開発中のものです。
08/03/02 20:37:36 JDxaaE78
とりあえずしょぼいC#でなくC++で書かせろと
話はそれからだ
682:名前は開発中のものです。
08/03/02 20:40:58 zkaFSkJm
そもそも、XNAの登場に合わせて、なぜ都合よくおまえらや昨日のコンテストに参加した連中が
C#ができるのか教えてくれ
683:ひげねこ ◆oxtErU/kVM
08/03/02 20:50:53 75eB5Z/y
>>622
もう少し詳しい情報をいただけないでしょうか?100と言うのは実際のゲーム中にだしたとき(他の処理も入っているとき)なのか
単体でパフォーマンステストしたときに遅くなったということでしょうか?
もし、よろしければメル欄のアドレス宛てにプロジェクトファイルを送っていただけないでしょうか?こちらの検証させてもらいます。
Xbox 360上でのパフォーマンスについてですが以下のMesh Instancing Sampleが参考になると思います。
URLリンク(creators.xna.com)
このサンプルはメッシュインスタンスのサンプルコード以外にも、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
08/03/02 21:16:04 75eB5Z/y
現状、こちらで把握しているなかでボトルネックとなっているのはマネージサイドによるメモリメモリアクセスです。
例えば、簡単なパーティクル表示で、ひとつのパーティクルは単純なテクスチャなしの四角形(2つの三角形ポリゴン、頂点にはVector3とColor)を表示したとします。
パーティクルの動きはあらかじめ設定された速度で動き画面端に届いたら移動量を反転するというものです。このプログラムを5000個のパーティクルを表示したときに
それぞれに掛かった時間を計測すると
パーティクルの移動処理に1ms
マネージメモリに頂点を書き出す部分が4ms
そして、SetDataを呼んでDrawPrimitiveを呼び出すのに掛かった時間が0.14ms程度です。
ここから、頂点データのコピーに掛かる時間をメモリ帯域と、ユーザーメモリからカーネルメモリへの変更コストを差し引くと、マネージサイドとネイティブサイドの
オーバーヘッドは非常に小さくなります。ですから、このオーバーヘッド部分を隠すためにマルチスレッド化しても効果が期待できないというのが現状です
次にレンダーステートのキャッシングについてですが、レンダーステートがGraphicsDeviceのみによって変更されるのなら問題は無いのですが、
レンダーステートはそれ以外にもネイティブサイド内のEffectによっても変更されます。Effectによるステート変更をマネージサイドのGraphicsDeviceと
辻褄を合わせるためにはせっかくネイティブサイドで動いているEffect実装部分をマネージサイドで実装しないといけません。そうなると、
今度はマネードサイドのEffect実装コードがボトルネックになり、ステートキャッシングによる最適化を相殺どころか逆に遅くなってしまいます。
更に続く
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4654日前に更新/279 KB
担当:undef