トップページgamedev
988コメント368KB

【Xbox360】 XNA Game Studio その7 【C#】

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2008/07/26(土) 14:40:23ID:c7wBa1iE
前スレ
【Xbox360】 XNA Game Studio その6 【C#】
http://pc11.2ch.net/test/read.cgi/gamedev/1210637248/

XNA Creators Club Online
http://creators.xna.com/

XNA Game Studio 2.0 ドキュメント (日本語)
http://msdn.microsoft.com/ja-jp/library/bb200104.aspx
01451282008/08/05(火) 19:59:18ID:jLU+uiaZ
ここってこんなアホ(>>144)しかいねーのかよ?
こっちが下手に出てりゃ、ヘタレの分際で調子こきやがって。
そんなアホ過ぎる方法じゃフラスコみたいな形のゲージに添って
赤い水が増えたり減ったりするみたいな表現はできないだろ。
少しは頭使って回答しろよ。

このあと、必ず勘違いした馬鹿が出てくるのは見えてるがw
質問者より回答者が人間として偉くなったみたいに勘違いしちゃう馬鹿がなwww
01461282008/08/05(火) 20:04:56ID:jLU+uiaZ
マジで質問の意図すら理解しないで糞回答する奴って迷惑。
01471282008/08/05(火) 20:07:32ID:jLU+uiaZ
ゲージの”バー”の画像を”枠の形に切り取って”使いたいのですが

って言ってんのに、バカどもがぞろぞろとそろいも揃って
アルファつきpng使えだとよwwww


バカすぎるだろww

恥ずかしすぎるだろwww

ゆとり過ぎるだろwwwwww
0148名前は開発中のものです。2008/08/05(火) 20:09:20ID:XRVkAEQt
>>145
その用途なら普通に2つの長方形 (水なしフラスコ、水ありフラスコ) を SpriteBatch で描画するだけでいけるじゃねーか。
http://msdn.microsoft.com/ja-jp/library/bb196419.aspx
これでわからないようなら知らん。
本当に「切り抜き」たいならシェーダでも使え。
0149名前は開発中のものです。2008/08/05(火) 20:10:08ID:CRT05pot
いや、やりようでできるんじゃねえか?w
そういう応用力もきちんと説明できる日本語力もないんじゃ答えるだけ無駄、って言われるだけだよ?w

・・・145が本当に128本人ならそう答えるところだけどw

一般的にゲームでやっていることでXNAで出来ないことは(パフォーマンス的なところや入力系の問題を除いて)
殆どないからさ、本人の努力で大抵のことはなんとかなるんだぜ?

あ、アレが出来ない、これが出来ないっていう不毛なレスも無駄だからやめとけw
0150名前は開発中のものです。2008/08/05(火) 20:15:11ID:jLU+uiaZ
>>148
バカすぎるだろ、、、、

水が100段階で増減するなら
pngを100枚連番で用意でもしとけって事か?


要するに俺が聞きたいのは

145のフラスコみたいな体力ゲージを描くとした場合、

1.赤い水をHPに応じて2Dポリかなんかでバックバッファに矩形表示する。(これなら量は自在に増減可能)
2.その上に、これはpngでも何でもいいがフラスコの絵を重ねる。
3.1と2で出来上がった画像を、フラスコ型に切り取ってフロントバッファに転送する。

ってこった。
0151名前は開発中のものです。2008/08/05(火) 20:15:54ID:CRT05pot
あー148が正解言っちゃったw
0152名前は開発中のものです。2008/08/05(火) 20:19:16ID:jLU+uiaZ
ゆとりマジこえぇ・・・
0153名前は開発中のものです。2008/08/05(火) 20:21:40ID:XRVkAEQt
>>150
違う違う。例えば半分水が入ってる状態なら
水なしフラスコの画像の上半分をお前さんの表示したい領域の上半分に、
水ありフラスコの画像の下半分を下半分に表示するってことだ。

で真面目に 150 で提案されてることをやろうとしたら、おそらく次のようにする。
・ RenderTarget2D とマスク用のテクスチャを用意しておく。
・ RenderTarget2D に HP に応じて水を描画する。
・ RenderTarget2D.GetTexture で得たテクスチャとマスク用テクスチャを
  シェーダのパラメータに設定し、矩形を描画する。
・ シェーダ内の処理 (ピクセルシェーダ) で水テクスチャとマスク用テクスチャを参照し、アルファ値を動的に変更する。
が、俺の言った方法よりは重いので薦めない。
あとシェーダ自体も慣れなければ書くの辛いので…あとはわかるな?

>>151
言っちゃったw
0154名前は開発中のものです。2008/08/05(火) 20:26:24ID:jLU+uiaZ
>>153
バカなの?
ねぇ、バカなの?
本物のバカなの?
救いようの無い馬鹿なの?
フラスコの形って知ってる?
フラスコの形って知ってる?
フラスコの形って知ってる?
0155名前は開発中のものです。2008/08/05(火) 20:27:50ID:jLU+uiaZ




          僕がバカでした。



0156名前は開発中のものです。2008/08/05(火) 20:28:00ID:XRVkAEQt
こりゃ手に負えんw
0157名前は開発中のものです。2008/08/05(火) 20:29:26ID:CRT05pot
へー。2Dでもシェーダ使えたんだ。2D殆どいじってなかったから知らなかった。

・・・じゃあ本当にどうでもなるじゃんかwww ピクセルシェーダで座標見て切るとかでもいいし。

>>155
ある意味・・・本当の大馬鹿だったかもしれません・・・俺も含めて・・・
0158名前は開発中のものです。2008/08/05(火) 20:34:35ID:jLU+uiaZ
>>157
すいませんが一緒にしないで下さい。
0159名前は開発中のものです。2008/08/05(火) 20:34:48ID:CRT05pot
・・・レス相手間違えたw

ま、いいや、俺本当の馬鹿だしw 完璧なやり方提示しているのにキレる方って尊敬できますw
0160名前は開発中のものです。2008/08/05(火) 20:39:12ID:jLU+uiaZ
いいえ、本当のバカは僕です。
0161名前は開発中のものです。2008/08/05(火) 20:39:18ID:XRVkAEQt
>>157
それ知らないとポストプロセスに苦労するぜ。
DirectX の XYZRHW みたいな便利座標系はないがスクリーン座標系は直接指定可能。
SpriteBatch はスクリーン座標系を直接指定して描画してる。
0162名前は開発中のものです。2008/08/05(火) 20:43:49ID:CRT05pot
なるほど、まあでもほとんど3Dテクスチャで処理しちゃってるだけだからさして困らないんだけど、
知っておいて損はなさそうです。TNX!
0163名前は開発中のものです。2008/08/05(火) 20:45:09ID:jLU+uiaZ
でも、フラスコみたいに増減が水平ならいいですが
ちょっとテクノチックなゲーム画面にありがちな斜めのゲージだったりにすると困ります。
今すぐシェーダーを使わない方法を教えてください。
0164名前は開発中のものです。2008/08/05(火) 20:45:55ID:6vQ1+vNb
まあ絵の切り抜きだが、Direct3Dでやるなら
アルファテスト、ステンシルバッファあたりか。
カラーキーは、シェーダでやる形になるので
あんまりお勧めしないな。
0165名前は開発中のものです。2008/08/05(火) 20:55:25ID:CRT05pot
・・・なんてやっているうち

ttp://msdn.microsoft.com/ja-jp/library/bb196419.aspx
・・・間違い見つけちまったよwww

