【みんな】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/
ということで立ててみた。
0751デフォルトの名無しさん
2010/04/26(月) 23:44:350752デフォルトの名無しさん
2010/04/27(火) 00:19:24なんと!!
くわしく頼む。
0753750
2010/05/02(日) 04:30:42もともと、ひげねこのブログにXNA4.0について以下のように書いてあったんだ。
>以前はSpriteSortMode.Immediateを指定してもテクスチャが同じ場合はSpriteBatch.End
>メソッドが呼ばれたときにまとめて描画するようになっていましたが、4.0ではSpriteB
>atch.Being/End間でEffectのパラメーターを変更しながら描画するというシナリオに対
>応する為にSpriteSortMode.Immediateを指定した場合はDrawを呼ぶごとに実際に描画
>するようになりました。
んで、確認してみた。
0754750
2010/05/02(日) 04:36:23�@Effectが一個ずれて適用される。
→EffectのBegin()-End()がなくなり、Apply()を使用するようになりずれなくなってた。
→CommitChangesも不要。
�A同じテクスチャを連続して描画すると、最後のEffectが全部に適用されてしまう
→個別にちゃんと適用されるようになってた。
って感じだった。
XNA Game Studio 4.0 CTPで確認。
いじょー、ねよっと
0755デフォルトの名無しさん
2010/05/02(日) 09:25:350756>>719
2010/05/02(日) 14:51:03これでめんどくさいメソッド作ったりダミー作らなくてもすむわけだな。
確認ありがとう
0757デフォルトの名無しさん
2010/05/03(月) 01:26:54ノベルゲーム作ってて、
文字列を都度読み込みDrawString()で描画してます
で、画面右端にいったら、自動で改行するようにしたいんだけど、どうやればいいかわかりませんでしょうか
プロポーショナルフォント使うつもりなので、文字幅が一定じゃないです…
スプライトフォントの文字幅を取得する事ってできないですかね
0758デフォルトの名無しさん
2010/05/03(月) 09:44:13で、一文字ずつ計測して表示限界まで達したら折り返し処理を自前で実装。
まあ大体自動で折り返しとかやってないよ。
X文字までとか言う制限をチェックするツールを作って、
それにとおして検出された行を手直し。
自動で折り返しとかするとゲームのメッセージウィンドウで
読みにくかったりするからね。
0759デフォルトの名無しさん
2010/05/03(月) 09:45:03f.MeasureString(s)
0760デフォルトの名無しさん
2010/05/04(火) 00:20:57できましたー、ありがとうございます
>まあ大体自動で折り返しとかやってないよ。
ふむー、そうなんですか・・・
とりあえず、自分の思うようにつくってみて、
不自然なら、やり方を変えてみます
助かりましたー
0761デフォルトの名無しさん
2010/05/07(金) 22:43:38モデルのテクスチャー自身の中身を書き換えたいので、
GraphicsDevice.SetRenderTarget関数を使って、矛先をテクスチャー素材に向けて、spriteBatch.Drawをやろうとしたんですが、
サーフェースの型が合わないと怒られてしまいます。
基本部分は3Dなので深度込みのサーフェースで、矛先がテクスチャーはRGB24ビットと違う型なので
エラーの言いたい事は分かるのですが、グラフィックデバイスとシェーダー(BasicEffect)の相関関係が理解できていないので、
対処法が分かりません。
グラフィックデバイスのインスタンスってやはり一個に限定されたりするんでしょうか。
ど〜かアドバイスをお願い致します。 orz
0762デフォルトの名無しさん
2010/05/07(金) 23:42:45orz
がむかつくので教えない。
0763761
2010/05/08(土) 06:26:11512*512なら通るのに1024*1024だとエラーになるのねw
0764デフォルトの名無しさん
2010/05/08(土) 06:51:28なんかこいつ生理的にムカつく。
0765デフォルトの名無しさん
2010/05/09(日) 08:54:21よくクズだと見抜いたな
0766デフォルトの名無しさん
2010/05/09(日) 09:30:170767デフォルトの名無しさん
2010/05/09(日) 10:06:560768デフォルトの名無しさん
2010/05/09(日) 11:19:01360でも動く?
0769デフォルトの名無しさん
2010/05/09(日) 12:12:40でもIronRubyがWP7に対応してるらしいから360でも動くんじゃないかな
0770デフォルトの名無しさん
2010/05/09(日) 13:22:500771デフォルトの名無しさん
2010/05/09(日) 13:34:17LuaInterfaceはまともだけどネイティブのLuaのラッパーだから360では使えない
IronLuaはどっちみち使えないけどIron〜系はLCG使ってるから
基本的にcompact frameworkでは動かない
WP7版のIronRubyはCFで動くようにLCG削ってインタプリタモードだけにしてある
0772デフォルトの名無しさん
2010/05/17(月) 23:39:020773デフォルトの名無しさん
2010/05/18(火) 02:26:142008EEのsp1が本体含んでるよ
まだ落とせる
0774デフォルトの名無しさん
2010/05/18(火) 04:11:28XNAなんかで遠回りするのはやめておけ
必ず後悔するぞw
0775デフォルトの名無しさん
2010/05/18(火) 08:43:54360でゲーム作るならXNA使うしかないじゃん
0776デフォルトの名無しさん
2010/05/18(火) 22:38:490777デフォルトの名無しさん
2010/05/21(金) 22:01:55C#使ってると、いまさらC++には戻りたくないんだが・・・
0778デフォルトの名無しさん
2010/05/21(金) 23:12:360779デフォルトの名無しさん
2010/05/22(土) 20:04:21.NET系の中では最も配布が簡単
0780デフォルトの名無しさん
2010/05/23(日) 14:54:350781デフォルトの名無しさん
2010/05/23(日) 15:04:100782デフォルトの名無しさん
2010/05/23(日) 15:07:240783デフォルトの名無しさん
2010/05/23(日) 15:47:24もしかしてCreateFromAxisAngleのことですか?
0784デフォルトの名無しさん
2010/05/23(日) 19:15:360785デフォルトの名無しさん
2010/05/24(月) 10:43:07これで回転させているのですが、回転させたときにモデルが横に引き伸ばされてしまいます。
どなたか原因が分かる方はいらっしゃいますでしょうか?
もしいるのであれば原因と解決法をお教えいただけないでしょうか?
お願いします。
0786デフォルトの名無しさん
2010/05/24(月) 13:27:030787デフォルトの名無しさん
2010/05/24(月) 13:50:33ありがとうごさいます。解決しました。
0788デフォルトの名無しさん
2010/05/24(月) 23:27:58どなたか教えてください、お願いします。
0789デフォルトの名無しさん
2010/05/24(月) 23:34:510790デフォルトの名無しさん
2010/05/24(月) 23:43:11if (現在のフレームでマウスボタンが押されている) {
if (!A) { A = true; B = 現在のマウス座標; }
else { var d = 現在のマウス座標 - B; dに応じてモデル回転; B = 現在のマウス座標; }
} else { A = false;
0791デフォルトの名無しさん
2010/05/25(火) 00:03:38ありがとうございました!
0792デフォルトの名無しさん
2010/05/26(水) 03:18:070793デフォルトの名無しさん
2010/05/26(水) 22:17:24上記のひにけにさんのサイトにある自動XNBファイルシリアライズを参考に
XMLファイルからデータを取り込もうとしています。
シンプルな例に言われるとおりにやってみたのですが、エラーを出してしまいます。
他プロジェクトでできたDLLを参照設定に追加してやってみましたが、ビルドは成功するものの
Neko[] cats = Content.Load<Neko[]>("cats");
の部分で読み込みエラーをしてしまいます。
エラー内容は
"cats" の読み込み中にエラーが発生しました。
ContentTypeReader Microsoft.Xna.Framework.Content.ArrayReader`1
[[MyDataTypes.Neko, MyDataTypes, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null]] が見つかりません。
どなたかエラー原因がわかる方がいませんでしょうか?
よろしくお願いします
0794デフォルトの名無しさん
2010/05/27(木) 02:00:480795デフォルトの名無しさん
2010/05/27(木) 10:53:29話がよくわからないけど、こっちで再現できるだけの材料ある?
0796デフォルトの名無しさん
2010/05/27(木) 10:55:180797デフォルトの名無しさん
2010/05/27(木) 19:06:18まだXNA初めて4ヶ月ぐらいなので、もしかしたら根本的な部分が間違っている
のかもしれません・・・。
下のコメントは読みましたが、すでに本文の方も修正されているみたいです
0798デフォルトの名無しさん
2010/05/30(日) 11:23:08これ、3.1の新機能なんだけどバージョンは3.1になってる?
0799デフォルトの名無しさん
2010/05/30(日) 11:33:15プロジェクト新規作成 WindowsGame1
プロジェクト新規追加 MyDataTypes
MyDataTypesプロジェクトにNekoクラス作成
WindowsGame1プロジェクトの参照設定、本体、Contentの両方にMyDataTypes追加
WindowsGame1プロジェクトにContent追加XMLファイルでcats.xml
WindowsGame1プロジェクトでContent.Load<Neko[]>("cats")追加
これだけだったよ、実行時もエラー出ない。
0800デフォルトの名無しさん
2010/05/30(日) 21:25:12Y軸を回転軸に180°回転させた後、
X軸やZ軸を回転軸に回転させると、自分から見て回転する方向が反対になってしまいます。
このような現象を解消し、自分から見て常に同じ方向に回転させるにはどのようにしたらよろしいでしょうか?
もし解る方がいらっしゃるのでしたらお教え願いませんでしょうか?
お願いします。
0801デフォルトの名無しさん
2010/05/30(日) 21:58:20そりゃ、回転軸も180度回転させるしか。
0802デフォルトの名無しさん
2010/05/30(日) 22:54:40オイラー角で姿勢を保持するのをやめる。
0803デフォルトの名無しさん
2010/05/30(日) 23:21:28どのようにしたらよいのでしょうか?
0804デフォルトの名無しさん
2010/05/30(日) 23:53:18Quaternionっての使うと、回転軸+回転角で情報持てる。
0805デフォルトの名無しさん
2010/05/31(月) 22:12:43ご丁寧に教えていただきありがとうございます。
書いてあるとおりにして、using MyDataTypes;を入れれば読み込んでくれました
どうもありがとうございました。
0806デフォルトの名無しさん
2010/05/31(月) 22:39:11Quaternionの使い方が難しくてよくわかりません。
Y軸のと(1、0、−1)の軸の回転をそれぞれQuaternion.CreateFromAxisAngleで行った後、
Quaternion.Concatenate(Y軸、(1、0、−1))で結合しているのですが、
上手く回転できません。
どなたかわかる方がいらっしゃったらお教え願いませんでしょうか?
お願いします。
0807デフォルトの名無しさん
2010/05/31(月) 23:19:46回転自体をイメージできてないんだったら、オイラー角だろうがクオータニオンだろうが何使ってもダメなもんはダメだと思うんだが。
0809デフォルトの名無しさん
2010/06/01(火) 00:09:34X軸回転の後Y軸回転したらどうなるか、とかいろいろやって何が起こるか試してみるといい。
この辺のマトリクスの仕組みを理解しないと思い通りに動かすのは難しいよ。
0810デフォルトの名無しさん
2010/06/01(火) 00:54:04回転の順序逆なんじゃね?
0811デフォルトの名無しさん
2010/06/01(火) 11:35:06(1、0、−1)の軸で回転させてから、
Y軸で回転させるということでしょうか?
0812デフォルトの名無しさん
2010/06/01(火) 11:39:24行列の右結合と左結合が逆。
自分の意図してる方と同じ回転順序になってない。
0813デフォルトの名無しさん
2010/06/03(木) 22:53:20XMLを二次元配列で読み込む方法はないでしょうか?
当然、XMLファイルも今のままではダメだと思うのですが、
<item>の中に<item>を作ればいいのでしょうか?
0814デフォルトの名無しさん
2010/06/04(金) 16:14:010815デフォルトの名無しさん
2010/06/04(金) 16:14:580816デフォルトの名無しさん
2010/06/06(日) 12:06:00なるほど
やってみます!
0817デフォルトの名無しさん
2010/06/06(日) 12:29:23型 'クラス名' を反映中にエラーが発生しました。
ってエラーになります。
配列の部分をコメントアウトすれば、エラーがなくなりXmlファイルが生成できます
配列を含むXmlを作る時には、何か方法が違うのでしょうか?
0818デフォルトの名無しさん
2010/06/06(日) 12:42:01そもそも多次元配列はシリアライズできないよね?まあジャグ配列にしたんだろうけど。
リーダーライター自分で書くのが確実な気が
0819デフォルトの名無しさん
2010/06/06(日) 12:51:05何のメリットも無いから使わなくていいよ
0820デフォルトの名無しさん
2010/06/06(日) 18:24:08ゲームなんか作るときは
コードの分かりやすさとか管理のしやすさがメリットとしてあると思うけど。
二次元グリッドで番地的にオブジェクトだのポリゴンだのしまっておくときとか。
0821デフォルトの名無しさん
2010/06/06(日) 18:26:050822デフォルトの名無しさん
2010/06/06(日) 18:38:44Listを使った方がいい、とか言いいたいならまだ分かるけど、
「多次元配列」自体にメリットがないという意味が理解できない。
(もっとも、速度は固定長の普通の配列の方が速いだろうし、
使い勝手としてはListとかの方がいいだろうし、そこの選択は適材適所だとして)
0823デフォルトの名無しさん
2010/06/07(月) 21:33:30>何のメリットも無いから使わなくていいよ
なんだよ、根拠もないのかよ。
0824デフォルトの名無しさん
2010/06/08(火) 11:50:05それでなくちゃいかんという場面が思いつかないね
0825デフォルトの名無しさん
2010/06/15(火) 13:35:40この現象を解消するにはどうしたらよいのでしょうか。
どなたかわかる方がいらっしゃったらお教え願いませんでしょうか?
お願いします。
0826デフォルトの名無しさん
2010/06/15(火) 13:46:27どうやってんのよ
0827デフォルトの名無しさん
2010/06/15(火) 14:22:26例えばSpriteBatchと一緒に使っていて、レンダーステート変更されてしまっているんじゃないかな?
http://blogs.msdn.com/b/ito/archive/2007/03/13/spritebatch-part2.aspx
0828デフォルトの名無しさん
2010/06/15(火) 14:38:03そうです。
モデルだけを表示していた時は普通に表示できたのですが、
文字も一緒に表示するとおかしくなりました。
0829デフォルトの名無しさん
2010/06/15(火) 14:43:390830デフォルトの名無しさん
2010/06/15(火) 16:58:17他の回転軸を固定したまま回転させることってできないのでしょうか?
(回転軸の固定とは、ベクトル方向が自分から見て常に同じ向きを向いているという意味です。)
0831デフォルトの名無しさん
2010/06/15(火) 17:00:040832デフォルトの名無しさん
2010/06/15(火) 17:19:12ググってみた
http://www.arakin.dyndns.org/gl_torusquat.php
0833デフォルトの名無しさん
2010/06/16(水) 16:03:530834デフォルトの名無しさん
2010/06/16(水) 16:05:010835デフォルトの名無しさん
2010/06/16(水) 16:31:360836デフォルトの名無しさん
2010/06/16(水) 16:37:04Matrixから作ったQuaternionのxの部分を表示するにはどのようにしたらよいのでしょうか?
0837デフォルトの名無しさん
2010/06/16(水) 16:47:040838デフォルトの名無しさん
2010/06/16(水) 17:15:06System.Console.WriteLine(Quaternion.CreateFromRotationMatrix(Matrix.Identity).X);
0839デフォルトの名無しさん
2010/06/16(水) 18:08:260840デフォルトの名無しさん
2010/06/16(水) 18:16:03で1x1の大きさのテクスチャつくったら、
どれくらいメモリくう?
手元の環境で試してみたら…。
Texture2D[] ts = new Texture2D[256];
の状態でメモリ測定。
次に、256回newして配列に収めてメモリ測定。
だいたい一個あたり311byte使ってるようなんだが…。
たった1x1のサイズでそんなに食うものなのか?
テクスチャやデバイスのプロパティは以下。
SurfaceFormat = Color
TextureUsage = None
RequiresPower2 = true
SupportsNonPower2Conditional = true
0841デフォルトの名無しさん
2010/06/16(水) 19:10:14ゴキちゃんかw、今年は残念だったなw
0842デフォルトの名無しさん
2010/06/16(水) 20:04:28お手!
0843デフォルトの名無しさん
2010/06/16(水) 20:12:15せっかく教えていただき申し訳ないのですが、
spriteBatchでの表示方法をお教えいただけるとありがたいです。
0844デフォルトの名無しさん
2010/06/16(水) 22:17:30メモリ測定てどうやるの?
0845デフォルトの名無しさん
2010/06/17(木) 10:32:08何がしたいの?
数値を画面上に表示したいってだけ?
0846デフォルトの名無しさん
2010/06/17(木) 11:23:25はい。
あと、できればxの値だけを変える方法も知りたいです。
0847デフォルトの名無しさん
2010/06/17(木) 11:51:49文字はstring.FormatとSpriteBatch.DrawString組み合わせればいい
SpriteFontの扱いはわかるべ?
0848デフォルトの名無しさん
2010/06/17(木) 22:09:10モデルの向きを最初から反対の状態で描画する方法が知りたいです。
知ってる方がいらっしゃったら教えていただけないでしょうか?
お願いします。
0849デフォルトの名無しさん
2010/06/17(木) 22:09:500850デフォルトの名無しさん
2010/06/17(木) 23:16:33■ このスレッドは過去ログ倉庫に格納されています