トップページ⇒tech
1001コメント300KB

【みんな】XNA 質問・相談スレッド1【初心者】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/09/23(日) 23:43:41
Microsoft XNA はマイクロソフトによって提供された、ゲーム開発のためのツールである。
XNA はマネージ実行環境を完備する。
2004 年 3 月 24 日、カリフォルニア州のサンノゼの Game Developers Conference で発表され、
2006 年 12 月 11 日にリリースされた。

XNA は「 XNA's Not Acronymed」 ( XNA は頭字語ではない)の頭字語である。


XNA デベロッパーセンター
http://www.microsoft.com/japan/msdn/xna/

xna スタジオ
http://xna-studio.jp/

XNA Game Studioメモ
http://www.saturn.dti.ne.jp/~npaka/xna/

ということで立ててみた。
0263デフォルトの名無しさん2009/02/20(金) 22:00:32
ジャンガリアンとドワーフはどっちがおおきいんでしょうか?
0264デフォルトの名無しさん2009/02/20(金) 22:01:19
ちんこ
0265デフォルトの名無しさん2009/02/20(金) 22:03:27
>>262
WindowsFormsHostの中で使えるけど不便なのでSlimDX使った方がいい
普通のアンマネージDirectXやManagedDirectXやSlimDXなら
D3DImage使えばWindowsFormsHost使わずにサーフェスをそのままImageSourceとして表示できる
XNAはCOMのポインタ取れないから無理
0266デフォルトの名無しさん2009/02/21(土) 08:10:08
サンプルはどこにあるんですか?DirectXだとDirectXSDKフォルダの中にありますが
XNAはどこにあるんでしょうか?
0267デフォルトの名無しさん2009/02/21(土) 09:21:22
>> 264
エッピ
0268デフォルトの名無しさん2009/02/21(土) 09:26:31
嫌がらせの連鎖反応になってるな
誰が最初にはじめたとか関係ない
ここに来るやつの程度が低いから仕返しあってる
0269デフォルトの名無しさん2009/02/21(土) 09:27:01
誤爆すまそ
0270デフォルトの名無しさん2009/02/21(土) 09:41:04
OGGファイルを使えるようにする方法はありませんか?
WAVEファイルだけだとファイルがでか過ぎてもうどうしようもなくないですか?
0271デフォルトの名無しさん2009/02/21(土) 10:55:07
XACTでXMAにすれば
0272デフォルトの名無しさん2009/02/21(土) 11:18:13
>>266
ttp://creators.xna.com/en-US/education/catalog/

>>270
mp3とwmaが使えますよ。
0273デフォルトの名無しさん2009/02/21(土) 11:57:41
サンプルはサイトにあったんですか。頭固くてすいません。ありがとうです。
0274デフォルトの名無しさん2009/02/21(土) 12:07:03
チュートリアルのこの部分がどうしても理解できません
Meshesの中にあるEffectsというのはどういう種類が順番で入ってるんでしょうか?
Effectsはモデリングソフトで言うマテリアルの事なんですか?
この例を見ると一つづつ取り出して行列変換しているように見えるんですが。
なぜmeshに行列を掛けて一度で終わらせられないんですか?

Matrix[] transforms = new Matrix[myModel.Bones.Count];
myModel.CopyAbsoluteBoneTransformsTo(transforms);

foreach (ModelMesh mesh in myModel.Meshes) {
 foreach (BasicEffect effect in mesh.Effects) {
  effect.World = transforms[mesh.ParentBone.Index]
  * Matrix.CreateRotationX(modelRotation)
  * Matrix.CreateTranslation(modelPosition);
 }
 mesh.Draw();
}
0275デフォルトの名無しさん2009/02/21(土) 12:15:54
ボーンが1本しかないならそうかもね
0276デフォルトの名無しさん2009/02/21(土) 12:23:55
もしかしてEffectsにはメッシュも含まれてるんですか?
0277デフォルトの名無しさん2009/02/21(土) 12:34:20
チュートリアルじゃまったく先に進めません
もっと行列のことからXNAの仕組みをヘルプの法律文書のようなのではなくわかりやすく一から入門者用に解説してるサイト教えてください
適当にやるのに限界を感じました
0278デフォルトの名無しさん2009/02/21(土) 12:41:41
入門者には向いてない
普通にDirect3Dの勉強した方が早い
0279デフォルトの名無しさん2009/02/21(土) 12:41:51
>>276
mesh.Effectsって書いてあるけど・・・