publivoid ってなんだよwww
0166名前は開発中のものです。2008/08/05(火) 20:57:43ID:jLU+uiaZ
人の誤りを笑うなんてあなたは最低の人間です。
0167名前は開発中のものです。2008/08/05(火) 20:57:47ID:85f2k67H
ステンシルバッファじゃだめなの?
0168名前は開発中のものです。2008/08/05(火) 21:02:37ID:CRT05pot
>>167
もちろんOKのはずだけど
2Dで、簡単に、
という前提だといい方法ありましたっけ?
てかID:jLU+uiaZかわいいよハアハア
0169名前は開発中のものです。2008/08/05(火) 21:10:40ID:CRT05pot
てかシェーダ使えば絵のテクスチャとキー用のテクスチャ合成できるからそれが一番手っ取り早いお・・・
パラメータひとつでゲージの長さ決められるし、凄くシンプルにできる・・・
0170名前は開発中のものです。2008/08/05(火) 21:16:43ID:jLU+uiaZ
さっきまで知らなかったくせに、教えてもらったとたんに知ったかしないで下さい。
気持ち悪いです。
0171名前は開発中のものです。2008/08/05(火) 21:21:55ID:CRT05pot
いや別に2Dで使えることを知っただけで3Dでは普通につかってるんよ?w
0172名前は開発中のものです。2008/08/05(火) 21:23:14ID:jLU+uiaZ
きめぇw
知ったかする奴ってぜったい「〜るんよ」っていうんだよなw
きめぇw
あぁきめぇきめぇw
0173名前は開発中のものです。2008/08/05(火) 21:23:48ID:jLU+uiaZ
つうかテメェに聞いてねーからw
0174名前は開発中のものです。2008/08/05(火) 23:12:23ID:V1/+0Eqt
久しぶりにスレが加速してるなと思ったら、なんか痛いのがいるな
なんで
0175名前は開発中のものです。2008/08/05(火) 23:25:03ID:A217Pr/s
自分じゃ何も出来ないハイパーゆとり世代ですね。わかります。
01761282008/08/05(火) 23:25:28ID:Z6zYKvyQ
えと、自分128なのですが・・・えと・・・

とりあえず、言われました2枚の画像を使って表示する方法を取ろうと思います。
ですが、>>163でjLU+uiaZさんが言われてるように斜めに切り取りたい時はどのようにすればいいでしょうか・・・
単純な斜めなら画像自体を斜めにすればいいと思うのですが、例えば円形のゲージの場合切り取る角度が変わると思うのです。
シェーダとやらを使えばそういったことも可能になるのでしょうか
0177名前は開発中のものです。2008/08/06(水) 00:02:33ID:TFOMd9ZY
>>176
つ ttp://memeplex.blog.shinobi.jp/Entry/52/
0178名前は開発中のものです。2008/08/06(水) 02:50:16ID:aVAWht/I
145 :128:2008/08/05(火) 19:59:18 ID:jLU+uiaZ
ここってこんなアホ(>>144)しかいねーのかよ? (略)


176 :128:2008/08/05(火) 23:25:28 ID:Z6zYKvyQ
えと、自分128なのですが・・・えと・・・

とりあえず、言われました2枚の画像を使って表示する方法を取ろうと思います。
ですが、>>163でjLU+uiaZさんが言われてるように(略)


ほう
01791442008/08/06(水) 08:32:02ID:47qKayaE
>>176
シェーダかステンシルバッファ (存在忘れてた)、
あるいは切り抜きたい形がわかっているならその形でポリゴンを描画という手もある。
どの方法を使うにしてもスクリーン座標系との変換を自力でやる必要があるし、
その辺は頑張ってくれ。
0180名前は開発中のものです。2008/08/06(水) 12:24:43ID:0ioWCWoe
2Dグラフィックスの扱い方がわからんのだが。
グラフィック面の任意の座標に線を引いたりドットを打ったりするにはどうしたらいいんだ?
もしかして、基本的にPCG単位でしか扱えなかったりする?
0181名前は開発中のものです。2008/08/06(水) 14:41:58ID:4MVKuopt
>>180
3Dが分かるなら3Dでやっちゃうのが一番手っ取り早いんじゃないかと。
0182名前は開発中のものです。2008/08/06(水) 15:09:13ID:TcW8WT1e
つーか3Dと2Dを分けて考えてる時点で間違ってる。
次元が違うだけで、3Dも2Dも同じです。
ただ3Dの方は、ディスプレイが2Dの為、射影しなければならないだけで。

しかし
3D -> ベクターグラフィックス
2D -> ビットマップグラフィックス
という意味なら、あり。
0183名前は開発中のものです。2008/08/06(水) 16:39:32ID:+G5NtO4h
1x1の白いビットマップを用意して、これをスプライトでいろんな形や色で書いてみる、とか。
0184名前は開発中のものです。2008/08/06(水) 20:30:18ID:isOl/n5k
>>183
メモリ上でテクスチャ作ればいいじゃん

