【みんな】XNA 質問・相談スレッド1【初心者】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/09/23(日) 23:43:41XNA はマネージ実行環境を完備する。
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/
ということで立ててみた。
0307デフォルトの名無しさん
2009/02/27(金) 17:05:220308デフォルトの名無しさん
2009/02/27(金) 17:43:450309デフォルトの名無しさん
2009/02/27(金) 18:21:04どうすればいちいち聞かなくても調べられるようになるんですか?
本を買ってしまったら負けだと思ってるんですが、
XNAがなんなのかを理解するには本を買わないとダメな仕組みになってるんでしょうか?
収入に繋がる絶対的な確信がない限り経費は出せないと思うんですが、皆さんはどうやって習得したんですか?
0310デフォルトの名無しさん
2009/02/27(金) 19:18:00それ以外の専門書は絶対に読んだ方がいいものがあるので
「本を買ってしまったら負け」と思ってる時点で負けてる
将来の投資としてお金が使えない人は技術者としてダメだと思う
0311デフォルトの名無しさん
2009/02/27(金) 19:37:12力抜けよ
0312デフォルトの名無しさん
2009/02/27(金) 21:49:15そうでした、SpriteBatchはコメントアウトしてたんですが
また入れたら透けるようになってしまいました。
前面に文字を入れたくてDrawの中で2Dと3D描画一緒に使ってるんですがまずいですか?
どうすればいいんでしょうか
0313デフォルトの名無しさん
2009/02/28(土) 00:08:58http://blogs.msdn.com/ito/archive/2007/03/13/spritebatch-part2.aspx
0314デフォルトの名無しさん
2009/02/28(土) 00:47:29自分で調べたり、なんとかコードを書くクセをつけないと
ゲームプログラム組めるようにならないぞ。
書籍とか技術資料に経費かけるのに勝ちも負けもないよ。
みんなそうやって技術を身に着けてる。
0315デフォルトの名無しさん
2009/03/01(日) 13:14:150316デフォルトの名無しさん
2009/03/01(日) 13:42:310317デフォルトの名無しさん
2009/03/01(日) 14:04:060318デフォルトの名無しさん
2009/03/01(日) 15:10:190319デフォルトの名無しさん
2009/03/01(日) 20:24:39なんとかスルーするクセをつけないと
一生馬鹿のために貴重な時間を無駄にし続けるぞ。
0320デフォルトの名無しさん
2009/03/01(日) 20:50:570321デフォルトの名無しさん
2009/03/01(日) 22:00:17実際に就職したい会社の採用ページを見れば分かると思います。
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:08XNAゲームプログラミング Xbox 360とWindowsのクロスプラットフォーム開発
この本、コンテンツパイプラインの拡張とかについては書いてあるんだろうか・・・
近くの本屋においてなかったんだよなぁ・・・
0324デフォルトの名無しさん
2009/03/11(水) 00:50:27目からうろこ
0325デフォルトの名無しさん
2009/03/11(水) 00:58:30codezineの記事や過去に買った本の内容から、説明下手教え下手な人のイメージが拭えない…
買うなら他の買う…
0326デフォルトの名無しさん
2009/03/11(水) 09:24:340327デフォルトの名無しさん
2009/03/11(水) 21:15:030328デフォルトの名無しさん
2009/03/12(木) 03:47:26もし3Dの基本的なことから勉強したいなら、むしろXNA以外の3D関連の本買った方がいいんじゃないかなあ。
ちなみに俺が一番3D関連で役に立った本は、ロボット工学の本だ・・・
ロボット工学と言いつつ、ほとんど順動力学と逆動力学の事しか書いてなかったのだが・・・w
0329デフォルトの名無しさん
2009/03/12(木) 03:58:440330デフォルトの名無しさん
2009/03/12(木) 10:19:42Xna 2.0 Game Programming Recipes
(今ならXna3.0のも出てる)
0331デフォルトの名無しさん
2009/03/12(木) 14:41:280332デフォルトの名無しさん
2009/03/12(木) 15:30:38ほとんど無いけど。
自作かサードパーティ製の話かな?
0333デフォルトの名無しさん
2009/03/12(木) 17:53:54ハァ?クラスライブラリは普通に参照して動くだろ。
何のための.NETなんだよ。
サードパーティ製とかアホか。知ったか乙。
0334デフォルトの名無しさん
2009/03/12(木) 18:05:36mscorlib.dllからして違う
0335デフォルトの名無しさん
2009/03/12(木) 21:59:45現状、全てのソフトがマケプレで公開されてるしレビューとかはどうなっちゃったの?
0336デフォルトの名無しさん
2009/03/12(木) 22:13:10情弱にも限度ってものがあるぞ・・・
0337デフォルトの名無しさん
2009/03/13(金) 14:21:000338デフォルトの名無しさん
2009/03/15(日) 10:35:58自分で作ったクラスライブラリ以外のライブラリはサードパーティ製
ソースで提供されてるものとは違うんだよ?
0339デフォルトの名無しさん
2009/03/16(月) 02:47:06その中のUpdateにボタンを押した時のコードを追加したのですが、
プロジェクトを実行しても、そのコード、Update自体が実行されませんでした。
どうすれば追加したクラスのUpdateが呼ばれるようになるんですか?
0340デフォルトの名無しさん
2009/03/16(月) 03:53:050341デフォルトの名無しさん
2009/03/16(月) 03:57:29という程度の問題ではないよな。
0342デフォルトの名無しさん
2009/03/16(月) 04:18:50newしたあと自分でUpdate呼び出すんですか?
Updateは勝手に呼ばれるんじゃないんですか?
だとしたらもしかして、Initializeも自分で呼ばないとですか?
0343デフォルトの名無しさん
2009/03/16(月) 04:29:24Game派生クラスのComponents.Addを呼んでやらないといけない気がする。
0344デフォルトの名無しさん
2009/03/16(月) 05:45:550345デフォルトの名無しさん
2009/03/16(月) 05:54:59どういう場面でGemeCompornentの派生が必要なんでしょうか
追加クラスのUpdateと、元のクラスのUpdateの呼ばれる順番はどうやってきまるんでしょうか
0346デフォルトの名無しさん
2009/03/16(月) 10:15:59Updateの順序はUpdateOrder
0347デフォルトの名無しさん
2009/03/17(火) 04:30:10自分の実行順位は変えられないですか?
必ずメインのあとに追加の奴来るんです
0348デフォルトの名無しさん
2009/03/17(火) 10:26:360349デフォルトの名無しさん
2009/03/26(木) 23:08:05グラボのスペック不足て実行できない><
0350デフォルトの名無しさん
2009/03/27(金) 10:34:28http://www.riemers.net/eng/Tutorials/XNA/Csharp/ShortTuts/Reference_device.php
0351デフォルトの名無しさん
2009/03/28(土) 14:56:310352デフォルトの名無しさん
2009/03/30(月) 18:15:48まさかM$が本気で同人ソフトの開発環境で商売になると思ってるはずもないし
仮にXNAが3Dゲーム開発業界で採用されるようになっても、ユーザーが満足しないだろそんなもん・・
0353デフォルトの名無しさん
2009/03/30(月) 18:18:020354デフォルトの名無しさん
2009/03/30(月) 19:06:45x,yの2階層ループで作成させる時うまく書けないんですがこれ絶対ひと筆書きにできないとDrawUserPrimitivesをxかyごとに
繰り返さないとだめですよね?
0355デフォルトの名無しさん
2009/03/30(月) 20:18:290356デフォルトの名無しさん
2009/03/31(火) 00:42:19時計回りに描画するかどうかで分かれると書いてあるのを見たんですがTriangleStripにそんな状態なくないですか?
0357デフォルトの名無しさん
2009/03/31(火) 01:25:200358デフォルトの名無しさん
2009/03/31(火) 02:06:52もし本当にオブジェクトの面の表裏が意図したのと逆になってるなら
単に頂点の位置指定が全部反時計回りになってるんじゃね?
もしくはカリングの指定が逆になってるんじゃね?
もしTriangleStrip使ってて、一枚おきに裏表が逆になってるなら、それは仕様だ
どうやっても頂点指定が時計回りと反時計回りの交互になるから、カリング使うのやめれ
GraphicsDevice.RenderState.CullMode でも調べてみ
0359デフォルトの名無しさん
2009/03/31(火) 02:29:380360デフォルトの名無しさん
2009/03/31(火) 03:06:13CullClockwiseFaceがデフォルトって書いてあるけど、描画前に再設定するように書いたらターゲットは元に戻った
けど、他のFBXから取り込んでるオブジェクトの描画じゃなくて動作が逆になった。不明すぎる
そもそもTriangleStripが内部でどっち回転で作り上げてるのかあたりが納得いかない
奇数どうし偶数どうしを繋いでるのはわかるけどそれだと交互に裏表になるはずなのになってないし。仕様だと交互になるの??
あとはなんとか出来そう、ありがと
0361デフォルトの名無しさん
2009/03/31(火) 04:30:23PrimitiveType で TriangleStrip が指定されてれば、
自動的に偶数面の裏表が逆にレンダリングされてるらしいよ
もっとも、これで実行速度が速くなるのかは疑問だけど・・・
TriangleStripって、使うとこでは使ってるのだろうか
0362デフォルトの名無しさん
2009/03/31(火) 14:11:43今はそうでもないんじゃない?
0363デフォルトの名無しさん
2009/03/31(火) 14:24:20プリミティブの作られる3種類から選ぶとするとStripかFanしかないと思うんだけど
高さマップのサンプル見るとTriangleListの形で追加していってるけどこれStripの倍の容量になると思うんだけど
深い意味あるのかな。速度を考えるからこそStripを使うべきだと思ったんだけど
でも結局内部でTriangleListに変換されてるから最初から容量は多くなってもTriangleStripではなくTriangleList形式で格納しろとかなんだろうなぁ
計ってみるけど
0364デフォルトの名無しさん
2009/03/31(火) 17:55:17折り返し地点で縮退ポリゴン作ってやれば?
無駄なポリゴン作ることになるけど長い目でみればTriangleStripの方が有利でしょ
0365デフォルトの名無しさん
2009/04/01(水) 16:12:310366デフォルトの名無しさん
2009/04/01(水) 17:06:440367デフォルトの名無しさん
2009/04/01(水) 17:21:18ttp://creators.xna.com/en-US/sample/picking
これと付属(日本語版は別途ダウンロードか)のドキュメントでいいんじゃない?
0368デフォルトの名無しさん
2009/04/01(水) 19:17:050369デフォルトの名無しさん
2009/04/01(水) 19:20:35ひたすら一文づつコピー貼り付けで機械訳にかけてたあほすぎる
0370デフォルトの名無しさん
2009/04/02(木) 01:04:31もしかしてレビュー通ったあとはマケプレから金払うしかプレイできない?
今からでも今あるやつは全部保存しといたほうがいいかな。レビュー期限とか掛ってたりしないよね
0371デフォルトの名無しさん
2009/04/02(木) 10:13:460372デフォルトの名無しさん
2009/04/02(木) 19:22:390373デフォルトの名無しさん
2009/04/02(木) 20:15:09みんなゲ製の方を見てるから
0374デフォルトの名無しさん
2009/04/03(金) 00:32:12わざわざ入れなくても描画できるんですが。VertexBufferを通す理由ってなんですか?
0375デフォルトの名無しさん
2009/04/03(金) 01:50:540376デフォルトの名無しさん
2009/04/03(金) 17:02:54四角形を4つ繋げたときの座標はどうすればいいんですか?
必ず三角形を1セットにして座標を指定してテクスチャを細かく貼っていくしかないんですか?
対応させたい四隅を指定して一枚張り付けるようなことはできませんか?
0377デフォルトの名無しさん
2009/04/03(金) 18:36:12その程度、自力で解決できないなら氏んだほうがいいぞ。
少しはググるなりして調べろ屑。
0378デフォルトの名無しさん
2009/04/04(土) 02:35:100,1で向き上下左右の向きだけを表す約束ごとなのかと思ってた。
知ってる人は当たり前すぎて解説サイトどころかヘルプにすら書いてなかった
思いついたあと納得した。ここは教えてくれなくてありがとう。
0379デフォルトの名無しさん
2009/04/04(土) 22:10:51この解釈だと5点以上のTriangleStripに4点で一枚のテクスチャを張り付けて続けて並べていく時
テクスチャ座標が裏返ってしまいます。どうすればいいんでしょうか?
0380デフォルトの名無しさん
2009/04/04(土) 22:20:100381デフォルトの名無しさん
2009/04/04(土) 22:29:590382デフォルトの名無しさん
2009/04/04(土) 22:34:50反転画像を用意して交互にdrawするか
一枚画像を作成して中間点の座標を入れていくかにするかだが
お勧めはレンダーターゲットをテクスチャにして表裏交互のタイル状の一枚画像をプログラム上で作成しそれを
3番目の方法で渡すのがいいかな
0383デフォルトの名無しさん
2009/04/04(土) 23:14:27いつからか途中から頂点カラーフォーマットでやってる時からなんですが面が真っ黒になってるんです
まだライトまでやってないんですが、ベーシックエフェクトでデフォルトライトにングの設定は変更してないんですが真っ黒なんです。
どういう原因が考えられますか?
BasicEffect effect;
void init(){
mVtDec = new VertexDeclaration(game.GraphicsDevice, VertexPositionTexture.VertexElements);
effect = new BasicEffect(game.GraphicsDevice, null);
effect.VertexColorEnabled = true;
effect.EnableDefaultLighting();
effect.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(35.0f), game.aspectRatio, 1.0f, 50000.0f);
}
void Drawground(){
game.GraphicsDevice.VertexDeclaration = mVtDec;
CullMode oldCullMode = game.GraphicsDevice.RenderState.CullMode;
game.GraphicsDevice.RenderState.CullMode = CullMode.CullClockwiseFace;
effect.View = Matrix.CreateLookAt(game.camera.camPos, game.mt.mPos, Vector3.Up);
effect.Begin();
foreach(EffectPass pass in effect.CurrentTechnique.Passes) {
pass.Begin();
int buf = ( vtCountY - 1 ) * vtCountX * 2;
for( int i = 0; i < buf; i += vtCountX*2 ) {
game.GraphicsDevice.DrawUserPrimitives<VertexPositionTexture>( PrimitiveType.TriangleStrip, vpGround, i, primitivesCount );
}
pass.End();
}
effect.End();
game.GraphicsDevice.RenderState.CullMode = oldCullMode;
}
0384デフォルトの名無しさん
2009/04/06(月) 09:57:08ttp://www.riemers.net/eng/recipes30.php
チャプター5-8がまさにそれ
0385デフォルトの名無しさん
2009/04/06(月) 22:50:03まじありがとうございます一時サンプル解析になりそうです
すごいサンプル集です
0386デフォルトの名無しさん
2009/04/07(火) 10:41:37DrawUserPrimitivesとfbxファイルからのロードしたModelを交互にDrawするとDrawUserPrimitivesの方の面が暗くなります。
fbxファイルModelのDrawをコメントアウトして、代わりにSpriteFontでの画面文字描画を入れると明るくなりました。
このあとSpriteFontもコメントアウトして実行しても明るいんですが、fbxファイルModelをDrawするとまた暗くなるんです。
これはどういうことになってるんですか?ビデオカードに状態が保存されてるんでしょうか?
0387デフォルトの名無しさん
2009/04/07(火) 11:40:23再現する最小限のコード出せる?
0388デフォルトの名無しさん
2009/04/07(火) 12:06:17SpriteFontはこれをDrawに交互にいれて
game.font = game.Content.Load<SpriteFont>( "font" );
Draw(){
ame.spriteBatch.Begin( SpriteBlendMode.AlphaBlend, SpriteSortMode.Deferred, SaveStateMode.SaveState );
game.spriteBatch.DrawString( game.font, "Stick.L.X :" + msgX, new Vector2( 11, 11 ), Color.Black );
game.spriteBatch.End();
}
fbxの方もベーシックエフェクトを使ったヘルプの飛行船チュートリアルにあるような基本的なやつです。
public void ModelDraw()
{
foreach( ModelMesh mesh in model.Meshes ) {
foreach( BasicEffect effect in mesh.Effects ) {
effect.World = trans[mesh.ParentBone.Index]
* Matrix.CreateRotationY( mRotaY )
* Matrix.CreateTranslation( mPos );
effect.View = Matrix.CreateLookAt( game.camera.camPos, mPos, Vector3.Up );
}
mesh.Draw();
}
}
が、この3つの組み合わせ方によってDrawUserPrimitivesでDrawした物が明るくなったり暗くなったりするんです。
0389デフォルトの名無しさん
2009/04/07(火) 12:10:34protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
groundCreater. Drawground(); // DrawUserPrimitives
mt.ModelDraw(); // fbx
d2t.Draw(); // SpriteFont
base.Draw(gameTime);
}
0390デフォルトの名無しさん
2009/04/08(水) 08:31:190391デフォルトの名無しさん
2009/04/09(木) 19:21:48レンダーステートも全項目保存して描画後戻したんですがだめでした
2Dスプライトビッチを入れると治るんですがモデルを描画するとおかしくなるんです。
0392デフォルトの名無しさん
2009/04/12(日) 12:02:51今まではグレースケールを用意して、そこから値を取得して高さを出していました。
しかし、2層以上になった場合はどのような方法が有効なのでしょうか
建物のように床、壁など面(階段などのものも作りたいので軸に平行ではない)で構成する予定です
0393デフォルトの名無しさん
2009/04/12(日) 12:38:340394デフォルトの名無しさん
2009/04/12(日) 15:30:57質問の意味がわからない
>当たり判定で質問
>値を取得して高さを出していました。
>どのような方法が有効なのでしょうか
>構成する予定です
表示もできていないのか?
0395デフォルトの名無しさん
2009/04/12(日) 21:50:37ハイトマップ判定から、ポリゴン同士の交差判定に移行したいって話でしょ
とりあえず検索ワードだけ投げとく
OBB - Oriented Bounding Box
PVS - Potentially Visible Set
BSP Tree - Binary Space Partitioning Trees
0396デフォルトの名無しさん
2009/04/13(月) 16:00:08すごいw自分以外でここで質問する人3か月ぶりにみたw
たぶんこのスレ5人前後しかいないと思うけどがんばれ!
0397デフォルトの名無しさん
2009/04/17(金) 12:06:570398デフォルトの名無しさん
2009/04/18(土) 09:01:000399デフォルトの名無しさん
2009/04/20(月) 12:05:420400デフォルトの名無しさん
2009/04/20(月) 20:50:490401デフォルトの名無しさん
2009/04/21(火) 08:50:220402デフォルトの名無しさん
2009/04/21(火) 11:44:29レンダーターゲットを作った後影を作成したいModelの描画で、mesh.Draw;の行で
The active render target and depth stencil surface must have the same pixel size and multisampling type.
というエラーが出てしまいます。
shadowRender = new RenderTarget2D( game.GraphicsDevice, game.GraphicsDevice.PresentationParameters.BackBufferWidth, game.GraphicsDevice.PresentationParameters.BackBufferHeight, 1, SurfaceFormat.Color );
このターゲットのサイズが問題なんでしょうか?
0403デフォルトの名無しさん
2009/04/21(火) 14:45:060404デフォルトの名無しさん
2009/04/21(火) 15:16:26エスパーすぎて鳥肌が立ちました。ありがとうございました!!!
0405デフォルトの名無しさん
2009/05/06(水) 18:37:22このページを参考に、
球と長方形の立体(X形式の3D)とのあたり判定をやってみたかったのですが、
長方形の方の当たり判定が大きすぎてうまくいきません(何もない場所で当たっているという判定になります…)。
そこで調べてみたところBoundingBoxというのを見つけ、
これを使えばいいのかと思い、上のURLのページのSphere2を
BoundingBoxに書き換えたら動くのかと思い試したのですが、
BoxはSphereと記述のしかたが違うらしく実行できませんでした。
XNAで初めてプログラミングというものを体験したため、
BoundingBoxをどのように記述したらいいのかわかりません。
BoundingBoxの記述方法、またはそれを説明しているサイトでもかまいませんので、
どなたか教えていただけませんか?
0406デフォルトの名無しさん
2009/05/06(水) 20:55:22あきらかにバッファリングが追いついてなくて音がブチブチするのは
どうすればいいんだぜ?
OnBufferEndコールバックのたびにov_readしちゃだめ?
■ このスレッドは過去ログ倉庫に格納されています