>>277
そのチュートリアルってどこのやつですか?
それが入門者用のやつのような気がするんですが・・・
0280デフォルトの名無しさん2009/02/21(土) 12:44:38
そもそも行列はXNAに限らず3Dやるなら必須の知識だから
そこが分からんっていうならプログラムの前に勉強することがあるんじゃない?
0281デフォルトの名無しさん2009/02/21(土) 13:00:42
今やってるチュートリアルはVSの目次の中にあるやつです。

いやC++でDirectXは使えるんですが
C#でどれがどう対応しててどういう名前に代わってるかとかがまったくマッチしなくて詰まってます


0282デフォルトの名無しさん2009/02/21(土) 13:04:23
すいません公式に思いっきり詳しいのがありましたすいません
0283デフォルトの名無しさん2009/02/21(土) 16:34:44
spritefontでサイズの違うフォントを使いたい場合
XML内でsizeタグを2つ作るんですか
0284デフォルトの名無しさん2009/02/21(土) 16:56:27
spritefontを二つ作る
無駄だから大きい方を縮小して描画した方がいい
0285デフォルトの名無しさん2009/02/21(土) 17:13:36
大きい方を縮小して描画するならspritefont二つ要らないのでは?
SpriteBatch.DrawStringでどうやって縮小描画する気か知らんけど
02862842009/02/21(土) 17:22:01
二つ要らないと言いたかった
縮小はscale引数があるだろ
0287デフォルトの名無しさん2009/02/21(土) 17:37:43
縮小なんて出来るんですね。すごいテクニックです
ありがとうございます。拡大は荒くなるからだめなんですよね

あと、キーの押された判定は使いたいボタン全部stateでPressedかどうか判定していくんですか?
なんかすごい長くなるきがするんですが、それに最初にヒットしたキーと最後とだと時間差ができませんか?
0288デフォルトの名無しさん2009/02/21(土) 17:51:27
GameComponentのコレクションに追加したクラスのDrawはどういう順番で呼ばれるんですか?
全クラスのDrawの中を自動で判別してZ深度の順で書き込んでくれるんでしょうか?
0289デフォルトの名無しさん2009/02/21(土) 17:54:03
バナナはおやつに入るのでしょうか?
0290デフォルトの名無しさん2009/02/21(土) 17:57:54
低脳質問厨は放置の方向で
0291デフォルトの名無しさん2009/02/21(土) 18:17:33
このスレいらないと思うんだけど
0292デフォルトの名無しさん2009/02/21(土) 18:24:17
初心者を脱した初級者にはよくあること
0293デフォルトの名無しさん2009/02/22(日) 11:09:38
初心者を脱した初級者にはよくあることなんでしょうか?
0294デフォルトの名無しさん2009/02/22(日) 12:05:03
GameComponentのUpdateOrder
0295デフォルトの名無しさん2009/02/22(日) 13:00:04
thx
0296デフォルトの名無しさん2009/02/22(日) 14:51:22
DrawOrderだろ?
GameComponentのUpdateとDrawの更新順序が同じとは限らないのに
0297デフォルトの名無しさん2009/02/22(日) 15:34:07
Drawable付きか
0298デフォルトの名無しさん2009/02/26(木) 23:20:46
3Dオブジェクトで背景まで透けて見えるわけじゃないんですが
見えないはずの裏のオブジェクトの一部が中が透けてみえているんですが
これはどうなってるんでしょうか
0299デフォルトの名無しさん2009/02/26(木) 23:48:55
たとえば手前に透明なものを先に書いた場合
色は書き込まれないけどZバッファには書き込まれるために
その後に書いたものでその物体より後ろにある部分は描画されない
完全に透明であればアルファテストをすることである程度回避できるが
半透明の場合はZソートして書き込むしかない
0300デフォルトの名無しさん2009/02/27(金) 00:19:13
透明な面は一つもないんです
法線もチェックして全ての面が外側に向いているのも確認したんですが
FBXファイルの中を理解して修正するしかないんでしょうか
この場合でもZソートというものをして奥にあるものから描画すれば大丈夫なんでしょうか?
透明なオブジェクトはないんです
0301デフォルトの名無しさん2009/02/27(金) 00:30:49
とするとZバッファがちゃんと働いてないだけじゃん。Zバッファ関係の設定と
変換行列があってる事を確認した方がいいんじゃないかと。
0302デフォルトの名無しさん2009/02/27(金) 00:47:12
SpriteBatchかなんかと同時に使っていて、レンダーステート壊してんじゃない。
0303デフォルトの名無しさん2009/02/27(金) 10:40:56
透明な面はなくてもテクスチャにα値が書き込まれてるとか
0304デフォルトの名無しさん2009/02/27(金) 11:19:48
thx。いろいろ調べてきました。
厄介なことに再現できなくなりました
graphics.GraphicsDevice.Clear(Color.Blue);
を
graphics.GraphicsDevice.Clear(ClearOptions.Target | ClearOptions.DepthBuffer, Color.CornflowerBlue, 0, 0);
に置き換えたら透けなくなったんです
が、そのあとまた
graphics.GraphicsDevice.Clear(Color.Blue);
にもどしたても透けないんです。クリーンもやりました
バグの可能性ありますか?
0305デフォルトの名無しさん2009/02/27(金) 11:31:54
戻した状態で表示位置を今の場所と重ならない位置にずらす
0306デフォルトの名無しさん2009/02/27(金) 11:39:32
どういうことですか
ぐるぐる回したり移動させて確認はしてるんです
0307デフォルトの名無しさん2009/02/27(金) 17:05:22
ジャギーを消す方法はありませんか?
0308デフォルトの名無しさん2009/02/27(金) 17:43:45
http://blogs.msdn.com/ito/archive/2008/03/08/tcr-for-fun.aspx
0309デフォルトの名無しさん2009/02/27(金) 18:21:04
おーできましたありがとう
どうすればいちいち聞かなくても調べられるようになるんですか?
本を買ってしまったら負けだと思ってるんですが、
XNAがなんなのかを理解するには本を買わないとダメな仕組みになってるんでしょうか?
収入に繋がる絶対的な確信がない限り経費は出せないと思うんですが、皆さんはどうやって習得したんですか?
0310デフォルトの名無しさん2009/02/27(金) 19:18:00
XNAに関する書籍はロクなのないからいいけど
それ以外の専門書は絶対に読んだ方がいいものがあるので
「本を買ってしまったら負け」と思ってる時点で負けてる
将来の投資としてお金が使えない人は技術者としてダメだと思う
0311デフォルトの名無しさん2009/02/27(金) 19:37:12
これ現代のファミリーベーシックだぞ
力抜けよ
0312デフォルトの名無しさん2009/02/27(金) 21:49:15
>>302
そうでした、SpriteBatchはコメントアウトしてたんですが
また入れたら透けるようになってしまいました。
前面に文字を入れたくてDrawの中で2Dと3D描画一緒に使ってるんですがまずいですか?
どうすればいいんでしょうか
0313デフォルトの名無しさん2009/02/28(土) 00:08:58
>>312
http://blogs.msdn.com/ito/archive/2007/03/13/spritebatch-part2.aspx
0314デフォルトの名無しさん2009/02/28(土) 00:47:29
ひとつひとついちいち聞いてたら切りがないし
自分で調べたり、なんとかコードを書くクセをつけないと
ゲームプログラム組めるようにならないぞ。
書籍とか技術資料に経費かけるのに勝ちも負けもないよ。
みんなそうやって技術を身に着けてる。
0315デフォルトの名無しさん2009/03/01(日) 13:14:15
お人好し。
0316デフォルトの名無しさん2009/03/01(日) 13:42:31
そうは思ってない人なんだろ