あと、GraphicsDevice.Clearで任意の矩形を塗りつぶすこともできたと思う
0185名前は開発中のものです。2008/08/06(水) 21:09:37ID:lquL9Zui
Stencilとかでよさげだと思うんだが、既にかかれてたorz
Texture座標の与え方で表示を変える方法では駄目?
0186名前は開発中のものです。2008/08/06(水) 22:41:01ID:0ioWCWoe
>>184
配列上にデータおいといて、Texture2D.SetData使ってテクスチャ変更するだけでいいんだろうか?
割と楽だったんだな。
01871282008/08/07(木) 02:51:32ID:V9ca7jEb
>>177
ありがとうございます、URLのやり方で出来ました!
ほんとに、なんか変な燃料投下しちゃったみたいだったりでご迷惑おかけしましたがありがとうございました
0188名前は開発中のものです。2008/08/07(木) 10:21:14ID:gEBMdb1k
コンテストはまだ始らないんですか?
0189名前は開発中のものです。2008/08/07(木) 13:10:23ID:GaBFx/eh
2DでステンシルとかClear()とか、相変わらずレベル低すぎだな
偉そうに人に阿呆なアドバイスする前に基礎からやり直したほうがいいですよw
0190名前は開発中のものです。2008/08/07(木) 13:53:33ID:/y002lrA
日本人でありながら、米XNA界隈のコンテストを総取りにする>>189氏誕生の瞬間である
0191名前は開発中のものです。2008/08/07(木) 14:23:17ID:VplsqTiW
GetData/SetData遅いし、他の手段のほうがいいかも?
ベンチ取って無いけど試してみてほしいな

ということなんだけど
馬鹿にする前提で覗いてる奴には空気嫁と言っても無駄だもんね
0192名前は開発中のものです。2008/08/07(木) 18:30:02ID:MxQMZoEp
グラフィクスパイプラインとは何ですか?教えて下さい!!
0193名前は開発中のものです。2008/08/07(木) 20:27:06ID:MSbwGqo5
スレ違い
つか単語の意味まで2chで質問すんなカス
0194名前は開発中のものです。2008/08/07(木) 22:07:44ID:hit43HXC
グラフィクスのパイプラインです
0195名前は開発中のものです。2008/08/08(金) 08:37:07ID:TZeWQk6S
>>191
すまない、コードで語ってくれ。
頭悪くて俺には理解出来ない。
0196名前は開発中のものです。2008/08/08(金) 09:55:26ID:8ZeZGu6N
>>195
数レス前まで読み返すこともできない頭じゃ何をどう説明されても無駄かと
0197名前は開発中のものです。2008/08/08(金) 20:08:57ID:TZeWQk6S
>>196
数レス前のどこにコードがあるんだ?
もしかして裏2chとかにあるのか?
0198名前は開発中のものです。2008/08/08(金) 20:10:48ID:8dDX5Poa
メソッド名が出てるのにこれ以上どうしろっていうんだよ

あ、クレクレ厨さんでしたか、お帰りください。
0199名前は開発中のものです。2008/08/09(土) 05:17:29ID:Oh8thl1X
>>176
転送先アルファが使えるなら、
有効なゲージ部分を、黒ポリゴンを加算合成で描画して、
ゲージのスプライトを転送先アルファで描画するのでいけないかな?
0200名前は開発中のものです。2008/08/11(月) 11:42:56ID:h3nO6Vhe
今更だけど>>195>>191>>196に噛みついてるのって筋違いだよな…
0201名前は開発中のものです。2008/08/11(月) 11:56:23ID:O+OeUcpO
どうでもいいよ。
そんなこと蒸し返して、また荒れるほうがイヤだわ。
0202名前は開発中のものです。2008/08/12(火) 18:29:40ID:0lhah5fO
こういうレスが一番トゲトゲしくて嫌がられるということが何故わからないんだろう
0203名前は開発中のものです。2008/08/13(水) 14:48:23ID:sPqfU9xP
あれ?なんか急にRealmに入れなくなったんですが・・・
キャラ選択画面で、一時的にログインできないです、時間を置いて入りなおしてねって出る
3キャラも一度に作っちゃったからかな?
0204名前は開発中のものです。2008/08/15(金) 11:45:26ID:KK1Uynjy
VS2008SP1でたけど、VS2008対応予定がいつなのか情報あったっけ?
0205名前は開発中のものです。2008/08/15(金) 13:16:33ID:RRMLLvNm
知らん。
つかまたサービスパックかよ。うぜー。
使う気無し。
0206名前は開発中のものです。2008/08/15(金) 14:01:04ID:6AMzcSUv
今回のはアイコンに9が入ってていいな。
2008使ってるが、XNAのために2005も同時に起動してるしな。
0207名前は開発中のものです。2008/08/15(金) 18:44:41ID:5u41vZLO
最近XNAとC#を始めた者ですが、
一般的なゲームプログラムのように、

