[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/10 14:37 / Filesize : 200 KB / Number-of Response : 863
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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/

ということで立ててみた。


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なら通信できますよ
ただしこのサービス使うのにゲーマータグが必要
ローカルなタグならネットに出なくても作れる
このタグ作成をメンバーと思っているんじゃないかな。

432 名前:デフォルトの名無しさん [2009/07/01(水) 10:07:29 ]
PC同士なら.NET使い放題なんだからどうとでもできるだろ
無理にXNAの枠内でやる必要はない

433 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 11:15:15 ]
>>426-432
誰か情報をまとめてくれ偉い人

434 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 11:28:08 ]
情報というか話をまとめてくれ
ネットワークゲームの選択肢とかチュートリアル、解説

435 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 11:30:20 ]
>>433
msdn.microsoft.com/ja-jp/library/bb975801(XNAGameStudio.30).aspx
まとめてみました

436 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 11:30:56 ]
>>435


437 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 22:27:44 ]
XNA3.0を使っています
SpriteFontを使った日本語の表示は出来たのですが、
入力された日本語を表示させる、といった処理が出来ません。
具体的には
FormのTextBoxに日本語を入力→XNAの画面に入力された日本語を表示
といった感じです。
どんな文字が入力されても対応出来るようにしたいんですが、出来るんでしょうか?



438 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 22:39:49 ]
>>437
これ参考にすれば良い。
xna.oiran.org/test.html

439 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 22:53:51 ]
アバターに影をつける方法知ってる人いますか?

440 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 16:46:57 ]
3Dゲームを作ろうとしているのですが
上り坂や下り坂を作るには
坂の境界ボックスを回転させる(?)みたいなことをすればよいのでしょうか
現在BoundingBox.MaxとBoundingBox.Minを設定して境界ボックスの大きさを設定しているんですが
境界ボックスを回転させる方法がわかりません よろしければ教えてください お願いします



441 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 17:04:31 ]
BoundingBoxはそういうのには使えないと思うよ

442 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 19:22:18 ]
そうなんですか ありがとうございます 別の方法を探してみます






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<200KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef