10/05/23 15:07:24
任意軸回転でしょ
783:デフォルトの名無しさん
10/05/23 15:47:24
>>782
もしかしてCreateFromAxisAngleのことですか?
784:デフォルトの名無しさん
10/05/23 19:15:36
まあな
785:デフォルトの名無しさん
10/05/24 10:43:07
Matrix.CreateFromAxisAngle(new Vector3(1, 0, -1), MathHelper.ToRadians(this.degree));
これで回転させているのですが、回転させたときにモデルが横に引き伸ばされてしまいます。
どなたか原因が分かる方はいらっしゃいますでしょうか?
もしいるのであれば原因と解決法をお教えいただけないでしょうか?
お願いします。
786:デフォルトの名無しさん
10/05/24 13:27:03
Vector3を正規化したらだめかな
787:デフォルトの名無しさん
10/05/24 13:50:33
>>786
ありがとうごさいます。解決しました。
788:デフォルトの名無しさん
10/05/24 23:27:58
ドラッグでモデルを回転させるにはどのようにしたらよいのでしょうか?
どなたか教えてください、お願いします。
789:デフォルトの名無しさん
10/05/24 23:34:51
なんの薬?
790:デフォルトの名無しさん
10/05/24 23:43:11
XNAにドラッグなんていう概念はない
if (現在のフレームでマウスボタンが押されている) {
if (!A) { A = true; B = 現在のマウス座標; }
else { var d = 現在のマウス座標 - B; dに応じてモデル回転; B = 現在のマウス座標; }
} else { A = false;
791:デフォルトの名無しさん
10/05/25 00:03:38
>>790
ありがとうございました!
792:デフォルトの名無しさん
10/05/26 03:18:07
まあな
793:デフォルトの名無しさん
10/05/26 22:17:24
URLリンク(blogs.msdn.com)
上記のひにけにさんのサイトにある自動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:デフォルトの名無しさん
10/05/27 02:00:48
まあな
795:デフォルトの名無しさん
10/05/27 10:53:29
それ難しいところは無いと思うけど。
話がよくわからないけど、こっちで再現できるだけの材料ある?
796:デフォルトの名無しさん
10/05/27 10:55:18
あ、あと下のコメントは見た?
797:デフォルトの名無しさん
10/05/27 19:06:18
再現に必要な材料は新規プロジェクトと↑のURLのcats.xmlだけです
まだXNA初めて4ヶ月ぐらいなので、もしかしたら根本的な部分が間違っている
のかもしれません・・・。
下のコメントは読みましたが、すでに本文の方も修正されているみたいです
798:デフォルトの名無しさん
10/05/30 11:23:08
ちょっと休みでスレ見てなかったよ。
これ、3.1の新機能なんだけどバージョンは3.1になってる?
799:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/05/30 21:25:12
モデルの回転についてお聞きしたいことがあります。
Y軸を回転軸に180°回転させた後、
X軸やZ軸を回転軸に回転させると、自分から見て回転する方向が反対になってしまいます。
このような現象を解消し、自分から見て常に同じ方向に回転させるにはどのようにしたらよろしいでしょうか?
もし解る方がいらっしゃるのでしたらお教え願いませんでしょうか?
お願いします。
801:デフォルトの名無しさん
10/05/30 21:58:20
>>800
そりゃ、回転軸も180度回転させるしか。
802:デフォルトの名無しさん
10/05/30 22:54:40
>>800
オイラー角で姿勢を保持するのをやめる。
803:デフォルトの名無しさん
10/05/30 23:21:28
>>802
どのようにしたらよいのでしょうか?
804:デフォルトの名無しさん
10/05/30 23:53:18
>>803
Quaternionっての使うと、回転軸+回転角で情報持てる。
805:デフォルトの名無しさん
10/05/31 22:12:43
>>799
ご丁寧に教えていただきありがとうございます。
書いてあるとおりにして、using MyDataTypes;を入れれば読み込んでくれました
どうもありがとうございました。
806:デフォルトの名無しさん
10/05/31 22:39:11
>>804
Quaternionの使い方が難しくてよくわかりません。
Y軸のと(1、0、-1)の軸の回転をそれぞれQuaternion.CreateFromAxisAngleで行った後、
Quaternion.Concatenate(Y軸、(1、0、-1))で結合しているのですが、
上手く回転できません。
どなたかわかる方がいらっしゃったらお教え願いませんでしょうか?
お願いします。
807:デフォルトの名無しさん
10/05/31 23:19:46
>>806
回転自体をイメージできてないんだったら、オイラー角だろうがクオータニオンだろうが何使ってもダメなもんはダメだと思うんだが。
808:デフォルトの名無しさん
10/05/31 23:43:28
>>807
上手く回転できないというのは、
>>800の現象が改善されないという意味です。
809:デフォルトの名無しさん
10/06/01 00:09:34
最初のY軸180度回転のせいで、例えばX軸は最初の状態と比べると真逆に向いてしまうから。
X軸回転の後Y軸回転したらどうなるか、とかいろいろやって何が起こるか試してみるといい。
この辺のマトリクスの仕組みを理解しないと思い通りに動かすのは難しいよ。
810:デフォルトの名無しさん
10/06/01 00:54:04
>>808
回転の順序逆なんじゃね?
811:デフォルトの名無しさん
10/06/01 11:35:06
>>810
(1、0、-1)の軸で回転させてから、
Y軸で回転させるということでしょうか?
812:デフォルトの名無しさん
10/06/01 11:39:24
>>811
行列の右結合と左結合が逆。
自分の意図してる方と同じ回転順序になってない。
813:デフォルトの名無しさん
10/06/03 22:53:20
以前、XMLの読み込みついて教えていただいたのですが、
XMLを二次元配列で読み込む方法はないでしょうか?
当然、XMLファイルも今のままではダメだと思うのですが、
<item>の中に<item>を作ればいいのでしょうか?
814:デフォルトの名無しさん
10/06/04 16:14:01
XML に出力してみて、自分で改変すればいいよ。XmlSerializer の Deserialize メソッド使えば出力出来る。綴り違ったらごめん。
815:デフォルトの名無しさん
10/06/04 16:14:58
間違えた。De は要らなかった。
816:デフォルトの名無しさん
10/06/06 12:06:00
>>815
なるほど
やってみます!
817:デフォルトの名無しさん
10/06/06 12:29:23
配列を含んだクラスをXmlSerializer使ってみたのですが、
型 'クラス名' を反映中にエラーが発生しました。
ってエラーになります。
配列の部分をコメントアウトすれば、エラーがなくなりXmlファイルが生成できます
配列を含むXmlを作る時には、何か方法が違うのでしょうか?
818:デフォルトの名無しさん
10/06/06 12:42:01
3.1で追加された自動シリアライズが配列までサポートしてないのかも
そもそも多次元配列はシリアライズできないよね?まあジャグ配列にしたんだろうけど。
リーダーライター自分で書くのが確実な気が
819:デフォルトの名無しさん
10/06/06 12:51:05
多次元配列は事実上の非推奨
何のメリットも無いから使わなくていいよ
820:デフォルトの名無しさん
10/06/06 18:24:08
そうなの?
ゲームなんか作るときは
コードの分かりやすさとか管理のしやすさがメリットとしてあると思うけど。
二次元グリッドで番地的にオブジェクトだのポリゴンだのしまっておくときとか。
821:デフォルトの名無しさん
10/06/06 18:26:05
Listでいいじゃない
822:デフォルトの名無しさん
10/06/06 18:38:44
固定長の普通の配列を使うことにメリットがなくて
Listを使った方がいい、とか言いいたいならまだ分かるけど、
「多次元配列」自体にメリットがないという意味が理解できない。
(もっとも、速度は固定長の普通の配列の方が速いだろうし、
使い勝手としてはListとかの方がいいだろうし、そこの選択は適材適所だとして)
823:デフォルトの名無しさん
10/06/07 21:33:30
>多次元配列は事実上の非推奨
>何のメリットも無いから使わなくていいよ
なんだよ、根拠もないのかよ。
824:デフォルトの名無しさん
10/06/08 11:50:05
何言いたいのかよくわかんないけど
それでなくちゃいかんという場面が思いつかないね
825:デフォルトの名無しさん
10/06/15 13:35:40
複数のモデルを表示すると、奥にあるものが手前に表示されてしまいます。
この現象を解消するにはどうしたらよいのでしょうか。
どなたかわかる方がいらっしゃったらお教え願いませんでしょうか?
お願いします。
826:デフォルトの名無しさん
10/06/15 13:46:27
奥にあるものをあとから描いてるんじゃ?
どうやってんのよ
827:デフォルトの名無しさん
10/06/15 14:22:26
>>825
例えばSpriteBatchと一緒に使っていて、レンダーステート変更されてしまっているんじゃないかな?
URLリンク(blogs.msdn.com)
828:デフォルトの名無しさん
10/06/15 14:38:03
>>827
そうです。
モデルだけを表示していた時は普通に表示できたのですが、
文字も一緒に表示するとおかしくなりました。
829:デフォルトの名無しさん
10/06/15 14:43:39
Zバッファを有効にしたらできました。
830:デフォルトの名無しさん
10/06/15 16:58:17
モデルの回転させるとき、
他の回転軸を固定したまま回転させることってできないのでしょうか?
(回転軸の固定とは、ベクトル方向が自分から見て常に同じ向きを向いているという意味です。)
831:デフォルトの名無しさん
10/06/15 17:00:04
それは固定って言わないのでわ?
832:デフォルトの名無しさん
10/06/15 17:19:12
>>830
ググってみた
URLリンク(www.arakin.dyndns.org)
833:デフォルトの名無しさん
10/06/16 16:03:53
Quaternionでxの部分だけ表示、変更するにはどのようにしたらよいのでしょうか?
834:デフォルトの名無しさん
10/06/16 16:05:01
Quaternionでxの部分だけ表示、変更すればいいですよ
835:デフォルトの名無しさん
10/06/16 16:31:36
ありがとうございました
836:デフォルトの名無しさん
10/06/16 16:37:04
>>833
Matrixから作ったQuaternionのxの部分を表示するにはどのようにしたらよいのでしょうか?
837:デフォルトの名無しさん
10/06/16 16:47:04
Xいじってまたつくればよかんべ
838:デフォルトの名無しさん
10/06/16 17:15:06
>>836
System.Console.WriteLine(Quaternion.CreateFromRotationMatrix(Matrix.Identity).X);
839:デフォルトの名無しさん
10/06/16 18:08:26
MSの犬の集まるスレはここか・・・・
840:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/06/16 19:10:14
>>839
ゴキちゃんかw、今年は残念だったなw
842:デフォルトの名無しさん
10/06/16 20:04:28
>>841
お手!
843:デフォルトの名無しさん
10/06/16 20:12:15
>>838
せっかく教えていただき申し訳ないのですが、
spriteBatchでの表示方法をお教えいただけるとありがたいです。
844:デフォルトの名無しさん
10/06/16 22:17:30
>>840
メモリ測定てどうやるの?
845:デフォルトの名無しさん
10/06/17 10:32:08
>>843
何がしたいの?
数値を画面上に表示したいってだけ?
846:デフォルトの名無しさん
10/06/17 11:23:25
>>845
はい。
あと、できればxの値だけを変える方法も知りたいです。
847:デフォルトの名無しさん
10/06/17 11:51:49
x変えるのは>>837でいいじゃない?
文字はstring.FormatとSpriteBatch.DrawString組み合わせればいい
SpriteFontの扱いはわかるべ?
848:デフォルトの名無しさん
10/06/17 22:09:10
Matrix以外の方法で、
モデルの向きを最初から反対の状態で描画する方法が知りたいです。
知ってる方がいらっしゃったら教えていただけないでしょうか?
お願いします。
849:デフォルトの名無しさん
10/06/17 22:09:50
日本語で詳しく。
850:デフォルトの名無しさん
10/06/17 23:16:33
よくわからないけどモデルを反対の状態で作ればええねん。俺って天才かも
851:デフォルトの名無しさん
10/06/18 00:39:28
カリングを変えたいってこと?
852:デフォルトの名無しさん
10/06/18 00:40:53
パワーリング!
853:デフォルトの名無しさん
10/06/18 19:42:31
頂点を指定して線を描く場合、線の太さは変えられないのでしょうか?
854:デフォルトの名無しさん
10/06/18 19:48:23
三角形を二つ使うことになる。
855:デフォルトの名無しさん
10/06/19 00:00:54
線に太さは存在しない
856:デフォルトの名無しさん
10/06/19 00:03:30
だったら線だけでは何も描かれないのが自然
857:デフォルトの名無しさん
10/06/19 00:17:25
実際線は目にみえない。
線で構成されたものがみえる。
858:デフォルトの名無しさん
10/06/19 11:34:39
メタセコイアなどで太い線を作るしかないのでしょうか?
859:デフォルトの名無しさん
10/06/19 12:29:08
>>858
モデルを用意しておいてもいいけど、プリミティブで描画できるよ
860:デフォルトの名無しさん
10/06/19 18:21:42
windows限定になるけど、右上の×ボタン押したときに、
"終了しますか?"みたいなメッセージを表示させるには
どこに処理を書けばいいの?
861:デフォルトの名無しさん
10/06/19 19:09:19
close
862:デフォルトの名無しさん
10/06/19 23:09:30
>>860
普通にプログラムに書けばいいと思うよ