「タイトル画面では、タイトル画面用の素材を読み込み、
 プレイヤーがスタートボタンを押し、ゲーム画面に遷移したら、
 タイトル画面用の素材は破棄し、ゲーム画面用の素材を読み込む」

というような作りのサンプルプログラムってありませんか?
(もしくはステージマネージャを使用したサンプルプログラム)

とりあえず購入した入門書では、Initialize関数内で全部読み込んでるんで
これだと、画面や素材や増えたとき、起動時間や使用メモリなどの問題が
起きそうな気がします。
0208名前は開発中のものです。2008/08/15(金) 19:00:15ID:Xe4ywF/D
適当に弄ってただけで本格的に作ってないが、
Drawとかで適当に読み込んでも使えてたぞ。
不味いことになってたかどうかは知らんけど。
0209名前は開発中のものです。2008/08/15(金) 19:48:02ID:d+Ppk7CG
>>207
そういうレベルのことでほかのサンプル当てにしてると実力あがらんぞ。
208の言うとおりどこで読んでも特に問題なさそうだから自力で管理するクラス作ってみろ。
0210名前は開発中のものです。2008/08/15(金) 19:59:56ID:L8fAV+r7
>>207
サンプルのScreenManager
0211名前は開発中のものです。2008/08/15(金) 20:32:27ID:dFqsa6p7
>>204
3.0が対応すると今出てるベータ版みたいなやつの説明にあった
0212名前は開発中のものです。2008/08/15(金) 22:03:09ID:5u41vZLO
いろいろ情報をありがとうございました。

XNA Creators club onlineで「Game State Management」という
サンプルを入手しました。
それを解析しつつ色々実験してみようと思います。

C++では画面遷移ごとにオブジェクトの生成や破棄を管理するクラスを作って
使ってたのですが、C#のプログラミング技法がよくわからないもので……
でもC#だと、オブジェクトの破棄は自動的に行われるので
むしろC++より実装が楽だったりするかも?
0213名前は開発中のものです。2008/08/15(金) 22:34:33ID:MFjLFM+K
一体何がやりたいんだ・・・

http://xbox.spaces.live.com/blog/cns!378FEC038C02D52C!9314.entry
0214名前は開発中のものです。2008/08/15(金) 22:56:08ID:sQWwpY9l
>救急蘇生リアルシミュレーション

どう考えてもエロゲだろ・・・・
0215名前は開発中のものです。2008/08/15(金) 23:48:09ID:d+Ppk7CG
>>212
C++でそれだけできるなら、まさにあなたが書いているとおり。ただデストラクタの扱いが微妙なのでその点だけ注意。
http://msdn.microsoft.com/ja-jp/library/66x5fx1b(VS.80).aspx
こちら参照のこと。
0216名前は開発中のものです。2008/08/16(土) 00:31:50ID:3beqItjK
欧米のゲーム開発者はどのハードで作ってる?―調査結果が発表
http://www.inside-games.jp/news/307/30702.html
・開発言語は76%がC++、31%がC#、19%がJava/J2ME、9%がアセンブリ言語を使用

