1 名前:デフォルトの名無しさん [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 デベロッパーセンター www.microsoft.com/japan/msdn/xna/ xna スタジオ xna-studio.jp/ XNA Game Studioメモ www.saturn.dti.ne.jp/~npaka/xna/ ということで立ててみた。
331 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:41:28 ] XBOXはコンテントの参照以外で参照追加したら動かないですか?
332 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 15:30:38 ] 追加できるものなら大丈夫だよ。 ほとんど無いけど。 自作かサードパーティ製の話かな?
333 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 17:53:54 ] >>331-332 ハァ?クラスライブラリは普通に参照して動くだろ。 何のための.NETなんだよ。 サードパーティ製とかアホか。知ったか乙。
334 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 18:05:36 ] 参照するアセンブリが違うんだよ mscorlib.dllからして違う
335 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:59:45 ] クリエーターズクラブってなんでサインインできないの? 現状、全てのソフトがマケプレで公開されてるしレビューとかはどうなっちゃったの?
336 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 22:13:10 ] レビューっていつの時代の話だよそんなのとっくに中止されてる 情弱にも限度ってものがあるぞ・・・
337 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 14:21:00 ] 公式サイトのあの情報の不親切っぷりで情弱というのなら、最早何も言うまい
338 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 10:35:58 ] >>333 自分で作ったクラスライブラリ以外のライブラリはサードパーティ製 ソースで提供されてるものとは違うんだよ?
339 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 02:47:06 ] 新しい項目の追加でGemeCompornentをプロジェクトに追加し、 その中のUpdateにボタンを押した時のコードを追加したのですが、 プロジェクトを実行しても、そのコード、Update自体が実行されませんでした。 どうすれば追加したクラスのUpdateが呼ばれるようになるんですか?
340 名前:デフォルトの名無しさん [2009/03/16(月) 03:53:05 ] だれかー
341 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 03:57:29 ] そのクラスをnewした? という程度の問題ではないよな。
342 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 04:18:50 ] newってもしかして newしたあと自分でUpdate呼び出すんですか? Updateは勝手に呼ばれるんじゃないんですか? だとしたらもしかして、Initializeも自分で呼ばないとですか?
343 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 04:29:24 ] あーごめん、newだけでは動かなくて、 Game派生クラスのComponents.Addを呼んでやらないといけない気がする。
344 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 05:45:55 ] すごいありがとうできました。
345 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 05:54:59 ] これはあまり使われないんですか? どういう場面でGemeCompornentの派生が必要なんでしょうか 追加クラスのUpdateと、元のクラスのUpdateの呼ばれる順番はどうやってきまるんでしょうか
346 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 10:15:59 ] XNA3.0のドキュメントみるといいよ、今は日本語もあるし。 Updateの順序はUpdateOrder
347 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 04:30:10 ] 全然わかりません 自分の実行順位は変えられないですか? 必ずメインのあとに追加の奴来るんです
348 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 10:26:36 ] もう吊れよ
349 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 23:08:05 ] 実家に帰るから小さいノートに環境入れてみたら グラボのスペック不足て実行できない><
350 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 10:34:28 ] >>349 www.riemers.net/eng/Tutorials/XNA/Csharp/ShortTuts/Reference_device.php
351 名前:デフォルトの名無しさん [2009/03/28(土) 14:56:31 ] C#でDirectX扱うとしたら、いまのところこのXNAとSlimDXってところか。
352 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 18:15:48 ] そもそも、パフォーマンスを要求される3Dゲームを.NETでやろうとしてること自体方向性として間違ってるんだよ まさかM$が本気で同人ソフトの開発環境で商売になると思ってるはずもないし 仮にXNAが3Dゲーム開発業界で採用されるようになっても、ユーザーが満足しないだろそんなもん・・
353 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 18:18:02 ] パフォーマンスを要求されるゲームならそれなりの環境用意して作ればいいじゃない。
354 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 19:06:45 ] TriangleStripでジグザグに6点打って4面の長方形書くのはわかるんですが長くしないで次の段にする時って折り返すしかないんですか? x,yの2階層ループで作成させる時うまく書けないんですがこれ絶対ひと筆書きにできないとDrawUserPrimitivesをxかyごとに 繰り返さないとだめですよね?
355 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:18:29 ] ごめんオフセットの引数が用意されてたこれ使えば書けそう
356 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 00:42:19 ] 全面うらがえってるんですがこれ単純に裏返すにはどうすればいいんですか? 時計回りに描画するかどうかで分かれると書いてあるのを見たんですがTriangleStripにそんな状態なくないですか?
357 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 01:25:20 ] ヴァカ登場
358 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 02:06:52 ] 日本語の意味がよくわからんのだけど、エスパー的に答えるとすると もし本当にオブジェクトの面の表裏が意図したのと逆になってるなら 単に頂点の位置指定が全部反時計回りになってるんじゃね? もしくはカリングの指定が逆になってるんじゃね? もしTriangleStrip使ってて、一枚おきに裏表が逆になってるなら、それは仕様だ どうやっても頂点指定が時計回りと反時計回りの交互になるから、カリング使うのやめれ GraphicsDevice.RenderState.CullMode でも調べてみ
359 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 02:29:38 ] いや、そもそも右手座標系と左手座標系の設定が逆になってる可能性があるなw
360 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 03:06:13 ] thx。これまた深いところにある設定が出てきたね・・・ CullClockwiseFaceがデフォルトって書いてあるけど、描画前に再設定するように書いたらターゲットは元に戻った けど、他のFBXから取り込んでるオブジェクトの描画じゃなくて動作が逆になった。不明すぎる そもそもTriangleStripが内部でどっち回転で作り上げてるのかあたりが納得いかない 奇数どうし偶数どうしを繋いでるのはわかるけどそれだと交互に裏表になるはずなのになってないし。仕様だと交互になるの?? あとはなんとか出来そう、ありがと
361 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 04:30:23 ] msdn.microsoft.com/ja-jp/library/microsoft.xna.framework.graphics.primitivetype.aspx PrimitiveType で TriangleStrip が指定されてれば、 自動的に偶数面の裏表が逆にレンダリングされてるらしいよ もっとも、これで実行速度が速くなるのかは疑問だけど・・・ TriangleStripって、使うとこでは使ってるのだろうか
362 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 14:11:43 ] 一昔前はデフォだったけど 今はそうでもないんじゃない?
363 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 14:24:20 ] 次の点が前の点よりX座標上で小さくなるようにしたらyがプラスの方向が上になった。結局表裏交互にはならなかった。もうこれはいいやw プリミティブの作られる3種類から選ぶとするとStripかFanしかないと思うんだけど 高さマップのサンプル見るとTriangleListの形で追加していってるけどこれStripの倍の容量になると思うんだけど 深い意味あるのかな。速度を考えるからこそStripを使うべきだと思ったんだけど でも結局内部でTriangleListに変換されてるから最初から容量は多くなってもTriangleStripではなくTriangleList形式で格納しろとかなんだろうなぁ 計ってみるけど
364 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 17:55:17 ] >>354 折り返し地点で縮退ポリゴン作ってやれば? 無駄なポリゴン作ることになるけど長い目でみればTriangleStripの方が有利でしょ
365 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 16:12:31 ] 公式でBoundingSphereがわかるサンプルってありませんか?
366 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 17:06:44 ] 公式って付属のドキュメントとかCreatersClubOnlineとか含む?
367 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 17:21:18 ] まあちょっと探してみたけど、 ttp://creators.xna.com/en-US/sample/picking これと付属(日本語版は別途ダウンロードか)のドキュメントでいいんじゃない?
368 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:17:05 ] いいサンプルありがとう
369 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:20:35 ] 日本語版のマニュアルってあるんだ・・・知らなかった ひたすら一文づつコピー貼り付けで機械訳にかけてたあほすぎる
370 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 01:04:31 ] レビュー待ちのゲームしかダウンロードできないんだけど もしかしてレビュー通ったあとはマケプレから金払うしかプレイできない? 今からでも今あるやつは全部保存しといたほうがいいかな。レビュー期限とか掛ってたりしないよね
371 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 10:13:46 ] たしかレビューから消えるとローカルにあるやつも動作しなくなると言ってたような・・
372 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:22:39 ] なんでこのスレこんなに情報が薄いの?
373 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:15:09 ] 公式からして情報が薄いのと みんなゲ製の方を見てるから
374 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 00:32:12 ] VertexBufferってどういう効果があるんですか? わざわざ入れなくても描画できるんですが。VertexBufferを通す理由ってなんですか?
375 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 01:50:54 ] 適切に使えばパフォーマンスの向上が見込める
376 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 17:02:54 ] VertexPositionTextureで4点四角形のテクスチャ座標はわかるんですが 四角形を4つ繋げたときの座標はどうすればいいんですか? 必ず三角形を1セットにして座標を指定してテクスチャを細かく貼っていくしかないんですか? 対応させたい四隅を指定して一枚張り付けるようなことはできませんか?
377 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 18:36:12 ] いい加減、おまえウザイ。 その程度、自力で解決できないなら氏んだほうがいいぞ。 少しはググるなりして調べろ屑。
378 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 02:35:10 ] ほんとだ自力でわかったテクスチャ座標ってテクスチャの一辺を0~1にして1が100%の割合の事だったんだね 0,1で向き上下左右の向きだけを表す約束ごとなのかと思ってた。 知ってる人は当たり前すぎて解説サイトどころかヘルプにすら書いてなかった 思いついたあと納得した。ここは教えてくれなくてありがとう。
379 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:10:51 ] やっぱりだめでした この解釈だと5点以上のTriangleStripに4点で一枚のテクスチャを張り付けて続けて並べていく時 テクスチャ座標が裏返ってしまいます。どうすればいいんでしょうか?
380 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:20:10 ] TriangleStripを捨てろ
381 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:29:59 ] TriangleStripでは不可能だと思うけどな
382 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:34:50 ] 上のほうにも書いてあったけど縮退ポリゴンを使って2点ダブらせるか 反転画像を用意して交互にdrawするか 一枚画像を作成して中間点の座標を入れていくかにするかだが お勧めはレンダーターゲットをテクスチャにして表裏交互のタイル状の一枚画像をプログラム上で作成しそれを 3番目の方法で渡すのがいいかな
383 名前:デフォルトの名無しさん mailto:sage [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; }
384 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:57:08 ] >>379 ttp://www.riemers.net/eng/recipes30.php チャプター5-8がまさにそれ
385 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 22:50:03 ] >>384 まじありがとうございます一時サンプル解析になりそうです すごいサンプル集です
386 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 10:41:37 ] だめです、なぜ面が暗くなるのかわかりません。頂点カラーで3点それぞれ違う色にした時模様がでるので真っ黒ではなくて暗くなってるんです。 DrawUserPrimitivesとfbxファイルからのロードしたModelを交互にDrawするとDrawUserPrimitivesの方の面が暗くなります。 fbxファイルModelのDrawをコメントアウトして、代わりにSpriteFontでの画面文字描画を入れると明るくなりました。 このあとSpriteFontもコメントアウトして実行しても明るいんですが、fbxファイルModelをDrawするとまた暗くなるんです。 これはどういうことになってるんですか?ビデオカードに状態が保存されてるんでしょうか?
387 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 11:40:23 ] 状況がよくわからん。 再現する最小限のコード出せる?
388 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 12:06:17 ] DrawUserPrimitivesのDraw部分は>>383 です SpriteFontはこれを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した物が明るくなったり暗くなったりするんです。
389 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 12:10:34 ] メインのDraw部分はこれです protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); groundCreater. Drawground(); // DrawUserPrimitives mt.ModelDraw(); // fbx d2t.Draw(); // SpriteFont base.Draw(gameTime); }
390 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 08:31:19 ] ModelDrawのmesh.Draw(SaveStateMode.SaveState)にするとか?
391 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 19:21:48 ] それは試したんですがだめでした。 レンダーステートも全項目保存して描画後戻したんですがだめでした 2Dスプライトビッチを入れると治るんですがモデルを描画するとおかしくなるんです。
392 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 12:02:51 ] 3Dの地形との当たり判定で質問なのですが、 今まではグレースケールを用意して、そこから値を取得して高さを出していました。 しかし、2層以上になった場合はどのような方法が有効なのでしょうか 建物のように床、壁など面(階段などのものも作りたいので軸に平行ではない)で構成する予定です
393 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 12:38:34 ] 床判定用のポリゴンを用意するとかはよくやるけども。
394 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 15:30:57 ] >>392 質問の意味がわからない >当たり判定で質問 >値を取得して高さを出していました。 >どのような方法が有効なのでしょうか >構成する予定です 表示もできていないのか?
395 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 21:50:37 ] 質問の意味がわからない奴が分からない ハイトマップ判定から、ポリゴン同士の交差判定に移行したいって話でしょ とりあえず検索ワードだけ投げとく OBB - Oriented Bounding Box PVS - Potentially Visible Set BSP Tree - Binary Space Partitioning Trees
396 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 16:00:08 ] >>392 すごいw自分以外でここで質問する人3か月ぶりにみたw たぶんこのスレ5人前後しかいないと思うけどがんばれ!
397 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 12:06:57 ] .fxファイルで頂点シェーダを使って頂点の移動をさせて、ライトの設定はBasicEffectにするにはどうすればいいんですか?可能ですか?
398 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 09:01:00 ] 無理
399 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 12:05:42 ] XNAで簡単にできる影はなにか用意されてますか?
400 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 20:50:49 ] 無い
401 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 08:50:22 ] ヒント;丸影
402 名前:デフォルトの名無しさん mailto:sage [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 ); このターゲットのサイズが問題なんでしょうか?
403 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 14:45:06 ] アンチエイリアスを切ってみては?
404 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 15:16:26 ] なんでアンチエイリアスしてるの分かったんですかw エスパーすぎて鳥肌が立ちました。ありがとうございました!!!
405 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 18:37:22 ] sorceryforce.com/xna/tips_collisionsphereandsphere.html このページを参考に、 球と長方形の立体(X形式の3D)とのあたり判定をやってみたかったのですが、 長方形の方の当たり判定が大きすぎてうまくいきません(何もない場所で当たっているという判定になります…)。 そこで調べてみたところBoundingBoxというのを見つけ、 これを使えばいいのかと思い、上のURLのページのSphere2を BoundingBoxに書き換えたら動くのかと思い試したのですが、 BoxはSphereと記述のしかたが違うらしく実行できませんでした。 XNAで初めてプログラミングというものを体験したため、 BoundingBoxをどのように記述したらいいのかわかりません。 BoundingBoxの記述方法、またはそれを説明しているサイトでもかまいませんので、 どなたか教えていただけませんか?
406 名前:デフォルトの名無しさん [2009/05/06(水) 20:55:22 ] XAudio2とOggVorbisでストリーミング再生試してるんだけど、 あきらかにバッファリングが追いついてなくて音がブチブチするのは どうすればいいんだぜ? OnBufferEndコールバックのたびにov_readしちゃだめ?
407 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 21:01:35 ] >BoundingBoxをどのように記述したらいいのかわかりません。 の意味がわからない //宣言 private Model model = null; private BoundingSphere baseBoundingSphere = new BoundingSphere(); // モデルを作成 this.model = this.Content.Load<Model>("Sphere"); // 包括球取得 this.baseBoundingSphere = this.model.Meshes[0].BoundingSphere; だとしたら”Sphere”を”Box”にして判定部分いじれば?
408 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 21:03:40 ] >>406 スレ違い
409 名前:デフォルトの名無しさん [2009/05/06(水) 21:17:04 ] >>408 directxでもそう言われたんだがどこへ行けばいいんだぜ?w
410 名前:405 mailto:sage [2009/05/06(水) 21:36:41 ] >>407 さんの言うように、 自分もSphereをBoxに書き換えるだけでいいと思っていたのでやってはいたのですが、 モデルの作成までは問題はなかったのですが、 包括球取得(Boxなので包括箱?)で this.baseBoundingBox = this.model.Meshes[0].BoundingBox; と書くと、 'Microsoft.Xna.Framework.Graphics.ModelMesh' に 'BoundingBox' の定義が含まれておらず、 型 'Microsoft.Xna.Framework.Graphics.ModelMesh' の最初の引数を受け付ける拡張メソッドが見つかりませんでした。 using ディレクティブまたはアセンブリ参照が不足しています。 というエラーがでてしまい、実行できませんでした。 このため、BoundingBoxはBoundingSphereとは記述の仕方が違うのかと思い、>>405 の質問をさせていただきました。
411 名前:407 mailto:sage [2009/05/06(水) 21:52:04 ] すまんかった、試してないけど BoundingBox.CreateFromSphere( でいいと思う
412 名前:405 mailto:sage [2009/05/06(水) 23:25:46 ] >>411 this.baseBoundingBox = BoundingBox.CreateFromSphere(baseBoundingSphere); と書き換え、 // 各モデル用の包括球半径設定 this.sphere1BoundingSphere.Radius = this.baseBoundingSphere.Radius; this.sphere2BoundingSphere.Radius = this.baseBoundingSphere.Radius; this.box1BoundingBox.Max = this.baseBoundingBox.Max; ←Radiusの代わりにMaxとMinがあったので this.box1BoundingBox.Min = this.baseBoundingBox.Min; 書き換えました // 衝突判定用の球と箱を設定 this.sphere1BoundingSphere.Center = this.sphere1Position + this.baseBoundingSphere.Center; this.sphere2BoundingSphere.Center = this.sphere2Position + this.baseBoundingSphere.Center; this.box1BoundingBox.Max = this.box1Position + this.baseBoundingBox.Max; this.box1BoundingBox.Min = this.box1Position + this.baseBoundingBox.Min; // 球1と箱の衝突判定 this.isCollision = this.sphere1BoundingSphere.Intersects(this.box1BoundingBox); と書き換えた結果、実行は出来たのですが 当たり判定の箱の大きさが長方形に合いませんでした。 koideai.com/up/src/up19910.png koideai.com/up/src/up19911.png koideai.com/up/src/up19912.png このようになってしまいます。 MaxとMinの設定が間違っているのでしょうか?
413 名前:405 mailto:sage [2009/05/06(水) 23:29:50 ] 書き忘れましたが、 this.baseBoundingBox = BoundingBox.CreateFromSphere(baseBoundingSphere); のBoundingBox.CreateFromSphere();の()内も間違っているかもしれません。
414 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 19:58:23 ] >>412 画像消えてて状況がわからん。
415 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 20:57:41 ] 新しい出会いをゲットした状況ってことだろ? 分かってやれよ。
416 名前:405 mailto:sage [2009/05/07(木) 21:10:06 ] ごめんなさい画像消えてしまってたんですね。アップし直しました。 up2.viploader.net/pic/src/viploader1006962.png up2.viploader.net/pic/src/viploader1006966.png up2.viploader.net/pic/src/viploader1006968.png
417 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 21:56:54 ] >>416 BoundingBox.CreateFromSphere(baseBoundingSphere); これだと、baseBoundingSphereの大きさのBoxになっちゃうぞ。 画像の3枚目の赤い枠も球の大きさになってるだろ?
418 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 22:41:12 ] >当たり判定の箱の大きさが長方形に合いませんでした。 また意味がわからない 普通に箱として描いてみれば? あと念のため判定法は玉とは違うのは知ってるよね?
419 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 22:51:47 ] 絵のとおりになるのが正しい結果だと思う。 どうなることを期待しているのか書かないと分からないよ。 (球より1まわり小さいBOXを期待している?)
420 名前:405 mailto:sage [2009/05/07(木) 23:31:52 ] >>417 ()内に書いたものの大きさになる?ってことだったんですか。 たしかに球の大きさの箱になっていたので何故だろうと思ってました。 >>418 Sphereは物体の半径を出して、その半径に合わせて当たり判定の球を作る というものだと考えてました。 X形式の3Dの長方形は横幅が大きすぎるせいで半径が大きいので、 とても大きな当たり判定の球になってしまってました。 >当たり判定の箱の大きさが長方形に合いませんでした。 この書き込みに関してはBounding.CreateFromSphereを間違って認識していたせいです。 baseBoundingSphereの大きさのBoxではなく、 長方形のモデルの大きさのBoxが出来上がるものだと思っていたので、大きさが合わないなと思ってました。 BoundingBoxにはモデルのMaxとMinの座標を入れたら良いようなのですが、 長方形のモデルのMaxとMinの座標をどのように取得して、どこにそれを書けば良いのかがわかりませんでした。 >玉とは判定法が違う this.isCollision = this.sphere1BoundingSphere.Intersects(this.sphere2BoundingSphere); これの()内のsphere2BoundingSphereをbox1BoundingBoxに 書き換えるだけではダメということですか? >>419 真ん中に球を表示していたのでわかりにくくなってしまって申し訳ないです。 up2.viploader.net/pic/src/viploader1007156.png この画像のような当たり判定の箱を作りたかったのです。 真横からの視点なのでわかりにくいのですが、 画面の真ん中を横断しているのは3Dの直方体です。
421 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 00:26:46 ] >>405 の参考にしたサイト一通り見てきたんだが球と球の当たり判定は解説してんのに BoundingBoxの解説は無いんだな。 どーせどこかに書いてあるのに、よく読まないで 質問してるんだと思ってたわw 更新もたまにしかしてないようだし 英語読めるなら海外のサイト見た方が勉強になるぞ。 日本のサイトよりも明らかに情報量多いし。 英語読めなくてもヤフーか何処かで翻訳しながら見たらいいだけだしな。
422 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 21:52:26 ] this.box1BoundingBox.Max = this.box1Position + new Vector3(10, 1, 10); this.box1BoundingBox.Min = this.box1Position + new Vector3(-10, -1, -10); みたいなことしたらそれっぽくならないかな?
423 名前:405 mailto:sage [2009/05/08(金) 22:46:52 ] >>421 Web翻訳しながら海外のサイト見て勉強してみます。 >>422 Vector3の値を直方体にあわせて微調整したら、うまく直方体を覆う当たり判定の箱ができました。 ありがとうございますm(_ _)m そうやったら箱の大きさ調整できるんですね、勉強になりました。 アドバイスくれた皆さんありがとう。 XNAのサイト検索して勉強してきます。
424 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 19:55:04 ] XNA Animation Component Libraryを利用して foreach (ModelMesh mesh in model.Meshes) { foreach (Effect effect in mesh.Effects) { if (effect is BasicPaletteEffect) { BasicPaletteEffect palette = (BasicPaletteEffect)effect; palette.LightingEnabled = true; palette.EmissiveColor = new Vector3(1, 0, 0); } } } のように自己照明を設定しても反映されないのは何が原因だと考えられますか? AmbientLightColorなどの他のパラメータはそのまま表現されているのですが emissiveだけモデル自体のものも渡した値も反映してくれないのでどうしていいものやら…
425 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 06:00:15 ] >>424 自己解決しました ライトを切るとemissiveの自己照明の効果が出るようなので emissiveの値を持つ場合 palette.LightingEnabled = false; で誤魔化すことにしました なぜライトと併用できないのかは解りませんでしたが…
426 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 19:34:54 ] XNAを用いて、PC同士で通信したいのですが、 ローカルでも、クラブメンバーにはいらないとだめですか? システムリンクはいらないとネットでみたので、 いろいろ試してるのですが、どれもクラブメンバーにっていわれてエラー落ちで。 メンバーにはいらなくてもいけるのであれば、 サンプルののってるサイトなどありましたら教えてください。
427 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 20:32:40 ] >>426 PCだけでいいならいくらでもサンプルあるだろ。ググれよ、カス。
428 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 20:57:20 ] >>426 CreatorsClubのサンプルは試しましたか?
429 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 00:20:19 ] LAN通信ならメンバーに入らなくてもできるはずだぞ
430 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 00:42:19 ] クラブメンバーじゃなくてLiveIDでは?
431 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 00:45:22 ] LANでかつPCなら通信できますよ ただしこのサービス使うのにゲーマータグが必要 ローカルなタグならネットに出なくても作れる このタグ作成をメンバーと思っているんじゃないかな。