0317デフォルトの名無しさん2009/03/01(日) 14:04:06
hai?
0318デフォルトの名無しさん2009/03/01(日) 15:10:19
ださ
0319デフォルトの名無しさん2009/03/01(日) 20:24:39
ひとつひとついちいち相手してたら切りがないし
なんとかスルーするクセをつけないと
一生馬鹿のために貴重な時間を無駄にし続けるぞ。
0320デフォルトの名無しさん2009/03/01(日) 20:50:57
XNAで就職できるんでしょうか?
0321デフォルトの名無しさん2009/03/01(日) 22:00:17
>>320
実際に就職したい会社の採用ページを見れば分かると思います。
0322デフォルトの名無しさん2009/03/11(水) 00:17:54
本のこと聞いていもいい?
これと
XNAゲームプログラミング Xbox 360とWindowsのクロスプラットフォーム開発 赤坂 玲音
これだと
Microsoft XNAガイドブック Microsoft Xna Game Studio Express Creator's Guide
どっちが役に立つ?重視するのはXNAのテクニックやノウハウ
0323デフォルトの名無しさん2009/03/11(水) 00:21:08
ああ、俺も聞きたかった
XNAゲームプログラミング Xbox 360とWindowsのクロスプラットフォーム開発
この本、コンテンツパイプラインの拡張とかについては書いてあるんだろうか・・・
近くの本屋においてなかったんだよなぁ・・・
0324デフォルトの名無しさん2009/03/11(水) 00:50:27
コンテンツパイプラインの拡張書いてあった
目からうろこ
0325デフォルトの名無しさん2009/03/11(水) 00:58:30
赤坂氏って実績ある人なはずだけど
codezineの記事や過去に買った本の内容から、説明下手教え下手な人のイメージが拭えない…
買うなら他の買う…
0326デフォルトの名無しさん2009/03/11(水) 09:24:34
ソフトイーサの人もそんなイメージ
0327デフォルトの名無しさん2009/03/11(水) 21:15:03
じゃあ、おまいらならどの本買うのか教えてください。
0328デフォルトの名無しさん2009/03/12(木) 03:47:26
本は・・・買わんな・・・正直公式ドキュメントとネット上のリソースだけで充分だし、大体にしてまともな本でてねえと思う。
もし3Dの基本的なことから勉強したいなら、むしろXNA以外の3D関連の本買った方がいいんじゃないかなあ。
ちなみに俺が一番3D関連で役に立った本は、ロボット工学の本だ・・・
ロボット工学と言いつつ、ほとんど順動力学と逆動力学の事しか書いてなかったのだが・・・w
0329デフォルトの名無しさん2009/03/12(木) 03:58:44
人としてどこかがおかしい
0330デフォルトの名無しさん2009/03/12(木) 10:19:42
これがいいよ
Xna 2.0 Game Programming Recipes
(今ならXna3.0のも出てる)
0331デフォルトの名無しさん2009/03/12(木) 14:41:28
XBOXはコンテントの参照以外で参照追加したら動かないですか?
0332デフォルトの名無しさん2009/03/12(木) 15:30:38
追加できるものなら大丈夫だよ。
ほとんど無いけど。
自作かサードパーティ製の話かな?
0333デフォルトの名無しさん2009/03/12(木) 17:53:54
>>331-332
ハァ?クラスライブラリは普通に参照して動くだろ。
何のための.NETなんだよ。
サードパーティ製とかアホか。知ったか乙。
0334デフォルトの名無しさん2009/03/12(木) 18:05:36
参照するアセンブリが違うんだよ
mscorlib.dllからして違う
0335デフォルトの名無しさん2009/03/12(木) 21:59:45
クリエーターズクラブってなんでサインインできないの?
現状、全てのソフトがマケプレで公開されてるしレビューとかはどうなっちゃったの?
0336デフォルトの名無しさん2009/03/12(木) 22:13:10
レビューっていつの時代の話だよそんなのとっくに中止されてる
情弱にも限度ってものがあるぞ・・・
0337デフォルトの名無しさん2009/03/13(金) 14:21:00
公式サイトのあの情報の不親切っぷりで情弱というのなら、最早何も言うまい
0338デフォルトの名無しさん2009/03/15(日) 10:35:58
>>333
自分で作ったクラスライブラリ以外のライブラリはサードパーティ製
ソースで提供されてるものとは違うんだよ?
0339デフォルトの名無しさん2009/03/16(月) 02:47:06
新しい項目の追加でGemeCompornentをプロジェクトに追加し、
その中のUpdateにボタンを押した時のコードを追加したのですが、
プロジェクトを実行しても、そのコード、Update自体が実行されませんでした。
どうすれば追加したクラスのUpdateが呼ばれるようになるんですか?
0340デフォルトの名無しさん2009/03/16(月) 03:53:05
だれかー
0341デフォルトの名無しさん2009/03/16(月) 03:57:29
そのクラスをnewした?
という程度の問題ではないよな。
0342デフォルトの名無しさん2009/03/16(月) 04:18:50
newってもしかして
newしたあと自分でUpdate呼び出すんですか?
Updateは勝手に呼ばれるんじゃないんですか?
だとしたらもしかして、Initializeも自分で呼ばないとですか?
0343デフォルトの名無しさん2009/03/16(月) 04:29:24
あーごめん、newだけでは動かなくて、
Game派生クラスのComponents.Addを呼んでやらないといけない気がする。
0344デフォルトの名無しさん2009/03/16(月) 05:45:55
すごいありがとうできました。
0345デフォルトの名無しさん2009/03/16(月) 05:54:59
これはあまり使われないんですか?
どういう場面でGemeCompornentの派生が必要なんでしょうか
追加クラスのUpdateと、元のクラスのUpdateの呼ばれる順番はどうやってきまるんでしょうか
0346デフォルトの名無しさん2009/03/16(月) 10:15:59
XNA3.0のドキュメントみるといいよ、今は日本語もあるし。
Updateの順序はUpdateOrder
0347デフォルトの名無しさん2009/03/17(火) 04:30:10
全然わかりません
自分の実行順位は変えられないですか?
必ずメインのあとに追加の奴来るんです
0348デフォルトの名無しさん2009/03/17(火) 10:26:36
もう吊れよ
0349デフォルトの名無しさん2009/03/26(木) 23:08:05
実家に帰るから小さいノートに環境入れてみたら
グラボのスペック不足て実行できない><
0350デフォルトの名無しさん2009/03/27(金) 10:34:28
>>349
http://www.riemers.net/eng/Tutorials/XNA/Csharp/ShortTuts/Reference_device.php
0351デフォルトの名無しさん2009/03/28(土) 14:56:31
C#でDirectX扱うとしたら、いまのところこのXNAとSlimDXってところか。
0352デフォルトの名無しさん2009/03/30(月) 18:15:48
そもそも、パフォーマンスを要求される3Dゲームを.NETでやろうとしてること自体方向性として間違ってるんだよ
まさかM$が本気で同人ソフトの開発環境で商売になると思ってるはずもないし
仮にXNAが3Dゲーム開発業界で採用されるようになっても、ユーザーが満足しないだろそんなもん・・
0353デフォルトの名無しさん2009/03/30(月) 18:18:02
パフォーマンスを要求されるゲームならそれなりの環境用意して作ればいいじゃない。
0354デフォルトの名無しさん2009/03/30(月) 19:06:45
TriangleStripでジグザグに6点打って4面の長方形書くのはわかるんですが長くしないで次の段にする時って折り返すしかないんですか?
x,yの2階層ループで作成させる時うまく書けないんですがこれ絶対ひと筆書きにできないとDrawUserPrimitivesをxかyごとに
繰り返さないとだめですよね?
0355デフォルトの名無しさん2009/03/30(月) 20:18:29
ごめんオフセットの引数が用意されてたこれ使えば書けそう
0356デフォルトの名無しさん2009/03/31(火) 00:42:19
全面うらがえってるんですがこれ単純に裏返すにはどうすればいいんですか?
時計回りに描画するかどうかで分かれると書いてあるのを見たんですがTriangleStripにそんな状態なくないですか?
0357デフォルトの名無しさん2009/03/31(火) 01:25:20
ヴァカ登場
0358デフォルトの名無しさん2009/03/31(火) 02:06:52
日本語の意味がよくわからんのだけど、エスパー的に答えるとすると