結構多いな
0217名前は開発中のものです。2008/08/16(土) 14:57:24ID:JH6585/C
足して100%にならんのはなんで?
0218名前は開発中のものです。2008/08/16(土) 15:01:59ID:MM0FNvDl
複数回答可で、該当数÷母数で出してるんでしょ
0219名前は開発中のものです。2008/08/16(土) 16:17:48ID:xskvRFVm
>>217
ゆとりはだまってろw
0220名前は開発中のものです。2008/08/20(水) 13:58:09ID:Ecppx3zA
OS積んでるんだから文字くらい命令ひとつで描かせろって感じ
MSゴシックだけでもいいからさ
0221名前は開発中のものです。2008/08/20(水) 20:14:42ID:CrEdJ6gE
サーフェイスからhDC取ってTextOutで書くの楽だったじゃん?
ああいう方法に最適化して高速化するようなビデオドライバとかDirectXの実装はできないもんなのかね。
0222名前は開発中のものです。2008/08/21(木) 10:26:16ID:bHKeUkML
>>221
DirectX7でもやってろ
0223名前は開発中のものです。2008/08/22(金) 16:54:45ID:v5hr+smB
こういうレスが一番トゲトゲしくて嫌がられるということが何故わからないんだろう
0224名前は開発中のものです。2008/08/22(金) 17:55:43ID:d1/R0v0T
>>223
そんなにここ荒らしたいのか、勘弁してくれ。
0225名前は開発中のものです。2008/08/22(金) 18:51:33ID:HOvkED7F
>>224
認定厨乙
0226名前は開発中のものです。2008/08/23(土) 05:05:30ID:4w+/0euY
いや221はDirectXがどうこう言っている時点でアフォだしその方法はXBOX等では出来ないわけで
もう少し考えろやクソボケカス!

これでいいですか?
0227名前は開発中のものです。2008/08/23(土) 09:57:35ID:FAirveNH
だめです。
0228名前は開発中のものです。2008/08/23(土) 11:31:33ID:ULStl/WX
>>226
何でもかんでも親切に教えるのは間違ってるとは思うが、
相手が知らないのを馬鹿にするのはただの馬鹿だな。

> これでいいですか?
にはワロタが。

個人的にはC++で開発が良かったんだがな。
C#はVBみたいで気持ち悪い…
0229名前は開発中のものです。2008/08/23(土) 18:27:04ID:L0H1blrE
XNAをきっかけにC#はじめたら、これが気に入っちゃって
社内のシステムの新しいのはC#に移行したわw
0230名前は開発中のものです。2008/08/24(日) 16:03:17ID:U+RlP9ap
質問があります。
ネット上でコンテントパイプラインのサンプルをいくつか見つけたので
使ってみようとしたところ、全てのサンプルにおいて
using Microsoft.Xna.Framework.Content.Pipeline;
という箇所で、

「エラー CS0234: 型または名前空間名 'Pipeline' は名前空間
'Microsoft.Xna.Framework.Content' に存在しません。アセンブリ参照が不足しています。」

と表示されます。
Windows Game Library 2.0では、
参照設定で何か追加したりしないとダメなんでしょうか?
0231名前は開発中のものです。2008/08/24(日) 16:18:21ID:PGmgcqly
プロジェクト作るとき、Content Pipeline Extension Libraryを選択した?
手動でやったなら追加しないとならんかも。
0232名前は開発中のものです。2008/08/24(日) 16:20:40ID:PGmgcqly
って、Windows Game Library か。それは参照足りないと思うよ。
0233名前は開発中のものです。2008/08/24(日) 16:33:51ID:U+RlP9ap
>>231-232
参照設定の項目に「Microsoft.Xna.Framework.Content.Pipeline」を追加したところ
dllが生成されました。
ありがとうございました。
0234名前は開発中のものです。2008/08/26(火) 02:53:32ID:n8f43Qka
Content.Load<Model>として読み込んだXファイルを
MeshPartsごとに、DrawIndexedPrimitivesを使用して描画しています。

3Dモデルを構成している各MeshPartsのうち、特定のテクスチャを
使用しているMeshPartsのテクスチャを差し替えて描画したい
(キャラの服の部分のテクスチャを変えたい)のですが、
各MeshPartsが使用しているテクスチャ名を知る手段って無いですか?
0235名前は開発中のものです。2008/08/26(火) 03:43:55ID:JBi1Vxxu
>>234
やったことないんで分からんがエフェクトのパラメータの中とかにないかな。
レンダリングのあたりのコード出してくれればもう少し適切な事いえるかも。

