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/ ということで立ててみた。
757 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 01:26:54 ] しつもん ノベルゲーム作ってて、 文字列を都度読み込みDrawString()で描画してます で、画面右端にいったら、自動で改行するようにしたいんだけど、どうやればいいかわかりませんでしょうか プロポーショナルフォント使うつもりなので、文字幅が一定じゃないです… スプライトフォントの文字幅を取得する事ってできないですかね
758 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 09:44:13 ] 文字の幅を返してくれるAPIがあったとおもう。 で、一文字ずつ計測して表示限界まで達したら折り返し処理を自前で実装。 まあ大体自動で折り返しとかやってないよ。 X文字までとか言う制限をチェックするツールを作って、 それにとおして検出された行を手直し。 自動で折り返しとかするとゲームのメッセージウィンドウで 読みにくかったりするからね。
759 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 09:45:03 ] SpriteFont f f.MeasureString(s)
760 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 00:20:57 ] >>758-759 できましたー、ありがとうございます >まあ大体自動で折り返しとかやってないよ。 ふむー、そうなんですか・・・ とりあえず、自分の思うようにつくってみて、 不自然なら、やり方を変えてみます 助かりましたー
761 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 22:43:38 ] C#とXNA初めて一週間の初心者です。 モデルのテクスチャー自身の中身を書き換えたいので、 GraphicsDevice.SetRenderTarget関数を使って、矛先をテクスチャー素材に向けて、spriteBatch.Drawをやろうとしたんですが、 サーフェースの型が合わないと怒られてしまいます。 基本部分は3Dなので深度込みのサーフェースで、矛先がテクスチャーはRGB24ビットと違う型なので エラーの言いたい事は分かるのですが、グラフィックデバイスとシェーダー(BasicEffect)の相関関係が理解できていないので、 対処法が分かりません。 グラフィックデバイスのインスタンスってやはり一個に限定されたりするんでしょうか。 ど〜かアドバイスをお願い致します。 orz
762 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 23:42:45 ] ど〜か orz がむかつくので教えない。
763 名前:761 mailto:sage [2010/05/08(土) 06:26:11 ] 自己解決 作ったサーフェースがデカかっただけのエラーでした。 512*512なら通るのに1024*1024だとエラーになるのねw
764 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 06:51:28 ] 教えないでよかった。 なんかこいつ生理的にムカつく。
765 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 08:54:21 ] すごい・・・ よくクズだと見抜いたな
766 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 09:30:17 ] 俺のクズセンサーは感度高いからな。
767 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 10:06:56 ] クズはクズ感度高いからね
768 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 11:19:01 ] XNAでLua使える? 360でも動く?
769 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 12:12:40 ] どうしても使いたかったらJavaで実装されてるやつを移植するのが一番手っ取り早い でもIronRubyがWP7に対応してるらしいから360でも動くんじゃないかな
770 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 13:22:50 ] Lua.NET か IronLua ってなかったっけ?
771 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 13:34:17 ] pure.NETな実装で使い物になるレベルのものはないよ LuaInterfaceはまともだけどネイティブのLuaのラッパーだから360では使えない IronLuaはどっちみち使えないけどIron〜系はLCG使ってるから 基本的にcompact frameworkでは動かない WP7版のIronRubyはCFで動くようにLCG削ってインタプリタモードだけにしてある
772 名前:デフォルトの名無しさん [2010/05/17(月) 23:39:02 ] xna入れたいけど、visual studio 2010しかもうダウンロード出来なくて詰んだw
773 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 02:26:14 ] >>772 2008EEのsp1が本体含んでるよ まだ落とせる
774 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 04:11:28 ] >>772 XNAなんかで遠回りするのはやめておけ 必ず後悔するぞw
775 名前:デフォルトの名無しさん [2010/05/18(火) 08:43:54 ] >>774 360でゲーム作るならXNA使うしかないじゃん
776 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 22:38:49 ] インディーズのみならな
777 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 22:01:55 ] Windowsでゲーム作る場合、なにで作れば後悔しないんだ? C#使ってると、いまさらC++には戻りたくないんだが・・・
778 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 23:12:36 ] アクツク
779 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 20:04:21 ] 2DならSilverlightで十分じゃね .NET系の中では最も配布が簡単
780 名前:デフォルトの名無しさん [2010/05/23(日) 14:54:35 ] モデルってX、Y、Z軸の3つを回転軸にした回転しかできないのでしょうか?
781 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 15:04:10 ] それ以外って例えば?
782 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 15:07:24 ] 任意軸回転でしょ
783 名前:デフォルトの名無しさん [2010/05/23(日) 15:47:24 ] >>782 もしかしてCreateFromAxisAngleのことですか?
784 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 19:15:36 ] まあな
785 名前:デフォルトの名無しさん [2010/05/24(月) 10:43:07 ] Matrix.CreateFromAxisAngle(new Vector3(1, 0, -1), MathHelper.ToRadians(this.degree)); これで回転させているのですが、回転させたときにモデルが横に引き伸ばされてしまいます。 どなたか原因が分かる方はいらっしゃいますでしょうか? もしいるのであれば原因と解決法をお教えいただけないでしょうか? お願いします。
786 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 13:27:03 ] Vector3を正規化したらだめかな
787 名前:デフォルトの名無しさん [2010/05/24(月) 13:50:33 ] >>786 ありがとうごさいます。解決しました。
788 名前:デフォルトの名無しさん [2010/05/24(月) 23:27:58 ] ドラッグでモデルを回転させるにはどのようにしたらよいのでしょうか? どなたか教えてください、お願いします。
789 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 23:34:51 ] なんの薬?
790 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 23:43:11 ] XNAにドラッグなんていう概念はない if (現在のフレームでマウスボタンが押されている) { if (!A) { A = true; B = 現在のマウス座標; } else { var d = 現在のマウス座標 - B; dに応じてモデル回転; B = 現在のマウス座標; } } else { A = false;
791 名前:デフォルトの名無しさん [2010/05/25(火) 00:03:38 ] >>790 ありがとうございました!
792 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 03:18:07 ] まあな
793 名前:デフォルトの名無しさん [2010/05/26(水) 22:17:24 ] ttp://blogs.msdn.com/b/ito/archive/2009/06/15/automatic-xnb-serialization.aspx 上記のひにけにさんのサイトにある自動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]] が見つかりません。 どなたかエラー原因がわかる方がいませんでしょうか? よろしくお願いします
794 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 02:00:48 ] まあな
795 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 10:53:29 ] それ難しいところは無いと思うけど。 話がよくわからないけど、こっちで再現できるだけの材料ある?
796 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 10:55:18 ] あ、あと下のコメントは見た?
797 名前:デフォルトの名無しさん [2010/05/27(木) 19:06:18 ] 再現に必要な材料は新規プロジェクトと↑のURLのcats.xmlだけです まだXNA初めて4ヶ月ぐらいなので、もしかしたら根本的な部分が間違っている のかもしれません・・・。 下のコメントは読みましたが、すでに本文の方も修正されているみたいです
798 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 11:23:08 ] ちょっと休みでスレ見てなかったよ。 これ、3.1の新機能なんだけどバージョンは3.1になってる?
799 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 11:33:15 ] って3.0だとビルド時に失敗するな・・・ プロジェクト新規作成 WindowsGame1 プロジェクト新規追加 MyDataTypes MyDataTypesプロジェクトにNekoクラス作成 WindowsGame1プロジェクトの参照設定、本体、Contentの両方にMyDataTypes追加 WindowsGame1プロジェクトにContent追加XMLファイルでcats.xml WindowsGame1プロジェクトでContent.Load<Neko[]>("cats")追加 これだけだったよ、実行時もエラー出ない。
800 名前:デフォルトの名無しさん [2010/05/30(日) 21:25:12 ] モデルの回転についてお聞きしたいことがあります。 Y軸を回転軸に180°回転させた後、 X軸やZ軸を回転軸に回転させると、自分から見て回転する方向が反対になってしまいます。 このような現象を解消し、自分から見て常に同じ方向に回転させるにはどのようにしたらよろしいでしょうか? もし解る方がいらっしゃるのでしたらお教え願いませんでしょうか? お願いします。
801 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 21:58:20 ] >>800 そりゃ、回転軸も180度回転させるしか。
802 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 22:54:40 ] >>800 オイラー角で姿勢を保持するのをやめる。
803 名前:デフォルトの名無しさん [2010/05/30(日) 23:21:28 ] >>802 どのようにしたらよいのでしょうか?
804 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 23:53:18 ] >>803 Quaternionっての使うと、回転軸+回転角で情報持てる。
805 名前:デフォルトの名無しさん [2010/05/31(月) 22:12:43 ] >>799 ご丁寧に教えていただきありがとうございます。 書いてあるとおりにして、using MyDataTypes;を入れれば読み込んでくれました どうもありがとうございました。
806 名前:デフォルトの名無しさん [2010/05/31(月) 22:39:11 ] >>804 Quaternionの使い方が難しくてよくわかりません。 Y軸のと(1、0、−1)の軸の回転をそれぞれQuaternion.CreateFromAxisAngleで行った後、 Quaternion.Concatenate(Y軸、(1、0、−1))で結合しているのですが、 上手く回転できません。 どなたかわかる方がいらっしゃったらお教え願いませんでしょうか? お願いします。
807 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 23:19:46 ] >>806 回転自体をイメージできてないんだったら、オイラー角だろうがクオータニオンだろうが何使ってもダメなもんはダメだと思うんだが。
808 名前:デフォルトの名無しさん [2010/05/31(月) 23:43:28 ] >>807 上手く回転できないというのは、 >>800 の現象が改善されないという意味です。
809 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 00:09:34 ] 最初のY軸180度回転のせいで、例えばX軸は最初の状態と比べると真逆に向いてしまうから。 X軸回転の後Y軸回転したらどうなるか、とかいろいろやって何が起こるか試してみるといい。 この辺のマトリクスの仕組みを理解しないと思い通りに動かすのは難しいよ。
810 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 00:54:04 ] >>808 回転の順序逆なんじゃね?
811 名前:デフォルトの名無しさん [2010/06/01(火) 11:35:06 ] >>810 (1、0、−1)の軸で回転させてから、 Y軸で回転させるということでしょうか?
812 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 11:39:24 ] >>811 行列の右結合と左結合が逆。 自分の意図してる方と同じ回転順序になってない。
813 名前:デフォルトの名無しさん [2010/06/03(木) 22:53:20 ] 以前、XMLの読み込みついて教えていただいたのですが、 XMLを二次元配列で読み込む方法はないでしょうか? 当然、XMLファイルも今のままではダメだと思うのですが、 <item>の中に<item>を作ればいいのでしょうか?
814 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 16:14:01 ] XML に出力してみて、自分で改変すればいいよ。XmlSerializer の Deserialize メソッド使えば出力出来る。綴り違ったらごめん。
815 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 16:14:58 ] 間違えた。De は要らなかった。
816 名前:デフォルトの名無しさん [2010/06/06(日) 12:06:00 ] >>815 なるほど やってみます!
817 名前:デフォルトの名無しさん [2010/06/06(日) 12:29:23 ] 配列を含んだクラスをXmlSerializer使ってみたのですが、 型 'クラス名' を反映中にエラーが発生しました。 ってエラーになります。 配列の部分をコメントアウトすれば、エラーがなくなりXmlファイルが生成できます 配列を含むXmlを作る時には、何か方法が違うのでしょうか?
818 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 12:42:01 ] 3.1で追加された自動シリアライズが配列までサポートしてないのかも そもそも多次元配列はシリアライズできないよね?まあジャグ配列にしたんだろうけど。 リーダーライター自分で書くのが確実な気が
819 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 12:51:05 ] 多次元配列は事実上の非推奨 何のメリットも無いから使わなくていいよ
820 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 18:24:08 ] そうなの? ゲームなんか作るときは コードの分かりやすさとか管理のしやすさがメリットとしてあると思うけど。 二次元グリッドで番地的にオブジェクトだのポリゴンだのしまっておくときとか。
821 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 18:26:05 ] Listでいいじゃない
822 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 18:38:44 ] 固定長の普通の配列を使うことにメリットがなくて Listを使った方がいい、とか言いいたいならまだ分かるけど、 「多次元配列」自体にメリットがないという意味が理解できない。 (もっとも、速度は固定長の普通の配列の方が速いだろうし、 使い勝手としてはListとかの方がいいだろうし、そこの選択は適材適所だとして)
823 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 21:33:30 ] >多次元配列は事実上の非推奨 >何のメリットも無いから使わなくていいよ なんだよ、根拠もないのかよ。
824 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 11:50:05 ] 何言いたいのかよくわかんないけど それでなくちゃいかんという場面が思いつかないね
825 名前:デフォルトの名無しさん [2010/06/15(火) 13:35:40 ] 複数のモデルを表示すると、奥にあるものが手前に表示されてしまいます。 この現象を解消するにはどうしたらよいのでしょうか。 どなたかわかる方がいらっしゃったらお教え願いませんでしょうか? お願いします。
826 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 13:46:27 ] 奥にあるものをあとから描いてるんじゃ? どうやってんのよ
827 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 14:22:26 ] >>825 例えばSpriteBatchと一緒に使っていて、レンダーステート変更されてしまっているんじゃないかな? blogs.msdn.com/b/ito/archive/2007/03/13/spritebatch-part2.aspx
828 名前:デフォルトの名無しさん [2010/06/15(火) 14:38:03 ] >>827 そうです。 モデルだけを表示していた時は普通に表示できたのですが、 文字も一緒に表示するとおかしくなりました。
829 名前:デフォルトの名無しさん [2010/06/15(火) 14:43:39 ] Zバッファを有効にしたらできました。
830 名前:デフォルトの名無しさん [2010/06/15(火) 16:58:17 ] モデルの回転させるとき、 他の回転軸を固定したまま回転させることってできないのでしょうか? (回転軸の固定とは、ベクトル方向が自分から見て常に同じ向きを向いているという意味です。)
831 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 17:00:04 ] それは固定って言わないのでわ?
832 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 17:19:12 ] >>830 ググってみた www.arakin.dyndns.org/gl_torusquat.php
833 名前:デフォルトの名無しさん [2010/06/16(水) 16:03:53 ] Quaternionでxの部分だけ表示、変更するにはどのようにしたらよいのでしょうか?
834 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 16:05:01 ] Quaternionでxの部分だけ表示、変更すればいいですよ
835 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 16:31:36 ] ありがとうございました
836 名前:デフォルトの名無しさん [2010/06/16(水) 16:37:04 ] >>833 Matrixから作ったQuaternionのxの部分を表示するにはどのようにしたらよいのでしょうか?
837 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 16:47:04 ] Xいじってまたつくればよかんべ
838 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 17:15:06 ] >>836 System.Console.WriteLine(Quaternion.CreateFromRotationMatrix(Matrix.Identity).X);
839 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 18:08:26 ] MSの犬の集まるスレはここか・・・・
840 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 18:16:03 ] new Texture2D(GraphicsDevice, 1, 1) で1x1の大きさのテクスチャつくったら、 どれくらいメモリくう? 手元の環境で試してみたら…。 Texture2D[] ts = new Texture2D[256]; の状態でメモリ測定。 次に、256回newして配列に収めてメモリ測定。 だいたい一個あたり311byte使ってるようなんだが…。 たった1x1のサイズでそんなに食うものなのか? テクスチャやデバイスのプロパティは以下。 SurfaceFormat = Color TextureUsage = None RequiresPower2 = true SupportsNonPower2Conditional = true
841 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 19:10:14 ] >>839 ゴキちゃんかw、今年は残念だったなw
842 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 20:04:28 ] >>841 お手!
843 名前:デフォルトの名無しさん [2010/06/16(水) 20:12:15 ] >>838 せっかく教えていただき申し訳ないのですが、 spriteBatchでの表示方法をお教えいただけるとありがたいです。
844 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 22:17:30 ] >>840 メモリ測定てどうやるの?
845 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 10:32:08 ] >>843 何がしたいの? 数値を画面上に表示したいってだけ?
846 名前:デフォルトの名無しさん [2010/06/17(木) 11:23:25 ] >>845 はい。 あと、できればxの値だけを変える方法も知りたいです。
847 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 11:51:49 ] x変えるのは>>837 でいいじゃない? 文字はstring.FormatとSpriteBatch.DrawString組み合わせればいい SpriteFontの扱いはわかるべ?
848 名前:デフォルトの名無しさん [2010/06/17(木) 22:09:10 ] Matrix以外の方法で、 モデルの向きを最初から反対の状態で描画する方法が知りたいです。 知ってる方がいらっしゃったら教えていただけないでしょうか? お願いします。
849 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 22:09:50 ] 日本語で詳しく。
850 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 23:16:33 ] よくわからないけどモデルを反対の状態で作ればええねん。俺って天才かも
851 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 00:39:28 ] カリングを変えたいってこと?
852 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 00:40:53 ] パワーリング!
853 名前:デフォルトの名無しさん [2010/06/18(金) 19:42:31 ] 頂点を指定して線を描く場合、線の太さは変えられないのでしょうか?
854 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 19:48:23 ] 三角形を二つ使うことになる。
855 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 00:00:54 ] 線に太さは存在しない
856 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 00:03:30 ] だったら線だけでは何も描かれないのが自然
857 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 00:17:25 ] 実際線は目にみえない。 線で構成されたものがみえる。
858 名前:デフォルトの名無しさん [2010/06/19(土) 11:34:39 ] メタセコイアなどで太い線を作るしかないのでしょうか?
859 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 12:29:08 ] >>858 モデルを用意しておいてもいいけど、プリミティブで描画できるよ
860 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 18:21:42 ] windows限定になるけど、右上の×ボタン押したときに、 "終了しますか?"みたいなメッセージを表示させるには どこに処理を書けばいいの?
861 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:09:19 ] close
862 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 23:09:30 ] >>860 普通にプログラムに書けばいいと思うよ