もし本当にオブジェクトの面の表裏が意図したのと逆になってるなら
単に頂点の位置指定が全部反時計回りになってるんじゃね?
もしくはカリングの指定が逆になってるんじゃね?

もしTriangleStrip使ってて、一枚おきに裏表が逆になってるなら、それは仕様だ
どうやっても頂点指定が時計回りと反時計回りの交互になるから、カリング使うのやめれ

GraphicsDevice.RenderState.CullMode でも調べてみ
0359デフォルトの名無しさん2009/03/31(火) 02:29:38
いや、そもそも右手座標系と左手座標系の設定が逆になってる可能性があるなw
0360デフォルトの名無しさん2009/03/31(火) 03:06:13
thx。これまた深いところにある設定が出てきたね・・・
CullClockwiseFaceがデフォルトって書いてあるけど、描画前に再設定するように書いたらターゲットは元に戻った
けど、他のFBXから取り込んでるオブジェクトの描画じゃなくて動作が逆になった。不明すぎる
そもそもTriangleStripが内部でどっち回転で作り上げてるのかあたりが納得いかない
奇数どうし偶数どうしを繋いでるのはわかるけどそれだと交互に裏表になるはずなのになってないし。仕様だと交互になるの??
あとはなんとか出来そう、ありがと
0361デフォルトの名無しさん2009/03/31(火) 04:30:23
http://msdn.microsoft.com/ja-jp/library/microsoft.xna.framework.graphics.primitivetype.aspx

PrimitiveType で TriangleStrip が指定されてれば、
自動的に偶数面の裏表が逆にレンダリングされてるらしいよ

もっとも、これで実行速度が速くなるのかは疑問だけど・・・
TriangleStripって、使うとこでは使ってるのだろうか
0362デフォルトの名無しさん2009/03/31(火) 14:11:43
一昔前はデフォだったけど
今はそうでもないんじゃない?
■ このスレッドは過去ログ倉庫に格納されています