やり方ってMeshPartsのパラメタ使ってModelMesh.VertexBuffer/IndexBufferをレンダリングするってこと?
DrawIndexedPrimitivesの直前でテクスチャ指定してやればそのテクスチャでレンダリングできるような気もするな、それなら。
Model使うの一瞬であきらめちゃったので頓珍漢な事言ってたらごめん。
0236名前は開発中のものです。2008/08/26(火) 09:41:10ID:I4UCFyRW
>>235
わからん奴が憶測で口出すなボケ
02372342008/08/26(火) 11:57:30ID:n8f43Qka
レンダリングあたりのソースはこうなっています。

effect.Begin(SaveStateMode.None);//シェーダを開始する
graphics.GraphicsDevice.Indices = mesh.IndexBuffer;//インデックスバッファをセットする
foreach (ModelMeshPart meshPart in mesh.MeshParts)
{//メッシュパーツの数だけ繰り返す
//バーテックスをセット
graphics.GraphicsDevice.Vertices[0].SetSource( mesh.VertexBuffer, meshPart.StreamOffset, meshPart.VertexStride );
graphics.GraphicsDevice.VertexDeclaration = meshPart.VertexDeclaration;//バーテックス宣言をセットする

if (num == 0)
{
texture.SetValue(texBody); //服のセットの場合、服のテクスチャをセットする
}
else if (num == 1)
{
texture.SetValue(texFace); //顔のセットの場合は、顔のテクスチャをセットする
}

for (int i = 0; i < effect.CurrentTechnique.Passes.Count; i++)
{
effect.CurrentTechnique.Passes[i].Begin();
graphics.GraphicsDevice.DrawIndexedPrimitives( PrimitiveType.TriangleList, meshPart.BaseVertex,0,
meshPart.NumVertices, meshPart.StartIndex, meshPart.PrimitiveCount );
effect.CurrentTechnique.Passes[i].End();
}
num++;
}
effect.End();
0238名前は開発中のものです。2008/08/26(火) 12:03:55ID:n8f43Qka
現在は、 1番目のデータセットが服、2番目のデータセットが顔
と、あらかじめ判っているので、変数numの値で決めうちして、
テクスチャを切り替えていますが、これを、
「1番目のデータセットは服用だから、別の服用テクスチャに差し替える」
とかいう処理を行えるようにしたいと思っています。
0239名前は開発中のものです。2008/08/26(火) 12:05:38ID:n8f43Qka
まずはエフェクトのパラメータについて調べてみます。
0240名前は開発中のものです。2008/08/26(火) 14:51:45ID:JBi1Vxxu
調べてみたけど(BasicEffectの場合)
meshpart.Effect.Parameters[0].GetValueTexture2D();
でテクスチャそのものは取得できるけどこれだと名前はわからないんだね;
Nameがすっからかんだよ・・・この仕様はねえなw
MeshやModelにはちゃんと名前ついてるのにね。

仕様見てテクスチャは取得できることは予想ついてたんだけどこれは予想外だった、
スマソ;

そうするとMeshPartsのPrimitiveCountとかわかりやすいパラメータ見て切り分けるくらいしか
思いつきませんな;;;
>>236
(笑)
0241名前は開発中のものです。2008/08/27(水) 10:02:37ID:nSNWgejO
Gamefest行く?
今までのセミナーを聞いた雑感、日本チームはセミナーでしかマトモナ情報出さないんだよね。(´・ω・`)

後からネット配信されるだろうけど、俺は木曜行けそう。
0242名前は開発中のものです。2008/08/27(水) 12:10:05ID:+eBBtNxp
今週の夏休みがつぶれたから、代わりに来週休めそうだな、、、
行ってみるかなあ、、、自宅から遠いんだよな、会社からはすぐだが。

>実績の達人によるパネルディスカッション - 理想の実績教えます
なんじゃこりゃw
0243名前は開発中のものです。2008/08/27(水) 22:11:44ID:G/e9Tge0
アイマスの話とか、キモイのが多そうだ
0244名前は開発中のものです。2008/08/28(木) 02:17:32ID:iEswIk5v
最近XNA始めたんだが面白いな。
まだサンプルを参考にするくらいのことしかできんがw
今までCでしかゲーム作ったことないからなぁ。

年内までにそこそこ動いているものでも出したいぜ・・・
■ このスレッドは過去ログ倉庫に格納されています