2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

XNA 質問・相談スレッド 2

1 :デフォルトの名無しさん:2010/10/05(火) 22:13:35
■前スレ
http://hibari.2ch.net/test/read.cgi/tech/1190558621/

■公式
http://www.microsoft.com/japan/xna/
http://xna-studio.jp/
http://blogs.msdn.com/xnajapan/

■関連スレ
【Xbox 360】 XNA Game Studio その10 【C#】
http://hibari.2ch.net/test/read.cgi/gamedev/1254356087/
C#, C♯, C#相談室 Part62
http://hibari.2ch.net/test/read.cgi/tech/1284775031/

ここは技術的な質問スレです。XNAプログラミングに関係のない話はご遠慮ください。

2 :デフォルトの名無しさん:2010/10/05(火) 23:03:10
>>1

3 :デフォルトの名無しさん:2010/10/06(水) 00:59:04
敵弾で苦労してるという話見ると
多彩な弾幕だしてくるCAVEとか、やっぱすごいんだなと思う

4 :デフォルトの名無しさん:2010/10/06(水) 01:10:22
敵の弾幕とかじゃなくて女の絵の乳をうつとポヨンポヨン揺れてエロい声だす
ようなシューティングを作ってほしい。
ぎゃる☆がんも絶対買うよ。
敵なんて体当たりだけでいい。同時に1種類の敵しかでないで撃破されたら
元の位置にもどして再登場とかやれば配列なんか覚えなくても作れるよ。
だから初心者は上記のようなシューティングからはじめるといい。

5 :デフォルトの名無しさん:2010/10/07(木) 04:43:21
>1
新スレ乙

6 :デフォルトの名無しさん:2010/10/07(木) 14:07:09
剣を振った攻撃を一度だけあてるにはどうすればいいでしょうか?
剣を振ってるモーション中にBoundingBoxが重なったらライフを減らすようにしてますが
重なってる間減り続けてしまいます。

7 :デフォルトの名無しさん:2010/10/07(木) 17:45:52
今回のヒットで既に減らしたよん、という事を覚えておけばいい

8 :デフォルトの名無しさん:2010/10/07(木) 17:47:50
>>6
ヒットする条件にbool型の変数を用意して
ヒットしたらfalseに切り替えるといいかも。

9 :デフォルトの名無しさん:2010/10/07(木) 18:19:33
>6
一体に付き一発ずつ当てたい場合なら
敵のダメージ側に無敵時間を設けるか
どの攻撃にヒットしたっていうのを敵キャラに残しといて、前回と同じ攻撃はスルーするように。ダメージモーションが終わったらリセット。

一番最初に当てたキャラのみに当てたい場合なら
ヒットした後にプレイヤー側で攻撃終了フラグを立てる。次の攻撃やったり攻撃終了したりしたらフラグリセット。

10 :デフォルトの名無しさん:2010/10/07(木) 19:06:42
FPSを作りたいんですが、カメラ制御で苦戦してます。
参考になるサイトや本はないでしょうか?

http://creators.xna.com/ja-jp/sample/chasecamera
今はこのサンプルソースと睨めっこしている最中ですが
まさか自動追尾カメラがこんなに複雑なコードで制御されてたとは・・・・・・
世の中の3Dゲームが全て神ゲーに見えて怖いです・・・・・・

11 :デフォルトの名無しさん:2010/10/07(木) 21:25:08
XNAでは通常日本語フォントの文字列を表示できないとありますが、
欧文フォントだと簡単に表示できるのでしょうか?

12 :デフォルトの名無しさん:2010/10/07(木) 21:30:12
さすがに文字の表示くらいググればいくらでも出てくるだろ…

13 :デフォルトの名無しさん:2010/10/07(木) 21:42:51
>>10
具体的にわからない部分があるのでなく全体的に理解が難しいならば
参考書を読破するのがいいんじゃない、かなぁ。

14 :デフォルトの名無しさん:2010/10/07(木) 21:48:12
「ゲーム作りで学ぶ」のドライビングゲームの項で
日本語も表示してるっぽいよ???

15 :デフォルトの名無しさん:2010/10/07(木) 21:49:33
FPSなら単純にカメラ移動させれば良いんじゃないの

16 :デフォルトの名無しさん:2010/10/07(木) 22:13:11
2Dゲームで拡縮を実装したいのですが、良い方法がみつからず行き詰っています。

例えば、ドラキュラHDの拡縮や、デススマ2やエスプガルーダ2にある
画面サイズアジャストのように、画面にカメラをよせたり離したり
するような処理は可能でしょうか。

17 :デフォルトの名無しさん:2010/10/07(木) 22:15:44
最近見た気がするけどSpriteBatch.Beginの引数に変換行列を渡す

18 :デフォルトの名無しさん:2010/10/09(土) 01:04:35
>>17
ありがとうございます。
検索してみたところ、実装したい処理をしているサイトをみつけました。
ただ、具体的にどのような記述をするものなのかがわかりません。
3D知識もからみそうなので1からチェックしたいと思うのですが
参考にできる本やサイトなどありますでしょうか。

あと、この処理が可能とわかっただけでも安心できましたので感謝いたします。

19 :デフォルトの名無しさん:2010/10/09(土) 10:36:45
>>18
http://msdn.microsoft.com/ja-jp/library/bb194912%28XNAGameStudio.31%29.aspx
XNA使うには行列とベクトルの基礎知識が必要。わからないなら高校数学やりなおし。
その上で「アフィン変換」でググる。

20 :デフォルトの名無しさん:2010/10/10(日) 01:56:14
>>19
これまで既存知識でやりくりしていたので、かなり大変そうです。
回転についてだけどそれを理解しないとはじまらない・・・
とにかく調べながら頑張ります。ありがとうございました。

21 :デフォルトの名無しさん:2010/10/10(日) 03:37:04
こういうやりとり見ると3Dに入るととたんにレベルが別次元にとぶのを感じるわ

22 :デフォルトの名無しさん:2010/10/10(日) 11:08:26
>>21
別に2次元でも4次元でも行列を使ったアフィン変換の記述は出来るぞ

23 :デフォルトの名無しさん:2010/10/10(日) 11:37:46
結局、最終的には数学が絡むのよね・・・・・・

24 :デフォルトの名無しさん:2010/10/10(日) 19:16:25
2Dだけど、ポジションと、アニメと変数とあたり判定だけで
一応ゲーム作れてしまっているからなー。

25 :デフォルトの名無しさん:2010/10/10(日) 19:43:18
そもそも行列とは? なんて、哲学的な知識はいらない。
結果だけしっていて、それが使えれば問題。
たとえば回転行列がなぜああいう形式なのか、知らなくても問題はない。
どう使えばどんな結果が得られるのか、それが必要。

というか、それができないヤツはプログラミングなんて_

26 :デフォルトの名無しさん:2010/10/10(日) 21:49:22
またオマエか

27 :デフォルトの名無しさん:2010/10/10(日) 21:50:57
つか線形代数ぐらい大学の教養でやるだろ

28 :デフォルトの名無しさん:2010/10/10(日) 22:21:54
3Dプログラミングなんて、高校数学で十分だし

29 :デフォルトの名無しさん:2010/10/10(日) 23:56:09
計算が難しいんじゃなくてどうやって書くのかの書式がわからないだけなんだと思う
入門サイト系のサンプルって2Dのが多くてそれの改変からはじめる初心者が多いからね

30 :デフォルトの名無しさん:2010/10/11(月) 00:07:15
そういうスタイルで勉強するにはXNAは複雑すぎるとおもう
あまりにもおまじないが多くなりすぎる

31 :デフォルトの名無しさん:2010/10/11(月) 00:16:44
>>30
それこそ逆だろ。
なにをしたいかにもよるが、延々デバイスの初期化で行き詰まったりするよりは、
サンプルを改変しながら、その改変での動作変更を見て勉強する方が早いと漏れは思う。
サンプル眺めてると、だんだん全体像が頭に入ってくるし。

ただ、デバイスの初期化とか、根本的な部分を学ぶにはXNAは不適当。
隠蔽されちゃって見えんからな。

32 :デフォルトの名無しさん:2010/10/11(月) 02:33:50
>>30
勉強が目的なんじゃなくて、XNAで(もしくはXBOXの)作りたいゲームを作ることが
目的という人が多いだろうからなぁ、ことXNAに関しては。
そういう方向から入った人は、書式を知ってからその意味を理解するパターンも多い。
ていうか、現に参考書はそういう方法論とってるのが多いし。

33 :デフォルトの名無しさん:2010/10/11(月) 02:58:29
個人的に受験で例えるなら
「C+やC#の理解から深める=基本書の読破」
「サンプル見ての勉強=過去問を沢山」
前者は確実に地力はつくが無駄知識もあり効率が悪い。
後者は目的達成の近道だが応用はきかず学んだ部分以外は零からの学習が要る。
新規の質問者は前者が多いけど回答者は後者の方法論で学んできた人が多くて
前者できた人間には遠い道に見える回答が多い、みたいな。
本当に2Dか3Dかの差なのかな??

34 :デフォルトの名無しさん:2010/10/11(月) 03:03:23
C+ ? はおいておいて、普通に経験の問題です。
自分でもかけないのに、他人のコード読めるはずもなく。

35 :デフォルトの名無しさん:2010/10/11(月) 03:16:08
>>34
おまえは英語読めるか? 書けなくても読める漢字もたくさんあるだろ?
人間の頭はそういうふうにできてる。
初心者に完動品プログラムはかけないかもしれないが、動くプログラムのソースを読むことはできる。
関数名とか、基本が英語だからなんとなく機能を類推できるものも多い。
分からなければリファレンスの出番(英単語を調べたことぐらいあるだろ?)。
文法は参考書で覚える方がいいと思うが、APIはソースから入ってもいいと思う。

36 :デフォルトの名無しさん:2010/10/11(月) 03:42:29
ソースを読めるレベルに達しているのかのか、というつもりで書いた。
確かに言い方が極端すぎた。

37 :デフォルトの名無しさん:2010/10/11(月) 10:58:28
プログラムの勉強の仕方までなんて相談には載れないからどっかいけよ

38 :デフォルトの名無しさん:2010/10/11(月) 11:55:21
最低限、C#の経験なくてもソース見たら何書いてるかだいたい解る人向けだな
プログラミング初めての人にはお勧めできない
遊びながら覚えるにしてもWinFormsから入ったほうがいい

39 :デフォルトの名無しさん:2010/10/11(月) 13:35:39
XNA でもまだなんか DirectX 的なレイヤーの臭い残ってるしね。
今まで DirectX 触ったことがあるとか言う人だったら、かなり簡単って思えるんだろうけども。

40 :デフォルトの名無しさん:2010/10/11(月) 14:58:59
>>34
でも、サンプルコード+コードの説明
という形式が初心者向け教本や入門用サイトのおきまりだし
理解は早そうとも思う。
forループで配列に代入とか、自分で思いつくより、みせられて
ああ、こういう考え方をするのか、と理解するのがイイんじゃないかなと。

41 :デフォルトの名無しさん:2010/10/11(月) 18:29:23
ゲーム作りで学ぶC#の、多次元配列の項目ですが175ページで
int[] array = new int[3,3];
となっていますが
int[,] array = new int[3,3];
の間違いかな。エラーがでるので左に「,」を入れたらうまくいきました。

42 :デフォルトの名無しさん:2010/10/11(月) 18:42:33
誤植じゃないの?
出版社のサポートページとかに誤植情報載ってると思うから見ておいた方が良いかもね

43 :デフォルトの名無しさん:2010/10/11(月) 19:17:05
リファレンスで文法ぐらい調べろよ。
学習センスゼロだな。

44 :デフォルトの名無しさん:2010/10/11(月) 21:51:25
どうしてそんなに怒ってるんだ?

45 :デフォルトの名無しさん:2010/10/11(月) 21:55:02
言語仕様のリファレンスなんか初心者が読めるわけないだろ

46 :デフォルトの名無しさん:2010/10/11(月) 22:08:29
XNAは初心者用ではありません

47 :デフォルトの名無しさん:2010/10/12(火) 01:19:42
>>43
自己解決した上に入門書のミスの告知をしたんだから褒めたまえよ

48 :デフォルトの名無しさん:2010/10/12(火) 11:48:21
オレもそう思う

49 :デフォルトの名無しさん:2010/10/13(水) 20:04:43
3Dゲームのプログラミングに役立つオススメ参考書ってありますか?
「ゲーム作りで学ぶ〜」は読んだんですが、3Dは文字通り次元が違って苦戦してます。
特に、カメラ制御・当たり判定について詳しく解説してあるとありがたいのですが・・・・・・

50 :デフォルトの名無しさん:2010/10/14(木) 09:21:11
あの外国のバカ高いやつでもいい?

51 :デフォルトの名無しさん:2010/10/14(木) 12:20:32
普通のDirectXの本読むのがいいと思う
APIはだいたいXNAと同じだしC#わかるならちょっと勉強すればC++も十分読める

52 :デフォルトの名無しさん:2010/10/14(木) 12:34:32
解説がないと分からないようではなぁ
頭が悪すぎだと思うからやめといたほうがいい

53 :デフォルトの名無しさん:2010/10/14(木) 15:03:38
>>49
もし2D→3Dの移行にベターな本があったら報告きぼん。

自分もゲーム作りで学ぶ〜は4,5冊読んだなかでわかりやすかったので
オススメしたけど、読んでみないとわからないしね。
てわけで3D初心者マニュアル本発掘の先駆者になってほしい。

54 :デフォルトの名無しさん:2010/10/14(木) 20:19:37
本代はケチらずどんどん買うぐらいでいいんだがな。

55 :デフォルトの名無しさん:2010/10/15(金) 02:27:52
当たり判定なら
ゲームプログラミングのためのリアルタイム衝突判定

ちょいと高いし、プログラミング始めたばかりだと読むの辛い気もする。
あと、XNA ならライブラリ側で実装されてるし、辞書にさえもならないだろうけど。

まあ、興味があれば。

56 :デフォルトの名無しさん:2010/10/15(金) 07:31:58
Visual C# 2008で使うXNAは3.1日本語版でいいでしょうか?

57 :デフォルトの名無しさん:2010/10/15(金) 23:51:12
>>56
おk

58 :デフォルトの名無しさん:2010/10/16(土) 00:23:13
おせーよ


59 :デフォルトの名無しさん:2010/10/16(土) 03:47:47
4.0ってのに移行しなくてもべつにいいもんね

60 :デフォルトの名無しさん:2010/10/16(土) 19:34:03
画面遷移について教えてください。
ゲームでは最初メニュー画面で何か選ぶとメインのゲーム画面に
いったりしますがこういうのはどう処理にするのがいいのでしょうか?
フォームなら新しいフォームをnewして自分を消せばいいのですが
そういうのじゃないですよね?

61 :デフォルトの名無しさん:2010/10/16(土) 19:43:25
>>60
そういう感覚で作れるように設計する。
http://create.msdn.com/ja-JP/education/catalog/sample/game_state_management

62 :デフォルトの名無しさん:2010/10/16(土) 20:12:31
>>61
うひょー
むっず。

63 :デフォルトの名無しさん:2010/10/16(土) 21:51:18
自分は、gamestate変数をint型で用意して
gamestate=0がタイトル、1がオプション、2がステージ、、、10がゲームオーバー画面
みたく分けてやってるな。0のときスタートボタンで2に以降して
gamestate=2なのを条件にゲーム本編の処理を開始。

if (gamestate==2){処理内容、、、}みたいにでかい{}でそれぞれくくる。
ぜんぶUpdateメソッドに入ることになります。

64 :デフォルトの名無しさん:2010/10/16(土) 22:12:18
せめてenumにしようよ…

65 :デフォルトの名無しさん:2010/10/17(日) 11:21:23
boolですむところもintを使うのが初心者クオリティ
だって変数とわかりやすいんだモン

66 :デフォルトの名無しさん:2010/10/17(日) 11:41:37
boolも変数ですが

67 :デフォルトの名無しさん:2010/10/17(日) 11:45:37
>>65
それ、C# から始めればいいものをわざわざ C から教える教育の問題じゃないか?

68 :デフォルトの名無しさん:2010/10/17(日) 14:38:03
BOOLもintも型だよ
馬鹿は氏ね

69 :デフォルトの名無しさん:2010/10/17(日) 14:40:10
.NETのBooleanは気にしてはいけない型
実際は1バイト

70 :デフォルトの名無しさん:2010/10/17(日) 15:08:33
今時1bitのbool型なんて存在しないだろ
詰め込みたいならビットマスクを隠蔽する関数群を使えって感じだろ。

それはともかく、boolにする意味はメモリの節約ではなく誤った代入などを防ぐため。
暗黙の変換をされちゃう言語だと意味ないが。

71 :デフォルトの名無しさん:2010/10/17(日) 16:46:13
>>70
誰か、boolが1ビットなんて言ってる? w

72 :69:2010/10/17(日) 16:50:55
気にしてはいけないと書いたのはbool型が実際にメモリ上でどう表されるか気にしてはいけなという意味ね
わかりにくくてすまん

73 :デフォルトの名無しさん:2010/10/17(日) 20:38:09
こまけぇこたぁいいんだよ!!

74 :デフォルトの名無しさん:2010/10/18(月) 02:16:18
intの汎用性が高いので少数でもなければint使ってるけど
byteを使うほうが処理速度に影響するぐらいメモリは節約されますか?

75 :デフォルトの名無しさん:2010/10/18(月) 03:57:23
うーん、別に性能名はどうでもいいんだけども。
int を真偽値代わりに使うと、true == true が必ずしも true にならないとか、問題いっぱいある。

76 :デフォルトの名無しさん:2010/10/18(月) 09:45:09
整数はintがほとんどでたまにlong使うくらいでintより小さいのはめったに使わないな
boolの代わりに使ったり>>63のようなマジックナンバーは論外だけど

77 :デフォルトの名無しさん:2010/10/18(月) 10:03:28
シーンもオブジェクトだと考えて、スタックで表現してるな。
タイトル、プレイ画面、ゲームオーバー画面みたいな大きなシーンの移動はClearしてPush、
ポーズ、オプション、ダイアログみたいな小さなシーンの移動は現在のスタックにPush。

public interface IScene { SceneResult Process(SceneResult result); }
public enum SceneResult : byte { None = 0x00, SuppressUpdate = 0x01, SuppressDraw = 0x02, StackTop = 0x80 }

シーンオブジェクトををこんな感じのインターフェイスにして、

private LinkedList<IScene> sceneStack = new LinkedList<IScene>();
private void OnUpdate()
{
var node = sceneStack.Last;
var result = SceneResult.StackTop;

while (node != null)
{
var scene = node.Value;

result = scene.Process(result);
node = node.Previous;
}
}

毎フレーム呼び出す。
ポーズ以下のUpdateを抑制したりするときはシーンの戻り値にSuppressUpdateフラグ立てておく、とか。

78 :デフォルトの名無しさん:2010/10/18(月) 10:51:59
>>76
マジックナンバーも本人が把握できてれば別にいいと思うけどなぁ。

79 :デフォルトの名無しさん:2010/10/18(月) 12:08:28
enumの型指定(: byteとか)は特に理由が無い限りはやらないほうがいいよ
MSのガイドラインで非推奨だし、その使い方だと特にメモリの節約にもならないだろうし
ベースがintであることを前提にできたほうが扱いやすい

80 :デフォルトの名無しさん:2010/10/18(月) 14:24:51
>>78
なぜダメかと言うと、本人も把握できなくなるからだ

81 :デフォルトの名無しさん:2010/10/18(月) 16:21:00
把握できるかどうかは置いといて、わざわざマジックナンバーを使う意味がわからない
state = 10; //ゲームオーバー画面へ
と書くんだったら(コメントくらいは書いてると信じる)
state = GameState.GameOver;
と書いた方が楽じゃん

82 :デフォルトの名無しさん:2010/10/18(月) 18:31:28
どう書いたら楽かどうかは個人差あるからなんとも言えんな

83 :デフォルトの名無しさん:2010/10/18(月) 19:16:08
VisualStudioはemunで列挙した文字列に色とかつけてくれたっけ。

84 :デフォルトの名無しさん:2010/10/18(月) 23:49:57
プログラムとは少し違うんですがXNA関連で質問です。
xna creators club(サンプルがおいてあったサイト)が
app hubというサイトに変わっているようなのですが、
目的のサンプルを見つけきれません。探し方を教えていただけないでしょうか?

educationのcontent catalogにサンプルがおいてあるのはわかったのですが、
カテゴリを絞る検索手段のみで文字列での検索手段がありません。
全文検索はあるのですが、フォーラムなどが引っかかってしまいます。

85 :デフォルトの名無しさん:2010/10/19(火) 00:05:00
公式サイトの質問なら公式フォーラムで聞いたほうがいんでない?
書き込み少ないからさ。。。

86 :デフォルトの名無しさん:2010/10/19(火) 07:08:54
すみません。XNAってモデルファイルを動的に読み込むことってできないのでしょうか?


87 :デフォルトの名無しさん:2010/10/19(火) 08:19:45
おまえならできる

88 :デフォルトの名無しさん:2010/10/19(火) 12:18:24
動的にの意味が分からない。起動時じゃなくて必要になったときに初めて読み込みたい
という意味なら、必要な時にContentManager.Loadを呼ぶだけ。
コンテンツパイプラインを通したくないなら、読み込む処理を自分で書く必要がある。
その場合ModelMeshは使えないと思うので自分でメッシュクラスとモデルクラス自作。
お勧めはできない。

89 :デフォルトの名無しさん:2010/10/19(火) 12:38:03
えー
じゃあMMD作れないじゃんorz

90 :デフォルトの名無しさん:2010/10/19(火) 12:41:13
PCで実行するなら普通に生ファイル読み書きすればいいだろう

91 :デフォルトの名無しさん:2010/10/19(火) 14:26:55
PCで実行します!

92 :デフォルトの名無しさん:2010/10/19(火) 14:41:38
カス子使ってるニンジャチョップみたいのはどうやってるんだろう

93 :デフォルトの名無しさん:2010/10/19(火) 14:42:51
だから普通にファイルから読み込む処理書いて自前で描画するだけ。
XNAのModelは使えないけど、どうせMMDの仕様に合わせて
そこらへんの自作は必要でしょ。たぶん君にはそれは無理だけど
MMD for XNAというのがあるらしいから試してみたら。

94 :デフォルトの名無しさん:2010/10/19(火) 15:02:29
なるほど。Xファイルを自分で解析して頂点バッファを作って
プリミティブに描画するってことですね

95 :デフォルトの名無しさん:2010/10/20(水) 17:08:36
TimeSpanで時間を表示するとき、
(時間:分:秒.ミリ秒7ケタ)ではなく、
(分:秒:ミリ秒2ケタ)で表示することは可能でしょうか?

96 :デフォルトの名無しさん:2010/10/20(水) 18:05:01
可能だけど、今はToString()かな?
String.Format使うとか

97 :デフォルトの名無しさん:2010/10/21(木) 12:51:43
メッシュってどういう単位でしょう?
メタセコに球と立方体を置いたとすると
メッシュが2個ってことでしょうか?

98 :デフォルトの名無しさん:2010/10/21(木) 14:29:02
>>97
髪の毛を一部脱色して白くする奴居るだろ?
あのような単位だよ。

99 :デフォルトの名無しさん:2010/10/21(木) 14:37:57
>>98
なるほど。わかりません。

100 :デフォルトの名無しさん:2010/10/21(木) 17:01:45
ギルガ!

101 :デフォルトの名無しさん:2010/10/22(金) 16:56:17
Microsoft XNA Game Studio 4.0
ttp://www.microsoft.com/downloads/en/details.aspx?FamilyID=9ac86eca-206f-4274-97f2-ef6c8b1f478f
Microsoft XNA Game Studio 4.0 Language Pack (日本語)
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=b3929d3b-3fe1-49dd-9cb1-c701b88d049d&displayLang=ja

Microsoft XNA Framework Redistributable 4.0
ttp://www.microsoft.com/downloads/en/details.aspx?FamilyID=a88c6dec-aeae-42cd-a108-d35c013c3b97

102 :デフォルトの名無しさん:2010/10/22(金) 19:59:56
.NET4ベースなの?驚きだな
360やWP7のCLRって2.0ベースだったはずだけどそこらへんはどうなってるんだろう

103 :デフォルトの名無しさん:2010/10/22(金) 21:16:54
何処をどう読んだらそうなるの?

104 :デフォルトの名無しさん:2010/10/22(金) 21:21:45

>XNA Game Studio 4.0 includes the XNA Framework 4.0,
> which is a set of managed libraries designed for game development
> based on Microsoft .NET Framework 4.

105 :デフォルトの名無しさん:2010/10/23(土) 02:53:55
雛形にあるUnload()メソッドはどんな時に使うんでしょうか?
ドット絵の見下ろしアクションゲーの製作序盤なのですが、登場キャラを
増やすにしたがってUnloadしてメモリの空きを確保するようにしないと
重くてどうしようもなくなったりしてしまいますか?
ガベージコレクションという機能で自動的にメモリを最適化してくれる
という話もききましたが。

106 :デフォルトの名無しさん:2010/10/23(土) 11:31:57
自分でUnloadContentを呼んではいけません。必要な時に勝手に呼ばれます。
コンテンツの管理はステージ単位くらいでいいと思います。そんなに心配する必要はありません。

107 :デフォルトの名無しさん:2010/10/23(土) 18:11:30
>>106
ありがとうございました。
メモリ管理のことも安心しました。

108 :デフォルトの名無しさん:2010/10/24(日) 21:45:47
そういえばインディーズゲームを遊んでて処理オチとかみたことないね。

109 :デフォルトの名無しさん:2010/10/24(日) 21:53:48
そりゃ個人レベルのしょぼいゲームで処理落ちしてたら話にならんわ
処理落ちの原因なんてほとんど描画なんだからC#だろうと関係ないし

110 :デフォルトの名無しさん:2010/10/24(日) 22:08:05
360上でさえ快適に動けばいいんだから当たり前。
PCゲームと違って、試作品を実機で動かしてみてガクガクなら確実に他の環境でも同じなんだから調整が簡単。

111 :デフォルトの名無しさん:2010/10/26(火) 02:11:21
XBLAのスコットがクオリティ高すぎて製作中のゲームがカスに思えてきた。
もっと練り直すわ。

112 :デフォルトの名無しさん:2010/10/26(火) 15:26:56
>>96
今はspriteBatch.DrawStringで表示しています。

113 :デフォルトの名無しさん:2010/10/26(火) 16:33:43
>>96
String.Formatを使うことで(分:秒:ミリ秒)で表示することができました。
ただ、分と秒は2ケタで表示されるのですが、
ミリ秒のところだけ3ケタで表示されてしまいます。


114 :デフォルトの名無しさん:2010/10/26(火) 18:41:32
4.0にしたらFromFileがなくなってて参考書全く役立たずで涙目

115 :デフォルトの名無しさん:2010/10/26(火) 21:09:47
>>113
var ts = new TimeSpan(0, 0, 12, 34, 567);
var dt = new DateTime(ts.Ticks);
var str = dt.ToString("mm:ss:ff");
書式指定使うならこうかなあ。本来間違った使い方だけど。
.NET4ではDateTimeにしなくてもTimeSpan.ToStringにフォーマットを直接指定できるようになった。

>>114
そんなもん使ってる参考書が悪い

116 :デフォルトの名無しさん:2010/10/26(火) 21:30:50
4.0に移行した奴ってどんだけいるんだろ
シコシコ作ってる奴は面倒くさくて移行しないし
作ってない奴は情報不足で玉砕するし
海外フォーラム読める奴は楽勝なのか?

117 :デフォルトの名無しさん:2010/10/26(火) 21:32:40
時間が解決してくれる

118 :デフォルトの名無しさん:2010/10/26(火) 21:39:22
なんで移行しないの?
ついでに公式フォーラムで2.0を使ってる人がいて不思議なんだけど


119 :デフォルトの名無しさん:2010/10/26(火) 21:40:17
英語ダメで新しいもの好きでもないような奴がXNAなんかに手を出すのがもとより間違ってる

120 :デフォルトの名無しさん:2010/10/26(火) 21:51:54
何か作るには時間がかかる
時間がかかるとバージョンアップする
バージョンアップして移行がスムーズに行く事は余りない

121 :デフォルトの名無しさん:2010/10/26(火) 21:56:13
何も考えずバージョンアップする

移行は当然の如く上手くいかない

3.1に戻すにも.NETやらVSやら変ってて綺麗に戻らないんだろうな

めんどくせーからこのまま行くか←いまここ

122 :デフォルトの名無しさん:2010/10/27(水) 02:01:33
>>118
今のままで、ちゃんと無難に製作すすんでるのに
変な不具合のリスク負いたくないし、それに見合ったメリットもないだろうと

123 :デフォルトの名無しさん:2010/10/27(水) 03:48:21
>>119
Xboxのゲーム作れるっていうのだけが動機だもの。
デザエモン、ツクールの次がXNAだっただけ。

124 :デフォルトの名無しさん:2010/10/27(水) 12:33:42
ソースのバージョン管理ツール使っていれば気軽に移行できる
前バージョンけさなくていいし、いつでも戻せるし差分も取れる

125 :デフォルトの名無しさん:2010/10/28(木) 15:21:21
年内に発売できない人は4.0にしろとか書いてあったけど、
色々変更を余儀なくされそうで面倒だなぁ

126 :デフォルトの名無しさん:2010/10/28(木) 16:59:25
ただでさえ少ない情報が更に当てにならなくなるからな
入門系の情報なんか殆ど死ぬし

127 :デフォルトの名無しさん:2010/10/28(木) 19:27:53
そんなに違うものなの?
どうせ肝心のプログラムはかわらんのジャロ。

128 :デフォルトの名無しさん:2010/10/28(木) 19:34:19
再up再審査になるとか?

129 :デフォルトの名無しさん:2010/10/28(木) 21:08:33
そんなの提出直前に4.0にコンバートすりゃいいんでそ。

130 :デフォルトの名無しさん:2010/10/29(金) 17:54:27
何も考えずバージョンアップする

移行は当然の如く上手くいかない

3.1に戻すにも.NETやらVSやら変ってて綺麗に戻らないんだろうな

めんどくせーからこのまま行くか

129「そんなの提出直前に4.0にコンバートすりゃいいんでそ。」

めんどくせーからこのまま行くか←いまここ

131 :デフォルトの名無しさん:2010/10/29(金) 18:02:52
WinとXboxを統合的に開発させようという仕様がまず間違ってる
そのくせころころ仕様変わってVS入れ直し強制
Win版XNAとXbox版XNAに特化してもらったほうがまだマシ
極めつけはバージョンアップすると以前の機能が使えない?
アホかと

132 :デフォルトの名無しさん:2010/10/29(金) 19:26:08
>>131
おまえがアホ。
統合開発可能だからWin上とXbox上の両方で容易に動作確認ができるんじゃねぇか。

133 :デフォルトの名無しさん:2010/10/29(金) 23:05:55
使えないのは>>131だな

134 :デフォルトの名無しさん:2010/10/30(土) 01:20:52
基本仕様はあんまかわってねえよ
統合優先で入門サイトやらなんやらに頻繁に出てくるような処理も平気で切り捨てるけど

135 :デフォルトの名無しさん:2010/10/30(土) 21:24:25
Xbox360固有の機能がある以上、両プラットフォームで容易に動作確認などという幻想は既に崩れ去ってるんだよ。
統合と称して「Windowsではvfetch使えないからXbox360からもvfetch削るか」と言っているようなものだ。

136 :デフォルトの名無しさん:2010/10/30(土) 21:28:29
バックに色つける機能つかないかなぁ。
「ここからここまで当たり判定の処理」みたいなのがわかりやすいように
バックに色つけて判断しやすくなったらステキじゃないか?

137 :デフォルトの名無しさん:2010/10/30(土) 21:32:14
全然金にならないXBIGなんかどうでもいいので
DirectX11/SM5.0に対応してください
XNAは好きだし、.NETから今更戻りたくないし

いつまでWinとXboxで足の引っ張り合いしてんの?
あっちを立てればこっちが立たずみたいな

138 :デフォルトの名無しさん:2010/10/30(土) 21:33:47
>>136
プリミティブで描画
GameComponent作っとけば楽だよ

139 :デフォルトの名無しさん:2010/10/30(土) 21:34:05
>>136
regionじゃだめなのか?

140 :デフォルトの名無しさん:2010/10/30(土) 21:44:08
>>137
SlimDX使え
XNAなんかに期待するだけ無駄だぞ

141 :デフォルトの名無しさん:2010/10/30(土) 21:46:55
slimdxって入門サイトがないから困る

142 :デフォルトの名無しさん:2010/10/30(土) 21:48:25
1ドル80円の円高
80〜400MSPでしか売れない
二重課税

vectorで1000円でPC版を売った方が金になるというインディーズゲームの現実(^w^)

143 :デフォルトの名無しさん:2010/10/30(土) 21:49:27
金のためならiPhone以外は無理

144 :デフォルトの名無しさん:2010/10/30(土) 21:52:06
>入門サイトがないから困る
ゆとりワロタw
やる気がないだけだろ
調べろカス

145 :デフォルトの名無しさん:2010/10/30(土) 21:53:46
Mac買ってObjective Cなんてやりたくありませーん

146 :デフォルトの名無しさん:2010/10/30(土) 21:59:00
iPhone ももう無理だよ。
いまやレッドオーシャンにもほどがある。

147 :デフォルトの名無しさん:2010/10/30(土) 22:11:03
slimdxいいなこれ
コンパクトだし、バージョンアップも容易

148 :デフォルトの名無しさん:2010/10/30(土) 22:11:51
>>145
正直に「できませーん」て言いなさい

149 :デフォルトの名無しさん:2010/10/30(土) 22:14:11
何も考えずバージョンアップする

移行は当然の如く上手くいかない

3.1に戻すにも.NETやらVSやら変ってて綺麗に戻らないんだろうな

めんどくせーからこのまま行くか

129「そんなの提出直前に4.0にコンバートすりゃいいんでそ。」

めんどくせーからこのまま行くか

SlimDXに乗り換える

何も考えずバージョンアップできる(゚д゚)ウマー

氏ねよXNA←いまここ

150 :デフォルトの名無しさん:2010/10/30(土) 22:15:29
Objective Cって入門サイトがないから困る

151 :デフォルトの名無しさん:2010/10/30(土) 22:18:04
XNA4.0って入門サイトがないから困る

152 :デフォルトの名無しさん:2010/10/30(土) 22:56:26
こんばんわ、今XNA3.1を使って3Dアニメーションを
再生しようとしているのですがうまくいきません。
できればご教授いただけないでしょうか?

開発環境
VisualStudio2008 C#
XNA3.1

3Dアニメ作成ツール
Softimage_Mod_Tool_7.5

3Dアニメを表示させているソース
ttp://create.msdn.com/ja-JP/education/catalog/sample/skinned_model

現状
ttp://tkina.web.fc2.com/kaihatu/siryou/Softimage-CharacterAnimationForXNA/No01_OriginalModel.htm
上のサイト様の手順に沿いModToolで簡単なアニメーションを作り
FBXで出力したモデルをSkinningSample-3.1に読み込ませてビルドしたところ

頂点はボーン "DeformerRoot" にバインドされていますが、このボーンがスケルトンにありません。

とエラーが出てしまいました。

よろしくお願い致します。



153 :デフォルトの名無しさん:2010/10/31(日) 00:57:15
4.0は入門サイト見てさあ始めようってやつが玄関先で躓く仕組みになってるからな
英語フォーラム読めない奴以外は3.1推奨

154 :デフォルトの名無しさん:2010/10/31(日) 15:22:58
>>152
〜XNA3.1を使って3Dアニメーション〜 - BIGLOBEなんでも相談室
http://soudan1.biglobe.ne.jp/qa6286305.html

おまえみたいなカスにはゲームなんか作れないから諦めろグズ

155 :デフォルトの名無しさん:2010/10/31(日) 16:22:20
答えられるなら答えたいが2Dしかわからぬ。
たぶん3Dやってる時点で僕なんかより技術あるんで答えられぬ。

156 :デフォルトの名無しさん:2010/11/01(月) 16:02:03
Zuneも書くから3.1は抜けられないけど、4.0と行ったり来たりすると
ちと混乱するなw

157 :デフォルトの名無しさん:2010/11/01(月) 18:46:06
Zune(笑)

158 :デフォルトの名無しさん:2010/11/01(月) 19:29:24
Zuneは日本にこねえしな。
wP7にいたっては来年末までこなそうだし。

159 :デフォルトの名無しさん:2010/11/01(月) 19:50:52
ZuneはインディーズのDLもできるの?
できるなら海外での売り上げうpにつながるから(笑)とはいっとれん。

160 :デフォルトの名無しさん:2010/11/01(月) 20:01:38
4.0で非サポートになったのに売り上げうpとかw
>>159のようなゲームを作って売ったこともないワナビーがXNAを支えているのだなぁ

161 :デフォルトの名無しさん:2010/11/01(月) 20:02:00
まだそこら辺のアナウンスはでてないだろ。

でもMSのAppStoreを中心にPC、WP7はてんかいするかもしれないね。
360はやっぱ別市場になるのかな、わからんけど。

162 :デフォルトの名無しさん:2010/11/01(月) 20:02:57
>>160
ワナビ^2うぜーぞ、この素人が。

163 :デフォルトの名無しさん:2010/11/01(月) 21:39:07
>>160
XNAはそういう層にアッピルしたんだから当然さぁ

164 :デフォルトの名無しさん:2010/11/01(月) 22:58:25
XNAでヒット作はどのくらい売れてるの?

165 :デフォルトの名無しさん:2010/11/02(火) 16:52:14
例外的なヒット作はすごいらしいしそうじゃないのはほとんどスルーされてそうだし作品規模にもよると思う

166 :デフォルトの名無しさん:2010/11/02(火) 19:29:28
ドラクエっぽい骨RPGは3万いったそうだね。

167 :デフォルトの名無しさん:2010/11/03(水) 13:59:06
>>166
詳しく

168 :デフォルトの名無しさん:2010/11/03(水) 15:47:28
>>167
Breath of Deathのことかと
英語だからプレイしにくいがとてもとてもドラクエっぽい

169 :デフォルトの名無しさん:2010/11/05(金) 17:47:07
2Dシューティングで、デススマイルズのような
「当たっても死なないが押し返される地形」を作りたいのですが
どのような方法があるでしょうか?
BoundingBoxで触れた方向をチェックすることはできないでしょうか?

170 :デフォルトの名無しさん:2010/11/05(金) 17:57:32
>>169
スーパーまりオクローンのソースでも眺めろ、
聞く前に調べろこのカスが!

171 :デフォルトの名無しさん:2010/11/05(金) 19:19:50
ゲーム作りで学ぶ〜のピンポンのに当たる位置を調べるのがあった気がするなあ

172 :デフォルトの名無しさん:2010/11/05(金) 22:54:32
まず地形無しで作れよ

173 :デフォルトの名無しさん:2010/11/06(土) 10:52:04
DirectXで描画するウィンドウってひとつしか作れないでしょうか?


174 :デフォルトの名無しさん:2010/11/06(土) 18:07:55
レスありがとうございます。
>>171
ブロック崩しに斜めヒットの判定をチェックするのがありました。
これの応用で左側にヒット状態=右に進めない(または移動させる)
上側にヒット=下に進めない(または移動させる)
のようにできる気がしてきました。

175 :デフォルトの名無しさん:2010/11/06(土) 18:29:55
>>172
既に触れるダメージをうける地形まで作ったところです。
でもFC版ドラえもん魔境編のように重なることができてしまうので
押し返しにトライしてます。

176 :デフォルトの名無しさん:2010/11/06(土) 19:45:33
アルファチャンネルのあるビルボード(たとえば木のテクスチャ)を何枚も重ねると後ろが矩形状に抜けてしまいます。
これを回避するにはZソートを使うとよい、とネットで調べて分かったのですが、
以下のソースを実際にどのようにいじればZソートができるのかがわかりません。
ご教授お願いします。

foreach(ModelMesh m in model.Meshes){
 foreach(BasicEffect e in m.Effects){
  e.EnableDefaultLighting();
  e.World = Matrix.Identity;
  e.View = Matrix.CreateLookAt(new Vector3(0, 10, 10), Vector3.Zero, Vector3.Up);
  e.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, 4f / 3f, 10, 1000);
 }
 m.Draw();
}

177 :デフォルトの名無しさん:2010/11/06(土) 23:57:29
>>175
特定範囲の内部に入ったら
範囲の法線の向きに自機に力を加えればいいんじゃないの

178 :デフォルトの名無しさん:2010/11/07(日) 23:57:15
>>177
なるほど、そういう考え方もあるんですね。
計算式は難しそうですが成功すれば配置しやすそうです。
チャレンジしてみます。

179 :デフォルトの名無しさん:2010/11/10(水) 03:50:35
XNA4.0に3.1で作ったビルボードを移植したんだが
アルファ付PNGの透明部分が、しっかり抜けるときと、抜けない(背景色で塗りつぶし)ときがある
どうも、描画順番によるものだということがわかったのだが
3.1のきはこの辺考えなくてもよかったけど、4.0では距離順にソートしないと駄目とかになったの?
それとも、なんかオプション増えたの?

教えてください

180 :デフォルトの名無しさん:2010/11/10(水) 16:33:07
オプションだいぶかわったべ

181 :デフォルトの名無しさん:2010/11/11(木) 11:03:30
3Dゲームの壁や障害物(長方形)の当たり判定で悩んでます。何か良い方法はありませんか?
BoundingSphereのようにメッシュを利用出来れば簡単そうなのですが
BoundingBoxでメッシュを使う方法がわからなくて……

182 :デフォルトの名無しさん:2010/11/14(日) 02:48:16
すげー根本的っていうか、基本的な部分な質問ですまないんだけど
グラフィック関係を扱っていると繰り返し出てくる

GraphicsDeviceクラスって何を表してるの?

グラフィックなデバイスだけら、グラボやグラフィックメモリのことかと思ったんだが
なんか違うような気がする。
イメージつかむのにアドバイスください

183 :デフォルトの名無しさん:2010/11/14(日) 04:06:22
>>182
解像度やアスペクト比の設定から2D/3Dグラフィック描画環境の構築まで
グラフィック関連の主軸となる要素を担うクラス、ってことでいいんだろうか・・・・・・

正直、ブラックボックスというか呪文みたいなものだから俺も詳細とか知らないで使ってるんだよね・・・・・・・

184 :デフォルトの名無しさん:2010/11/15(月) 20:48:10
>>183
回答サンクス

よくわからんけど使える、グラフィック関係の何かって認識程度で
今のところ支障がないっぽい

185 :デフォルトの名無しさん:2010/11/17(水) 03:14:54
面倒臭かったけど 4.0 になんとか移行した
ストレージ絡み微妙に変更とか、まじ勘弁して欲しいわ

186 :デフォルトの名無しさん:2010/11/17(水) 04:36:30
>>185
まだC#でオタオタしてるレベルだから逆にダメージ低そうなオイラ

187 :デフォルトの名無しさん:2010/11/17(水) 06:16:05
>>185
俺も移行完了。
Modelの頂点情報の仕様変更が面倒だった。
あと、PointSprite廃止とか。
これで、しばらくは移行しなくていいし、まったり。 (´ー`)y━~~

188 :デフォルトの名無しさん:2010/11/17(水) 12:39:50
移行したいけどWindows 7持ってない

189 :デフォルトの名無しさん:2010/11/17(水) 21:47:39
働いて、買えば?
私にはそのくらいしか答えてあげられません

190 :デフォルトの名無しさん:2010/11/17(水) 23:07:38
XNA3.1での質問です
新規プロジェクトに

public Texture2D test()
{
RenderTarget2D temp = new RenderTarget2D(graphics.GraphicsDevice,
100, 100, 1, SurfaceFormat.Color);
graphics.GraphicsDevice.SetRenderTarget(0, temp);
graphics.GraphicsDevice.Clear(Color.Gray);
graphics.GraphicsDevice.SetRenderTarget(0, null);
return temp.GetTexture();
}
って関数ついかして
Draw(GameTime gameTime)で呼んだら画面が紫色になりました。
バックグラウンドを勝手に塗りつぶしてほしくないのですが、どうしたらよいですか?

191 :デフォルトの名無しさん:2010/11/18(木) 19:25:51
萌えキャラ使ったローグライクなゲーム作ったら
それなりに日本で売れる気がする

192 :デフォルトの名無しさん:2010/11/18(木) 19:38:55
ローグゲーを箱でやるの?ボタン足りるの?

193 :デフォルトの名無しさん:2010/11/18(木) 19:45:37
>>191
やるなら「おでかけダンジョン」みたいなやつだろうな。
プログラムはそこそこめんどうくさそうだ。

194 :デフォルトの名無しさん:2010/11/18(木) 20:25:50
ローグといえばメモリやCPUの乏しかった時代のパソコンゲームだったという印象はあるな

195 :デフォルトの名無しさん:2010/11/19(金) 00:13:19
>>188
WindowsPhone7 用に何か作るの?
でなければ XP でも 4.0 いけるけど

196 :190:2010/11/19(金) 04:47:23
>>190は自己解決しました

GraphicsDevice.SetRenderTarget()はDrawで呼ぶんじゃなくて
Updateで呼ぶのか・・・・

197 :デフォルトの名無しさん:2010/11/19(金) 09:41:44
>>196
自己解決しても解決策おいていってくれる人って好きよ(はぁと)

198 :デフォルトの名無しさん:2010/11/19(金) 12:13:15
球体モデルの当たり判定は「Model.Meshes[0].BoundingSphere」で簡単に作れたんですが
平面や四角形はBoundingBoxを使って自分でサイズ指定する以外に当たり判定を作る手段はないのでしょうか?

199 :デフォルトの名無しさん:2010/11/21(日) 15:50:23
XNAのKINECT対応はいつですか?

200 :デフォルトの名無しさん:2010/11/21(日) 20:14:34
対応されたとしてどうやって作ればいいのか見当がつかないな

201 :デフォルトの名無しさん:2010/11/21(日) 20:30:18
ひさびさにwktkする題材だよな
この為だけにクリエイターズクラブとやらに登録するわ
MSXで投稿してた頃を思い出すぜ

202 :デフォルトの名無しさん:2010/11/21(日) 21:19:15
Kinect、ゲームで使うのは難しそうだけど、
モーション作成とかに使えれば面白そうだなーと思う

203 :デフォルトの名無しさん:2010/11/21(日) 21:33:17
Xbox360でモーションデータを作成するとしてパソコンに持ってくる方法ってある?
せめてネットにアクセスできればいいんだけど。

204 :デフォルトの名無しさん:2010/11/21(日) 22:04:21
XNA3.1のStorage系って、結局Guide使えないと使えないのかな?
・XBOX360インディーズゲーム
・XNA GS入れてないWindows(対象はVista以降)
の両方で動くアプリを作っているんですが、後者はGuideが使えなかったような…

205 :デフォルトの名無しさん:2010/11/22(月) 03:08:55
kinectをいかせるのは3Dなんじゃないかなぁ。
企業なみに技術力ないXNA初心者で扱えるシロモノなんじゃろか。
できるならすごい興味あるんだけどね。

206 :デフォルトの名無しさん:2010/11/22(月) 03:15:31
KinectってUSB対応だし、
Windows版のXNAでも使えるのを期待してみたいw

207 :デフォルトの名無しさん:2010/11/22(月) 21:11:08
XNAでGT5みたいなのつくってみたいです。

208 :デフォルトの名無しさん:2010/11/22(月) 21:58:42
>>206
USB対応ならPS3で使える?

209 :デフォルトの名無しさん:2010/11/22(月) 22:30:46
208は「USBだからって使えるっていう単純なモノじゃねーだろ」という
含みをこめて言ってるのか、それとも質問なのか

210 :デフォルトの名無しさん:2010/11/22(月) 23:50:56
仮にもプログラム板での発言だぞ
後者はたまによくいるくらいだろ

211 :デフォルトの名無しさん:2010/11/24(水) 01:15:11
テクスチャ付ポリゴンを DrawPrimitive で描画してるのですが、
ストリップで4頂点で四角形を描画しています。
その4頂点を それぞれずらすと、ポリゴンの繋ぎ目 真ん中に / のような感じでテクスチャが歪んでしまいます。
歪ませないようにはどうすればいいでしょうか?

XNA 3.1 で BasicEffect を使用している為、シェーダーを使わないで解決する方法を探してます。
どこかいいサイトなどありましたら是非教えてください。
よろしくお願いします。


212 :デフォルトの名無しさん:2010/11/24(水) 21:55:20
http://www.youtube.com/watch?v=leiZ9uOSzfE&feature=related
今、3Dフィールドの当たり判定で四苦八苦してるんだけど
この動画見ると、エリア(黄色線で囲った範囲)ごとに一つずつ単純にBoundingBoxで作ってるのかな?

結局、XNAで地面の凹凸を表現するにはこの方法しかないのかな?
メッシュ使って凹凸に合わせて当たり判定自動生成〜、なんて便利な機能は無し?

213 :デフォルトの名無しさん:2010/11/25(木) 00:51:43
>>212
なんか勘違いしてないかな AABB って書いてあるよ
凸凹表現ではなくこの箱はポリゴンごとの詳細チェックを枝刈するものだよ?
で レイピックみたいなのはなかったと思うな
そんなんあったらいいけどね

214 :デフォルトの名無しさん:2010/11/25(木) 10:29:18
>>212
私はランドスケープによる当たり判定してます。
ほとんどの人がこの方法じゃないかな?

1.当たり判定用の地面を三角ポリゴンのみで作る。
2.Model(4.0ならMeshPart)から頂点データを取り出す。
3.調べたい場所のXとZ座標から、全ての三角形の内包判定。
4.当たっていたら、そのポリゴンとの交差する高さも計算する。
  その高さにキャラを移動させれば、地面の凹凸に合わせて移動させられる。
  当たっていなかったら、行き止まりにする。

私は内包判定とかは、自前で計算してますが....。
XNAのRayとかで、ライブラリを使って判定することもできるはず。

215 :デフォルトの名無しさん:2010/11/25(木) 19:14:39
>>213-214
自分の知らない用語が山ほど・・・・・・
今までBounding〜を使うことしか頭にありませんでしたw
ええと、まずは頂点データを取り出す方法と内包判定の計算方法から調べてみます。ありがとうございました!

216 :デフォルトの名無しさん:2010/11/25(木) 20:34:16
多分、衝突判定についてちゃんと勉強した方がいい。

217 :デフォルトの名無しさん:2010/11/25(木) 23:51:03
App Hub に Reactive Extensions の項目が入ってるね。中身はないけど・・・

218 :デフォルトの名無しさん:2010/11/26(金) 00:01:40
ランドスケープは建物の中のときは適さないよね。
エースコンバットみたいなゲームならランドスケープが楽チンだね。

>>215
AABB はXYZの軸に沿ったBoundingBoxのことだよ 軸に沿うから回転しないのね。
で、そのモデルを内包するようにオフラインで最大最小頂点求めて作るんだ。

だから槍とか、しなった刀とか斜めってる細長いのは、ロスがデカイんだ。
そこで、OBBってのがあってね…って言ってると限がないので、ググればすぐ見つかるよ。

内包はXNAにあるからそれ使えばいいと思うよ。

問題なのはきっとレイ(直線)だね。
表裏判定も決めなきゃいけないし、貫通したときにヒットしたポリゴンで最も手前を取って交点を求めたり、
内包されてて交点がない場合とか、結構メンドクサイよ。

DirectXだと、それをやってくれるレイピックって関数があるんだ。
XNAにはないんだよねー。

だ…誰かテクスチャの歪みの対処方法教えてくれないかなァ…


219 :214:2010/11/26(金) 08:05:50
>>218
AABBとOBBか....。(初めて聞く言葉です。)
ランドスケープと回転してない直方体(球)ぐらいしか当たり判定を
してこなかったから、大変参考になります。


220 :デフォルトの名無しさん:2010/11/29(月) 00:00:40
Kinect ハック
http://hibari.2ch.net/test/read.cgi/tech/1290795733/

221 :デフォルトの名無しさん:2010/11/29(月) 10:28:48
XNAのAABBとかRayって参考サイト少ないなぁ・・・
誰か地形の当たり判定を実装する為の良いサンプルソースとか解説サイト知りませんか?

222 :デフォルトの名無しさん:2010/11/29(月) 11:39:47
ハイトマップの衝突ならapp hubにサンプルあるね

223 :デフォルトの名無しさん:2010/11/29(月) 19:53:22
>地形

これ使ってみた奴いないの?
ttp://ameblo.jp/junk-f/day-20100403.html

俺はなんかやってることが理解できなくて不気味だから使えないけど、できるんかよこんなので…?
次回以降の説明とか見てもマジ意味不明。こんなことしなくちゃならんの?

224 :デフォルトの名無しさん:2010/11/29(月) 21:07:30
落ち着け

225 :デフォルトの名無しさん:2010/11/30(火) 00:09:51
やれやれ

226 :デフォルトの名無しさん:2010/12/01(水) 10:18:57
自分も当たり判定の処理で悩んでます……

1.キャラクターの眼前にRayを飛ばす
2.Rayとマップモデルの三角ポリゴンとの衝突判定
3.衝突したら三角ポリゴンの高さを調べる
4.高さが一定値以下だったら段差、一定値以上だったら壁として移動処理

と、いう処理をマップモデルと衝突判定を取る方法として思いついたんですが
2と3をどう処理すれば良いのかがわかりませんorz

227 :デフォルトの名無しさん:2010/12/01(水) 19:08:28
それだと超ローポリ(一面が三角2ポリゴンの四角形とか)のモデルにしか使えなくね?
まあ、箱と球以外の当たり判定は俺もさっぱりなんですがねw

レイと三角ポリゴンの交差判定はちょこちょこ挑戦してるんだけど
VertexBuffer型とIndexBuffer型にモデルメッシュからデータ取得したところで止まってるなぁ・・・・
個人的には基本EASYなXNAの中ではかなり難易度の高い処理なんじゃないかと思ってたりするんだけど
サンプルソースや解説サイトをほとんど見かけないってことは、単に俺がノータリンなだけなんだろうかw

228 :デフォルトの名無しさん:2010/12/01(水) 20:08:30
三角2ポリゴンってなんだw
一面を三角ポリゴン2つで構成した四角形ってことですスイマセン

229 :デフォルトの名無しさん:2010/12/02(木) 04:32:01
>>227
>サンプルソースや解説サイトをほとんど見かけない
まず殆どマップ衝突判定のソースはないだろうね
うちはSlimDXのRay/Triのコリジョン使って2〜3日程でマップ移動の壁・床システムを自力で作った
もちろん、XNAにも流用できると思うけど
Ray/Triでは距離(distance)を取得できるからこれを利用するのいいのかな

230 :214:2010/12/02(木) 05:39:46
>>226
ランドスケープなら、真下にRayを飛ばせばできます。
ランドスケープと内包判定などで検索するといくつか情報出てくるみたいですが、
私が作ったときより情報が減ったような?
内積を使って判定します。
壁の高さが必要ないなら、みつからなかったら壁にしたほうが速度が速くなると思います。

>>227
当たり判定は、表示モデルとは別にローポリで作った方がいいと思います。
私の場合は1200ポリゴンのコリジョンモデルを使っています。
(エリア分けするので、けっこうハイポリな巨大なマップでもいける。ポリゴン密度が同じならコストは変わらない。)
エリア毎に最初に分けるので、速度のコスト0(メモリに負担がかかる。4MByte程度)で、12ポリゴン程度にまず絞り込みます。
そこから、12ポリゴンを総当りです。

XBOX360のシングルコアの60フレで1フレーム50〜60箇所、30フレで120箇所程度の当たり判定ができています。
(背景表示、15程度のスキンモデルも同時に表示している。)
マルチスレッドにすればもっといけそうですが、試していません。

GCのF-ZERO-Xは、50台のマシンが60フレで動いてたけどどうやって当たり判定とってたんだろう?気になる。
XBOX360と比べたらかなり速度が厳しいと思うのだが。

231 :214:2010/12/02(木) 05:44:54
>>230
4MByteは飽くまで参考程度で。
たぶんこんなにかからない。
体感ではそのぐらい増えたような気がするんだが....。

232 :214:2010/12/02(木) 06:26:34
>>230
かなり大きめのマップ、地形とスキンモデルのシャドウ表示(セルフもあり)、
また地形とスキンモデルにノーマルマップを使用しているので、
1フレーム当たりの地形判定は、2倍程度の速度が出せるはずです。
実験はしてませんが....。
速度は参考程度で。

233 :281:2010/12/02(木) 22:30:42
>>229-232
レスサンクス。
通常マップの上に衝突判定用マップ重ねて>>226っぽい処理すればいいのかな?
VertexBufferとIndexBuffer抜き出して内積計算するんだと思うんだが、中身がNULLで使い方がわからないという・・・
取り出し方って「VertexBuffer VertexBuffer = Model.Meshes[0].VertexBuffer;」で合ってる?

234 :デフォルトの名無しさん:2010/12/03(金) 02:04:43
ランドスケープってば XZ から対象ポリゴンを絞って比率というか線形補完で高さを求めるんじゃなかったっけ?
レイで平面上に投影しても同じかな
ここでいうランドスケープは モデリングされた地形のことなのかな?
僕はハイトマップとかで作るものを想像しちゃうなランドスケープは

通常のマップってのがよくわからないけど描画モデルのことなら そういうことだと思う
描画モデルはハイポリ 当たり判定モデルはローポリだと思う
そもそも当たり用は見えないし ポリゴンたくさんあったら探すのに時間かかるだけだもんね
精巧に判定が必要なら しょうがないけど 作るもの次第かな


235 :214:2010/12/03(金) 05:31:13
>>233
foreach (ModelMeshPart mesh_part in mesh.MeshParts) {
VertexElement[] vertex_format;
vertex_format = mesh_part.VertexBuffer.VertexDeclaration.GetVertexElements();
vert = new VertexPositionTextureNormalBinormalTangentColor[mesh_part.NumVertices];
mesh.MeshParts[0].VertexBuffer.GetData<VertexPositionTextureNormalBinormalTangentColor>(vert);
index_data = new short[mesh_part.IndexBuffer.IndexCount];
mesh.MeshParts[0].IndexBuffer.GetData<short>(index_data);
}

私は上のような感じでとってます。
2〜3行目は頂点フォーマット確認用の為だけなので、
頂点フォーマットがわかっているなら必要ないです。

>>234
モデリングされた地形のことをランドスケープと思って話していました。
どっちが一般的なのかはよくわからないです。

236 :214:2010/12/03(金) 06:11:58
>>235
GS4.0での場合です。
GS3.1は別の場所に頂点データがあります。
正確な場所は失念。

237 :214:2010/12/03(金) 06:29:43
>>235
foreachのループ意味ないですね。
最初と最後の1行は削除してください。
バグみつけてしまった。 orz

238 :214:2010/12/03(金) 06:32:32
>>237
いや、mesh_part使ってるのか。
でも、mesh.MeshParts[0]でアクセスしてるし....。
適当に調整してください。

239 :デフォルトの名無しさん:2010/12/07(火) 01:18:26
>>230
GCのF-ZERO-Xは知らんけどね
厳しいのなら50台あっても全部判定してないんじゃないかなぁ

プレイヤの見える範囲だけとか そもそも球体でやってるんじゃないかな
簡単で早いでしょ sqrt 使わなきゃ

地形のことかな? 僕なら当たり判定という処理はしないな
やるなら動ける範囲内かどうかのチェックをすると思うな
プレイヤが居る床は最初に決まってるわけだから おのずとそれに隣接する床もわかるからね
すると当たりようのポリゴンを探す必要がないと思うんだ
後は法線で面の上に乗ってるかだけ見ればいいんじゃないかな?


240 :デフォルトの名無しさん:2010/12/08(水) 23:10:02
Xファイルから衝突判定が取得できるこれなんてどう?

Collidable Model
ttp://www.theomader.com/public/collidable_model.html

241 :デフォルトの名無しさん:2010/12/11(土) 13:34:21
2枚以上のテクスチャを重ねて1つのメッシュに張る方法としてどんなのがあるだろ?
とりあえずRenderTarget2Dを使う方法を考え付いて試したんだけど
1フレームに複数回呼ぶと、FPSがすごい勢いで下がるので使えんかったよ。
1回だと問題ない(FPS60)のに、2回だと急にFPSが10以下とかになるんだよな。

で、別の切り口とかあったら教えてほしいのだけど、よろしくお願いします。

242 :デフォルトの名無しさん:2010/12/11(土) 13:40:46
ピクセルシェーダ使う

243 :デフォルトの名無しさん:2010/12/16(木) 06:52:00
格闘ゲームなどにある「ヒットストップ」のようなものを
実装する(エフェクトも含め画面全部の更新を数フレームストップ)場合は
どのように処理するのが一般的でしょうか?

244 :デフォルトの名無しさん:2010/12/16(木) 10:04:46
VC#2008で
fxファイルを編集していますが、
コメントアウトや、予約後などが色分けされません。

単なるテキストエディタのようになっており非常に見にくいです。

どうすれば、色分けされるのでしょうか?



245 :デフォルトの名無しさん:2010/12/16(木) 11:31:52
intelishadeでggr
開発止まっちゃったんかな、サイト消える前の開発状況見てかなり期待してたんだけど

246 :デフォルトの名無しさん:2010/12/16(木) 12:56:23
>>243
その間動かさなきゃいいだけだろ
描画や更新を止める必要はない

247 :デフォルトの名無しさん:2010/12/16(木) 17:55:08
>>244
expressは無理だった気がする

248 :デフォルトの名無しさん:2010/12/16(木) 20:48:09
>>244
キーワード強調表示ができるテキストエディタ使えば?
本格的にやるならFX ComposerやRenderMonkey使うし
需要がないんでしょ

249 :デフォルトの名無しさん:2010/12/18(土) 17:30:34
ttp://social.msdn.microsoft.com/Forums/ja-JP/xnagameja/thread/aa5ea326-8308-41
1d-b9a9-47901e81b22b
>アニメーション情報はコンテントパイプライン上で常に60fpsに再サンプリングされ、
同時にフレーム間の補間も行っています。
これが本当に行われているかわからん。
Metasequoiaとkeynoteプラグインの組み合わせで作った Xファイルは
DirectXSDK付属のDirectX Viewerで正常に補完されるが、SkinningSampleでは
keynote上のキーフレームしかでない。

自宅環境では、正しいファイルが作れないので、Xファイルのフォーマットに
不足があるかをハッキリさせたい。

最悪、ソフトを変えるなり、DXUTを参考に補完とかするのかな?



250 :デフォルトの名無しさん:2010/12/18(土) 23:42:37
>>246
ありがとうございます。
独自に時間を加算していたメソッド外に全処理を一時的に飛ばすことで
解決しました。

251 :デフォルトの名無しさん:2010/12/19(日) 00:28:24
>>250ですが具体的には
ステージ1のメソッド{時間計測変数int timeStage1++}
ヒットストップ用のメソッド{int hitStop++}
みたいなそれぞれの状態の時間を保持する変数を1フレームごと増加させて
でヒット状態のときヒットストップ用のメソッドにとばしてhitStop変数が
4になったらステージ1のメソッドに戻す、という。初心者考えだから
スマートじゃないと思いますが、ポーズでメニュー開くのもだいたいこんな
感じですよね、きっと。

252 :デフォルトの名無しさん:2010/12/19(日) 09:59:35
長文気味になりますが、失礼します。
現在2Dのシューティングを作っているのですが、教えて欲しいことがあります。
2Dの画像の回転なのですが、どういう風にやればいいでしょうか。
大元になるものは学校で教師が作ったもので、一通りやりたいことはできるものらしいのですが、
質問した際には、public class Sprite(別のクラス内)というところにある
public void SetDestAngle(Vector2 center, float angle)
{
origin = center;
rotation = MathHelper.ToRadians(angle);
}
という記述を回転させたい画像に組み込め、という風に言われたのですが、
どこに追加すればいいかよくわからなくてうまくいってません。

プログラム云々に関する知識が足りないと思っているので、しっかりと説明できているかわかりませんが、
どうかよろしくお願いします。

253 :デフォルトの名無しさん:2010/12/19(日) 10:29:21
それで判らないなら
もう回転させた画像用意しろよ


254 :デフォルトの名無しさん:2010/12/19(日) 10:39:05
そんな知識でゲームつくるな

255 :デフォルトの名無しさん:2010/12/19(日) 10:59:32
>>253,254
すみません、自力でできました。
スレ汚し失礼しました。

256 :デフォルトの名無しさん:2010/12/19(日) 14:14:53
>>252
自己解決オメ。

257 :デフォルトの名無しさん:2010/12/19(日) 15:57:01
どう解決したのか書いてないから嘘だろね。もう来んなよ

258 :デフォルトの名無しさん:2010/12/20(月) 12:18:34
でも確かにSpriteBatchに限らずXNAは引数の意味やオーバーロードが分かりにくい気はする
いかにもDirectXらしい悪いところを真似してる感じ

259 :デフォルトの名無しさん:2010/12/20(月) 12:19:08
MSだもの

げいつ

260 :デフォルトの名無しさん:2010/12/20(月) 16:12:11
素でわかりにくい上に色々切り落としていくから更にカオスに

261 :デフォルトの名無しさん:2010/12/20(月) 18:52:53
元が悪いものを叩き上げていいものに見せようという発想はセガに通じるものがある。

262 :デフォルトの名無しさん:2010/12/20(月) 21:44:06
ポイントスプライト速え!うひょー
とか言って楽しんでたのに4.0の野郎・・・

DrawIndexedPrimitiveややこしいわかんね氏ね
ラーニングんとこのサンプルは低脳でもわかるようシンプルにして頂きたい

263 :デフォルトの名無しさん:2010/12/21(火) 01:41:50
だな 理解するために用意されたシンプルなサンプルであって欲しいと思うよ

俺は XNAのガチガチのスプライトがなぁ…
テクスチャと座標の4頂点自由に設定したくなったら 正射影で頂点バッファとかポリゴン描画になって一気にメンドくさくなる
たぶんこれ だいたい作る羽目になると思うけどな
それをみんながやらなくていいように用意したのがライブラリだと思うんだがなぁ

嫌なら使うな とか言ってるとますます過疎っちゃうな
タダなんだけどな… 最近はUDKとかがゲーム作るには楽そうだなぁ


264 :デフォルトの名無しさん:2010/12/21(火) 02:03:10
>>263
俺はもうVS1.1で解決させちゃったなそれw

なんなら、ここに貼ってやろうか?

265 :デフォルトの名無しさん:2010/12/21(火) 02:27:41
ttp://codepad.org/34210xhv
みんな使うなら

266 :デフォルトの名無しさん:2010/12/21(火) 03:02:43
ttp://create.msdn.com/ja-JP/education/catalog/tutorial/optimization_highfrequency
ここに同じ主旨のshaderあるぞ

//Move to screen space.
Out.ScreenPos.x = (In.ObjectPos.x - halfScreenWidth) / halfScreenWidth;
Out.ScreenPos.y = (In.ObjectPos.y - halfScreenHeight) / halfScreenHeight;


267 :デフォルトの名無しさん:2010/12/21(火) 12:13:59
>>265
ありがとう! やっぱシェーダー使うんだね
オイラは BasicEffect 使ってたよ
機能的にも特別なことする必要なかったからなぁ

screenPos -= 0.5f;
float2 result = screenPos.xy / ScreenSize.xy * 2 - 1;

*2 はハーフサイズになっちゃうから2倍にしてるんだろうけど
0.5 と -1 はなんだろう?
-0.5 は正規化座標系のセンタリング?

>>266
ここで言うスクリーンポジションは正規化空間なのか
だから >>265 のも正規化しちゃうんだね


268 :デフォルトの名無しさん:2010/12/21(火) 12:43:51
BasicEffectでもWorld,View,Projectionが単位行列なら、
vertexの座標を同じ式で弄れば行けハズ。試した事ないが

>>266>>267は式変形すれば解るが縮尺は同じ式
(267は上下反転するかな?)
あとはここの内容
ttp://msdn.microsoft.com/ja-jp/library/bb206341(VS.85).aspx
>ビューポートのクリッピング ボリュームの範囲は、X 方向につい
>ては -1.0 〜 1.0、Y 方向については 1.0 〜 -1.0
とあるが、ハーフサイズ?とか何処かでそう言う説明の仕方されてるなら
わかってるかな?

-0.5は、ドット単位だと(-0.5,-0.5)ずれるから必要。
これは公式にも無いかもしれない。

269 :268:2010/12/21(火) 12:54:48
ごめんレス番間違い
上下反転する 266
上下反転しない 265

270 :デフォルトの名無しさん:2010/12/22(水) 00:26:29
上下反転はスクリーン上だとYが下に進むと+になるからね

ドットずれかぁ
どおりで 0.5減算でセンタリングだとすると 正規化前に減算してるから座標系が合わないからおかしいなぁと思ってたんだ
ピクセルのレンダリング中心が0.5にあるってのは なんかで聞いたか見たことあるな

バイリニアの巻き込みのやつだったっけかな なんかで見たよ

で -1 で減算してるのが -1 〜 1 のセンタリングなんだね
なるほどなるほど
やっと把握できた 丁寧に説明してくれて ホントありがとう!

サラっとわかるように僕はもっと勉強しないとな


271 :デフォルトの名無しさん:2010/12/24(金) 17:01:52
すみません質問です。

BoundingBoxを使えば当たっているかの判定ができるところまで調べたのですが、
当たっている方向を調べるにはどうすればいいのでしょうか、例えばマリオの?ブロックとか
当たる方向によって乗ったりぶつかったりコインが出たりしますよね、あんなのがやりたいんですが。

とりあえず考えたのは、6面全部別のBoundingBoxを使う方法ですが、
6倍当たり判定をやるのはさすがにまずそうなので
何かいい方法があったらお願いします

272 :デフォルトの名無しさん:2010/12/24(金) 18:03:07
>>271
移動してるほうの進行ベクトルじゃダメなの?


273 :デフォルトの名無しさん:2010/12/24(金) 18:57:51
>>272
斜め上にジャンプしてる時とか
下にも横にもぶつかりうりますよね?

274 :デフォルトの名無しさん:2010/12/24(金) 19:12:25
>>273
え? ん?
だから進行ベクトルなんだけど?
なんか言葉の勘違いかもしれないので…
最終的には移動方向の進行ベクトルは1本のベクトルになるよ?


275 :デフォルトの名無しさん:2010/12/24(金) 19:25:06
?んーわかんないです。
>最終的には移動方向の進行ベクトルは1本のベクトルになるよ?
移動方向への進行ベクトルってのは>>273でいう斜めってのとは別ものですか?

276 :デフォルトの名無しさん:2010/12/24(金) 19:27:53
横からだがw

> ?んーわかんないです。

もうこの人には何言っても無理な予感w

277 :デフォルトの名無しさん:2010/12/24(金) 19:29:00
すいませんもうちょっと勉強して出直します

278 :デフォルトの名無しさん:2010/12/24(金) 19:30:20
いやAABB同士の衝突ならどの面に当たったかは進行方向だけじゃ分からないだろ

279 :デフォルトの名無しさん:2010/12/24(金) 19:58:23
>>271
俺もあんま詳しくないけど、
X方向への食い込みが大きければ横から、Y方向への食い込みが大きければ下から
ってことにするんじゃなかったっけ?

280 :デフォルトの名無しさん:2010/12/24(金) 20:08:48
それも進行方向によるでしょ

281 :デフォルトの名無しさん:2010/12/24(金) 23:28:49
えっと 「衝突」ってのはさ
基本的に どちらか または 両方 が動いているからぶつかるんであって
動いていないと ぶつかることはないんだよ?
動くってことは進行方向があるってことでしょ?

もし最初から重なってるなら それはただ進行方向ゼロのベクトルってだけじゃない
>>275 「ベクトル」という定義そのもの自体を調べてみてよ きっとわかると思うよ

AABBは ただ内包する軸に沿った箱だから形状が大雑把になっただけでしょ?
方向とは関係ないと思うんだけどな


282 :デフォルトの名無しさん:2010/12/24(金) 23:39:50
AABBだと、面だけじゃなく線と点の衝突もあるような
□→◆
マリオが例に出てるんだから普通のバウンディングボックスなんじゃないかなぁ
マリオの例だと斜めは移動方向だけど、
上に大きく右にちょっとジャンプしたからといって下からぶつかるとは限らない
なので衝突時の際の各ボックスの中心間のベクトルを考えればいいんじゃないかな

移動は離散的だからこれで完全じゃない(例:移動が超高速)けど
その辺の細かい所はわからないや

283 :デフォルトの名無しさん:2010/12/24(金) 23:50:12
それ逆
AABBが軸に沿ったバウンディングボックス。XNAのBoundingBox構造体はAABB。
衝突した面を求めるなら中心間のベクトルじゃダメだよ。
■のどの面に□が衝突したかを中心間のベクトルの方向で調べるとすると、
□□

は上側に衝突してるけど
□□□□□□□□□□□□□□

は右側になっちゃう

284 :デフォルトの名無しさん:2010/12/24(金) 23:53:38
俺も相対ベクトルだけでも良いような気がするな
けど、AABBとかどこで使うか解らないや
教えてえろいひと

285 :デフォルトの名無しさん:2010/12/24(金) 23:55:01
なるほど、ほんとだわ
難しいな衝突判定わ

286 :デフォルトの名無しさん:2010/12/25(土) 00:00:39
>>282
>□→◆

これって AABBじゃないと思うんだけどな…

ちょっと逆に教えて欲しいんですが
AABB で線と点の衝突ってどういうことだろう?

ま 線でも点でもどっちでもいいけど 内包すれば
ただの長方形だから 考え方に変わりはないと思うんだ
でもオイラの認識違いかもしれないから是非 教えて欲しいな


>移動は離散的だからこれで完全じゃない(例:移動が超高速)
これだけど超高速でも 単に過去の位置と今現在の位置の差分でOKだと思うけどなぁ ダメ?


287 :デフォルトの名無しさん:2010/12/25(土) 00:01:48
>>281
進行方向が分かってもどの面に衝突するかはわかんないだろ

288 :デフォルトの名無しさん:2010/12/25(土) 00:03:44
で、結局どうするのが正解なの?

289 :デフォルトの名無しさん:2010/12/25(土) 00:04:46
あ、それと俺282だけどAABBとOBB勘違いしてた
AABBはただのバウンディングボックスのことだと思う
OBBは面積が小さくなるように、オブジェクトごとの軸を適切に置き換えたやつ
こっちは計算はなんか難しげ

290 :282:2010/12/25(土) 00:06:52
>>286 このたびは、色々と誤解を招いたみたいで

291 :デフォルトの名無しさん:2010/12/25(土) 00:08:14
>>287
進行方向に移動しているわけだから AABB だとむしろわかるんじゃない?
ひょっとして45度の完全斜めを貫くベクトルの場合 どの「面」とあたるかのこと言ってるのかな?


292 :デフォルトの名無しさん:2010/12/25(土) 00:14:47
もともとそういう話だろ
どの面に当たるかは進行方向と重なったときの位置関係の両方の情報がないと分からん

293 :デフォルトの名無しさん:2010/12/25(土) 00:23:56
45度の場合は実装依存だよ
たとえば右上の進行方向ベクトルとした場合
片方の箱に右上の頂点が 相手側に内包されてるAABBなわけだから

 ・上面が衝突したことにするか
 ・右面が衝突したことにするか

は 先にどっちを調べるかで結果が変わるから実装依存だよ
これについては 正解はなく どっちにするかはお好きな方でOKじゃない?


294 :デフォルトの名無しさん:2010/12/25(土) 00:30:11
たとえ30度でも、
右にあたるか上にあたるかは位置関係がわからないと無理、って話じゃないの

295 :デフォルトの名無しさん:2010/12/25(土) 00:30:47
>>293
斜め45度ってのは速度のベクトルのことか?
だとしたら斜め45度で箱の上に着地したら側面にぶつかるか箱の上に乗るかは実装依存なのか?
それとも頂点と頂点がぴったしぶつかる感じの事を言ってるのか?

296 :デフォルトの名無しさん:2010/12/25(土) 00:31:59
位置も、重心の位置だけじゃダメで頂点の位置も分からんとイカンね

297 :デフォルトの名無しさん:2010/12/25(土) 00:32:36
お前らクリスマスの夜に何やってんの?

298 :デフォルトの名無しさん:2010/12/25(土) 00:33:31
クリスマスの夜だからさ

299 :デフォルトの名無しさん:2010/12/25(土) 00:42:56
293だけどさ

>>295
>だとしたら斜め45度で箱の上に着地したら側面にぶつかるか箱の上に乗るかは実装依存なのか?
そうだね 実装次第だと思うよ

頂点同士がぴったりぶつかる話じゃないよ
着地ということだから右下45度の速度ベクトルとする
AABBは ちょうど正方形を考えて欲しい

 *----*
 l A l
 l *-+--*
 *--+-* l
   l B l
   *----*

これを見て右下の速度ベクトルである場合 どっちの面に衝突していると言える?
Aのチェック時に右の面を先に見る場合は そこで打ち切ら右面にヒットとなる
が 下面を先にチェックするとした面にヒットしたことになる
つまり どっちもヒットしている45の場合は 答えが出せない
だから好きなように実装依存だと言ってるんだよ?

300 :デフォルトの名無しさん:2010/12/25(土) 00:51:45
ごめん 図がズレちゃったよ
正方形の角同士が同じだけ互いに内包する図のつもりなんだ

301 :デフォルトの名無しさん:2010/12/25(土) 00:53:29
 *----*
 l A  l
 l  *-+--*
 *--+-*  l
    l  B l
    *----*

302 :デフォルトの名無しさん:2010/12/25(土) 00:57:34
>正方形の角同士が同じだけ互いに内包する
そういう意味なら実装依存だろうね

303 :デフォルトの名無しさん:2010/12/25(土) 08:50:42
瞬間移動というものがあってだな

304 :デフォルトの名無しさん:2010/12/25(土) 11:51:06
上記の場合は ぴったり45度で同じ量だけ衝突した場合の本当にレアなケースなんだ
まぁ 往々にしてそういうレアケースがバグとなっちゃうんだけどさ

でも普段は進行ベクトルと衝突処理でマリオのは実装できる
ただ方向を処理する際にどっちが優先されるか または両方あたりにするかは実装次第ってこと


305 :デフォルトの名無しさん:2010/12/25(土) 21:47:43
XNAの新規プロジェクトを立ち上げて、
IsFixedTimeStep = true; と書いただけでCPU負荷が100%になって、
フレームレートも54〜55辺りになるんですが、誰か原因わかりますか?
ちなみにfalseに設定するとCPU負荷は0〜1%で安定して60FPS出ます。

以下環境。
CPU: Core i3 540 / GPU: オンチップのやつ / RAM: 4GB
Windows7 64bit / XNA 3.1

306 :デフォルトの名無しさん:2010/12/25(土) 21:53:09
CPU100%云々は分からないけど、
ディスプレイのリフレッシュレートは60ある?
その数字でFPSは頭打ちになるよ。
IsFixedTimeStep = trueだとね。

307 :デフォルトの名無しさん:2010/12/25(土) 23:06:44
>>306
リフレッシュレートは59Hzでした。

ググってみたらこんな記事出てきたがさっぱり。
http://forums.create.msdn.com/forums/p/42632/279792.aspx

308 :デフォルトの名無しさん:2010/12/26(日) 10:23:06
メタセコ・Keynoteのデータが簡単に読み込めるようになったみたい
ttp://blogs.msdn.com/b/ito/archive/2010/12/23/metasequoia-and-xna-part-4.aspx

309 :306:2010/12/26(日) 11:10:04
>>307
ごめん、ナナメ読みしてたw
SynchronizeWithVerticalRetrace = true
のつもりで言ってた。
結局、>>305の原因は分からなくてゴメン。

310 :249:2010/12/26(日) 18:47:35
>>308
やっぱり、メタセコ側のプラグインで再サンプリングしてる

なに考えてあんな返信したんだ

311 :デフォルトの名無しさん:2010/12/30(木) 21:40:00
XNA3.1でポリゴン1枚を
for (int i = 0; i < 1000; i++)
{
foreach (EffectPass pass in effect.CurrentTechnique.Passes)
{
pass.Begin();
graphics.GraphicsDevice.DrawUserIndexedPrimitives<VertexPositionNormalTexture>(
PrimitiveType.TriangleList, _data, 0, _data.Length, _indices, 0, 1);
pass.End();
}
}
って感じでかいたら、1000枚程度で
フレームレート落ちてきた。
Radeon4350でも1フレーム1000ポリゴンはないだろって思うのだが
この描き方だともんだいあるのか?

312 :デフォルトの名無しさん:2010/12/30(木) 22:52:21
まず、内部のforeachは何回まわっているのか?
あと1ポリゴンを1000回と1000ポリゴンを1回では全然違う。

313 :デフォルトの名無しさん:2010/12/30(木) 23:18:59
>>311
ハテナから頭の悪そうな子供のエントリを持ってきて
荒らすのは辞めなさい

314 :311:2010/12/31(金) 05:14:41
いや、やりたいことは2Dのマップチップのかわりに
テクスチャを貼った3Dの箱をたくさん並べて
それで床やら壁やらを表現したいのよ

で、プリミティブで作ったブロックをたくさん並べると
非常に重たい処理になるようで困ってるのよ

>>312
foreach (EffectPass pass in effect.CurrentTechnique.Passes)
の部分は1回しか回ってない。
試しに頂点バッファに1000ポリゴン分のデータを突っ込んで
graphics.GraphicsDevice.DrawUserIndexedPrimitives<VertexPositionNormalTexture>(
PrimitiveType.TriangleList, _data, 0, _data.Length, _indices, 0, 1000);
とか書いてループを1回にしても結果は変わらなかった。
なので、プリミティブを描画するときの負荷は1ポリゴンを1000回と
1000ポリゴンを1回では等価だと考えられる。

ただModelMeshつかっての描画の場合は10000ポリゴンぐらい平気で書いてるので
書き方で回避できるもんだいじゃないかな?と考えてる。

315 :デフォルトの名無しさん:2010/12/31(金) 07:46:19
エスパーすると
画面スクロール時に50回ぐらいnewとディスポーズしてる

とにかく書いてるような事は
ねーよ

316 :311:2010/12/31(金) 08:25:59
>>315
確かにnewは何回かしてるけど50回もしとらんしなぁ
Draw部分全文
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
// TODO: Add your drawing code here
graphics.GraphicsDevice.VertexDeclaration = new VertexDeclaration(
graphics.GraphicsDevice, VertexPositionNormalTexture.VertexElements);
Matrix world = Matrix.Identity;
Matrix view = Matrix.CreateLookAt(new Vector3(0, 0, 5), new Vector3(0, 0, 0), Vector3.Up);
Matrix projection = Matrix.CreatePerspectiveFieldOfView(
MathHelper.ToRadians(45), graphics.GraphicsDevice.Viewport.AspectRatio, 0.1f, 1000.0f);
effect.World = world;
effect.View = view;
effect.Projection = projection;
effect.Begin();
for (int i = 0; i < 1; i++)
{
foreach (EffectPass pass in effect.CurrentTechnique.Passes)
{
pass.Begin();
graphics.GraphicsDevice.DrawUserIndexedPrimitives<VertexPositionNormalTexture>(
PrimitiveType.TriangleList, _data, 0, _data.Length, _indices, 0, 1000);
pass.End();
}
}
effect.End();
FPS(gameTime);
base.Draw(gameTime);
}
FPSはフレームレート表示用の関数、_dataはVertexPositionNormalTextureで3頂点のみ、_indices,はInitialize()で{0,1,2,0,1,2,,,,,}って感じで3000個の配列が入ってる

317 :デフォルトの名無しさん:2010/12/31(金) 13:20:31
xnaってマイクロソフト見捨てずに、続けると思います?


318 :デフォルトの名無しさん:2010/12/31(金) 14:27:03
んな大したもんじゃないだろ
今必要なら使えばいい
所詮DirectXのラッパーなんだから他の環境に移行したとしても無駄にはならん

319 :デフォルトの名無しさん:2010/12/31(金) 15:06:17
>>314
DrawPrimitivesとpass.Begin(end)は重い処理なので、
1000回もやれば、当然重たくなる。
→DrawPrimitivesはできるだけ少なく。
  pass.Begin(end)もできるだけまとめて、変更回数を少なくする。

>>316
3頂点しか用意してないということは、1000回同じ場所にポリゴンを描画してるわけですよね?
つまり、Zテストがまったく機能しない状態。
ポリゴンの描画サイズはどのぐらいですか?
フィルレートが足りなくて処理落ちしてるのでは?
→Z値(優先順位)を個別に設定して、手前から描画する。

この辺を気をつければ、そこそこの速度が出るはず。

初心者なので、見当はずれなこといってたらごめん。


320 :デフォルトの名無しさん:2010/12/31(金) 15:18:26
>>317
近い将来、Kinect対応するみたいですね。

私の予想(希望)では、
XBOX360の次世代機にも対応するんではないかと思ってます。
GS6.0とかになってそうですが。

321 :311:2010/12/31(金) 17:13:22
>>319
乱数で頂点を生成してDrawUserPrimitives使って描画する方法では
DrawUserIndexedPrimitivesで3頂点を繰り返し書く方法とは違い
1000ポリゴンでフレームレートが落ちることが無く表示できることがわかりました。
この方法なら8000ポリゴンぐらいまで書くだけなら書けるみたい。
確認に、3頂点を繰り返し格納したものをDrawUserPrimitivesで表示すると
やはり1000ポリゴンぐらいから重たくなってきた。

ってことは、重複した頂点(またはポリゴン)の処理が非常に重たいという結論で良いんだろうか?


322 :デフォルトの名無しさん:2010/12/31(金) 17:28:43
VertexBufferを使ってみてはどうだろう?

323 :319:2010/12/31(金) 18:14:27
>>321
頂点が重複すること自体は、頂点が減るのでバーテックスシェーダー的にはよい事です。
(メモリと速度面で。)
ただ今回の場合は、完全に一致したポリゴンなので、Zテストがうまく機能しなくなるので、
重たくなるということです。
ポリゴン自体が重なる(完全に同じ座標ではない)ことは、Zテストが有効になるので、
速度面で有利になります。

また同一座標のポリゴン表示は、乱数で決めたときと違って、カリングできないので、
速度面で不利です。(通常、カリングすればポリゴン数は約半分になる。)



324 :311:2011/01/01(土) 15:26:26
>>322
乱数で作った頂点なら、VertexBufferを使ったほうが少しだけ早くなった
1フレームあたりで8000→9000ポリゴンになったぐらい
同一ポリゴンの描画と変わらず。

>>323
完全一致はまずいということで、理解しました。
言われてみれば、カリングしてるのですから実際に描画されてるポリゴンは半分の
4000ポリゴンぐらいになるわけか

これで、作成方針がだいたい見えてきました、ありがとうございます。
立方体を1個づつ描画するのではなく、描画するためのバッファを作り
そこに溜め込んでから描画することにします。
しかし、バッファを毎フレーム更新するとなると、こんどはCPU負荷との戦いになりそう

325 :デフォルトの名無しさん:2011/01/04(火) 16:25:13
>XNA Framework HiDef プロファイルに対応する Direct3D デバイスが見つかりませんでした
うぜえええ
デフォルトの設定をReachにするにはどうしたらいいんですかね

326 :デフォルトの名無しさん:2011/01/05(水) 15:50:00
http://create.msdn.com/ja-JP/education/catalog/sample/chasecamera
このサンプルデータの自機の弾の出し方がわかる方、
教えて頂ければ助かります。

327 :デフォルトの名無しさん:2011/01/05(水) 16:10:23
弾なんかでねーよ

328 :デフォルトの名無しさん:2011/01/05(水) 16:18:53
プレイヤーをカメラが追跡するサンプルです

329 :デフォルトの名無しさん:2011/01/05(水) 16:24:03
エスパーすると、
「このサンプルを弾が撃てるように改造してください」
という意味なんだろうけど、
こんな書き方する奴に日本語で説明して通じると思う者はいない。

330 :326:2011/01/05(水) 16:35:49
>>327-329
あなたたちは黙っていればいいんです。

このサンプルを改造して、弾を出るようにした人が
どうしたかを教えてくれればいいのです。
私がこんなにしたいだから、2chでも少しはいるハズです。

331 :デフォルトの名無しさん:2011/01/05(水) 16:38:30
黙ってろとかw

332 :デフォルトの名無しさん:2011/01/05(水) 17:10:04
弾を出るようにしました。次の方どうぞ


333 :デフォルトの名無しさん:2011/01/05(水) 17:25:15
326>>
弾の実装をしようしましたが、うまいこといきません。


334 :デフォルトの名無しさん:2011/01/05(水) 18:57:25
実装しようとしたなら、それを見せるといい。コード見せれば教えてくれる可能性は高くなる。

とりあえず簡単な実装方法書いとこう。

まず、弾のクラスをつくる。

んで、Update で
プレイヤーがボタン押したら玉を出す。(List<弾> tamas にいれる。)

Draw では弾があったら描画したらいいので
foreach (var tama in tamas)
DrawTama(tama);

といった感じになるだろ。
DrawTama は自分で弾のモデル作るか、ポイントスプライトって言うのをやるかのどっちかだろう。
簡単なのは、そのサンプルの飛行機のモデルを小さくして、それを弾として使えばいい。カミカゼカミカゼ

あとは、ステージの外に出た弾を削除するだけ。

335 :デフォルトの名無しさん:2011/01/05(水) 19:13:29
カミカゼカミカゼwww

336 :デフォルトの名無しさん:2011/01/05(水) 19:22:47
実際ここは新人のやる気を失わせて潰すスレだからなぁ・・・

337 :デフォルトの名無しさん:2011/01/05(水) 19:27:09
むしろXNA自体が…
C#もゲーム製作の基礎もわからないのにXNAなんかに手を出すのが間違ってる

338 :デフォルトの名無しさん:2011/01/05(水) 19:29:30
>>336
確かに。
ここで聞くよりも公式のフォーラムとかで聞いた方が良いね

339 :デフォルトの名無しさん:2011/01/05(水) 19:33:27
それも海外のな

340 :デフォルトの名無しさん:2011/01/05(水) 19:35:02
XNAはゲームの作り方を知ってる人が使うにはいいものなのに
何故かゲームの作り方を知らない初心者が簡単にゲームが作れると勘違いしてるのがなあ

341 :デフォルトの名無しさん:2011/01/05(水) 19:42:40
XNAに限らずどこでも>>326みたいな質問の仕方したら
「もっと具体的にお願いします」としか答えられないよ…
まずどこまで言葉が通じるのか分からん
tama.Position += tama.Velocity * dt; の意味が分からないレベルなのか
それともそういうのは分かってて弾の描画が分からないのか

342 :デフォルトの名無しさん:2011/01/05(水) 20:11:22
>>341
そういうのはわかってて基本的な構文は覚えたけど、
DirectXは触った事ありませんとか射影変換とか初耳な人はXNA向いてますか?

343 :デフォルトの名無しさん:2011/01/05(水) 20:13:45
あなたがもし、目標を目指すなら、
向き不向きなどは心配すべきことではありません。

やるかやらないか。
本当は分かっているはずです。

344 :デフォルトの名無しさん:2011/01/05(水) 22:25:15
AppHubのフォーラム遅ー
マイクロソフトってWEB開発経験無い奴しか居ないんじゃねーか?

345 :デフォルトの名無しさん:2011/01/05(水) 22:30:04
おめーが就職して担当になってみろばーかばーか

346 :デフォルトの名無しさん:2011/01/05(水) 23:10:07
ひげねこの回答読むと大概気分が悪くなる

347 :デフォルトの名無しさん:2011/01/06(木) 01:10:39
ttp://files.or.tl/up3748.png

nearclip=1.0f
farclip=10000.0f
でも消えちゃうんだけだけど、どうしたら良いんですかね

348 :デフォルトの名無しさん:2011/01/07(金) 07:39:56
unityに対するXNAのいいとこって何さ?

また、XNAの欠点を補える方法ってある?
欠点1.ポーティング: XNAtouch、SilverSPrite、ExEn(計画段階)くらい?
欠点2・GUIでの対話的開発: これは…なんかいいのない?

349 :デフォルトの名無しさん:2011/01/07(金) 08:08:00
出た時期の問題もあるしなぁ。
あと、unityの方をあんまり詳しく知らないのでなんとも。

350 :デフォルトの名無しさん:2011/01/08(土) 15:01:46
>>347
裏面だけ描画してない?

351 :デフォルトの名無しさん:2011/01/08(土) 21:13:30
>>350
その件に関してはスプライトバッチ描画後に、
毎回Zバッファをデフォルト設定したらなんとか正常に

1000離れると消えちゃうのは、
フィールド変数で保持してるはずだった数値をローカルで宣言してたからで、
それも解消しました

が、今度は一部モデルでテクスチャが正常に表示できないんです
正直BasicEffectも良くわかってなくて何がおかしいのか
ttp://files.or.tl/up3776.png

352 :デフォルトの名無しさん:2011/01/09(日) 08:34:43
>>351
何使ってるのかようわからんけど
1つのモデルに複数のマテリアルがある場合にうまくいってないとかじゃね?

353 :デフォルトの名無しさん:2011/01/11(火) 09:53:49
ソフトウェア音源を使えるようにならんかなぁ・・・

354 :デフォルトの名無しさん:2011/01/11(火) 20:55:04
SpriteBatch.Draw()で20倍に拡大した場合に輪郭がぼけてしまうのですが、
ドットの境界をクッキリと表示させるにはどうすればいいですか?

spriteBatch.GraphicsDevice.SamplerStates[0].MagFilter = TextureFilter.Point;
spriteBatch.GraphicsDevice.RenderState.MultiSampleAntiAlias = false;
GraphicsDeviceManager.PreferMultiSampling = false;

辺りは試してみたのですが、全滅でした。

355 :デフォルトの名無しさん:2011/01/12(水) 00:40:46
>>354
SpriteBatchは使わないので、はっきり分からないけど、
GraphicsDevice.SamplerStates[0] = SamplerState.PointWrap;
はどう?
もしくはシェーダー内で上書きしてるとか?

356 :デフォルトの名無しさん:2011/01/12(水) 09:08:35
XNAのModelオブジェクトをファイルにエクスポートする実装を
ご存じないでしょうか。形式はFBXでもLWOでも3DSでもなんでもいいんですが。

357 :デフォルトの名無しさん:2011/01/12(水) 09:23:25
http://create.msdn.com/ja-JP/education/catalog/?devarea=6
このサンプルのHeightMapInfoContent.csに記述されている
public override string GetRuntimeType(TargetPlatform targetPlatform)
{
  return "HeightmapCollision.HeightMapInfo, " +
"HeightmapCollision, Version=1.0.0.0, Culture=neutral";
}
public override string GetRuntimeReader(TargetPlatform targetPlatform)
{
  return "HeightmapCollision.HeightMapInfoReader, " +
"HeightmapCollision, Version=1.0.0.0, Culture=neutral";
}
この部分は具体的に何を指定しているのでしょうか?
サンプルを現在制作中の3Dゲームに組み込もうとしているのですが
そのままだと「ContentTypeReader Game1.HeightMapInfoReader, Game1,Version=1.0.0.0, Culture=neutral が見つかりません。」というエラーが出てしまいます……

358 :デフォルトの名無しさん:2011/01/12(水) 16:50:43
毎フレームアップデートするときGameComponentを継承しないといけませんか?
クラス作るのはめんどいのでUpdateだけをデリゲートで渡す方法とかありあせんか?

359 :デフォルトの名無しさん:2011/01/12(水) 17:10:30
>>358
こんなのを予めつくっといて、Gameクラスにインスタンス持たせといて、
あとはお好きなように

sealed class DelegateCollection : GameComponent
{
 public readonly List<Action<GameTime>> delegateList = new List<Action<GameTime>>();
 public DelegateCollection(Game game) : base(game){}
 public override void Update(GameTime gameTime)
 {
  delegateList.ForEach(a => a(gameTime));
  base.Update(gameTime);
 }
}

360 :デフォルトの名無しさん:2011/01/12(水) 17:34:05
>>355
だめぽいですね

spriteBatch.GraphicsDevice.RenderState.MultiSampleAntiAlias = false;
spriteBatch.GraphicsDevice.RenderState.PointSpriteEnable = false;
spriteBatch.GraphicsDevice.SamplerStates[0].MagFilter = TextureFilter.Point;
spriteBatch.GraphicsDevice.SamplerStates[0].MinFilter = TextureFilter.Point;
spriteBatch.GraphicsDevice.SamplerStates[0].MipFilter = TextureFilter.Point;
spriteBatch.GraphicsDevice.SamplerStates[0].AddressU = TextureAddressMode.Wrap;
spriteBatch.GraphicsDevice.SamplerStates[0].AddressV = TextureAddressMode.Wrap;
spriteBatch.GraphicsDevice.SamplerStates[0].AddressW = TextureAddressMode.Wrap;
spriteBatch.Draw(...)

までやってみましたが、変わらずでした。
あ、言い忘れましたがXNA3.1です。

361 :デフォルトの名無しさん:2011/01/12(水) 18:26:47
>>359
ありがとうございます。
やっぱ、デフォルトではないんですね。
使わせてもらいます

362 :デフォルトの名無しさん:2011/01/20(木) 23:26:20
XNAのAPIリファレンスのような本
(網羅的な内容の本)
を探してます。
英語でも構わないので教えてください。

363 :デフォルトの名無しさん:2011/01/21(金) 11:32:34
>>362
MSDN

364 :デフォルトの名無しさん:2011/01/21(金) 21:37:37
モスドンて何?

365 :デフォルトの名無しさん:2011/01/21(金) 21:44:32
来週のサザエさんは
 落とした財布はPorter
 メカゴジラVSモスドン
 の三本です

366 :デフォルトの名無しさん:2011/01/21(金) 21:52:45
2本しかないんだけど

367 :デフォルトの名無しさん:2011/01/21(金) 23:56:04
の三本です
があるじゃん

368 :デフォルトの名無しさん:2011/01/22(土) 07:45:54
やめろよ そういうボケ
ゆとりみたいで怖ぇーんだよ

369 :デフォルトの名無しさん:2011/01/22(土) 13:27:04
365と367は別人

370 :デフォルトの名無しさん:2011/01/22(土) 15:49:04
ゆとり二人にアスペが一人

371 :デフォルトの名無しさん:2011/01/28(金) 14:41:46
メインメソッドの「protected override void LoadContent()」内以外でコンテンツロードするにはどうすれば良いですか?
BGM/SE再生専用のクラスを用意して、音関連は全てその中で処理したいんですがContent.Loadが使えなくて……

372 :デフォルトの名無しさん:2011/01/28(金) 21:00:30
class AudioPlayer {
public void LoadContent(ContentManager contentManager) { ここで読み込む }
}
class MyGame : Game {
private AudioPlayer audioPlayer;
protected override void LoadContent() { audioPlayer.LoadContent(ContentManager); }
}
こんな感じで

373 :デフォルトの名無しさん:2011/01/30(日) 03:54:25
4.0 からは Content プロパティは ContentManager になったの ?

374 :デフォルトの名無しさん:2011/01/30(日) 17:33:40
今からゲーム作るなら
DirectXよりXNAの方がいいのかな?

375 :デフォルトの名無しさん:2011/01/30(日) 17:40:01
DirectXの基本的な部分押さえておかないと難しいんちゃうか

376 :デフォルトの名無しさん:2011/01/30(日) 18:59:43
C++&DirectXのサンプル読めなきゃXNAは厳しい

377 :デフォルトの名無しさん:2011/01/31(月) 03:34:55
XNA の方がいいとは言えない。インストールが面倒だし。
だが、開発者の負担はぐっと下がると思う。IntelliSense きくし、おおよそのフレームワークが整ってる。
まあ、C++ or DirectX が不快に感じるなら XNA 選ぶといいと思う。

378 :デフォルトの名無しさん:2011/01/31(月) 09:49:04
「いい」って目的によって変わると思うが

特に配るつもりもなく初心者が軽く楽しんでみるなら言語違うがGLScene
C#使いたいならXNA
本気でやるならC++でDirectX
がいいんじゃないかね

379 :デフォルトの名無しさん:2011/01/31(月) 10:38:56
C++がわからないからXNA使うんではなくてC#が使いたいから使うもんだよな
C++,DirectXよりはずっと使いやすいけど勉強するときの難易度自体は大差ないと思う

380 :デフォルトの名無しさん:2011/02/01(火) 17:58:35
XBLIGにリリースするだけの目的だから学びやすさとかすぐれてるかとかまったく考えたことない

381 :デフォルトの名無しさん:2011/02/02(水) 13:51:28
なぜかいろいろな用途で使いたくなるよなあ、C#

382 :デフォルトの名無しさん:2011/02/02(水) 15:24:13
C#というかVisualC#がな
異常に使いやすい完璧なIDE

383 :デフォルトの名無しさん:2011/02/02(水) 16:40:43
最近Delphiから移行してきたけどC#はなかなかよい
コンパイルが遅いのとデザイナが微妙かなって以外は正統進化のように感じてる

384 :デフォルトの名無しさん:2011/02/02(水) 18:23:54
C#のコンパイルは十分はやいだろ、C++なんてどうすんだよ。

385 :デフォルトの名無しさん:2011/02/02(水) 18:25:43
Delphiに比べたらってことだろ
使ったことないけど爆速っていうし

386 :デフォルトの名無しさん:2011/02/02(水) 19:09:39
パーサーはPascalベースなDelphi速そう。
でも、C#ってぶっちゃけ常時バックグラウンドでコンパイルし続けてるからなぁ。
WPFみたいなXAMLからのコード生成後に改めてコンパイルしてるもの以外はコンパイル時間ほとんど感じないはずだけど。

387 :デフォルトの名無しさん:2011/02/02(水) 19:14:41
よくある誤解だけどXAMLはコード生成しないよ

388 :デフォルトの名無しさん:2011/02/02(水) 19:43:47
動的に読み込むコードを書かない限り
xaml->bamlへコンパイルするでしょ
コードビハインドでもa.g.cs/a.g.i.cs/a.g.vb/a.g.i.vbみたいなの出来るし
重いから、俺はデザイナは普段OFFにしてる

389 :デフォルトの名無しさん:2011/02/02(水) 19:47:26
BAMLはXAMLのデータをバイナリにしてるだけで、実行時にパースしてるのは一緒
デザイナが生成するコードは、リソースからXAML(BAML)を読み込んで
C#のフィールドにコントロールの参照を代入してるだけ

390 :デフォルトの名無しさん:2011/02/02(水) 22:02:58
XNA入門記事とか書籍でおすすめってありますか?
英語でもかまわないんですが。

391 :デフォルトの名無しさん:2011/02/02(水) 22:17:51
オライリーのやつがいいんじゃね?

392 :デフォルトの名無しさん:2011/02/02(水) 22:19:27
最近のオライリーはちょっと・・・

393 :デフォルトの名無しさん:2011/02/02(水) 22:26:34
BoundingBoxって軸に水平な箱しか作れないんでしょうか?
角度を付けて坂のようなオブジェクトを作りたいんですが・・・

394 :デフォルトの名無しさん:2011/02/02(水) 22:30:39
>>389
いや、XAMLからの生成物はBAMLとC#/VBコード。
生成されたコードの方にはInitializeComponentメソッドとかが定義されてる。

395 :デフォルトの名無しさん:2011/02/03(木) 09:21:53
本なら独習C#のCS4.0対応版がちょっと前に出版されてた。
WEBなら@ITの記事とか未確認飛行CのC#のコーナーがいい感じだと思った。



396 :デフォルトの名無しさん:2011/02/03(木) 12:07:47
例えばAボタンを押しっぱなしの状態から、Aボタンを離した瞬間に判定を出力したいのですが、
ソースコードはどんな風に記述すればいいのでしょうか?

397 :デフォルトの名無しさん:2011/02/03(木) 13:13:39

  bool old;
  bool posedge;
  bool negedge;

  void update()
  {

    bool now = (key.Buttons.A == ButtonState.Pressed)? 1 : 0;
    


    old = now;
  }


398 :デフォルトの名無しさん:2011/02/03(木) 13:17:35
途中で送信しちゃった orz


  bool old;
  bool posedge;
  bool negedge;

  void update()
  {
    posedge = negedge = 0;
    bool now = (key.Buttons.A == ButtonState.Pressed)? 1 : 0;
    
    posedge = ~old & now;
    negedge = ~now & old;

    old = now;
  }


みたいにトリガーを作る?

399 :デフォルトの名無しさん:2011/02/03(木) 14:14:09
class Input {
public bool IsKeyUp(GameKey key) { return prev[key].IsPressed && !curr[key].IsPresssed; } // キーが離された
public bool IsKeyDown(GameKey key) { return !prev[key].IsPressed && curr[key].IsPressed; } // キーが押された
public bool IsKeyPressed(GameKey key) { return curr[key].IsPressed; } // キーが押されている
public void Update() { prev = curr; curr = 現在の全てのキーの状態; } // 毎フレーム呼ぶ
}
こういうクラスを作っといて、他のクラスからは直接XNAの入力クラスを触らないようにすると便利
コードはあくまでイメージね

400 :デフォルトの名無しさん:2011/02/03(木) 14:39:07
最初からトリガー準備してくれればいいのにね

401 :デフォルトの名無しさん:2011/02/03(木) 16:07:07
どうもありがとうございます。参考にしてやってみます

402 :デフォルトの名無しさん:2011/02/03(木) 21:42:03
OICの学生さんですか?

403 :デフォルトの名無しさん:2011/02/06(日) 15:36:17
すみません。
VC#Expressで、デバッグ時に、
ブレークポイント一覧ウィンドウは
表示されてますか?
どうしても出てこないんです。
よろしくお願いします

404 :デフォルトの名無しさん:2011/02/06(日) 15:44:11
解決しました
で な い の ね
ttp://msdn.microsoft.com/ja-jp/library/02ckd1z7.aspx

405 :デフォルトの名無しさん:2011/02/06(日) 17:48:45
まぁExpressだし仕方ないさ

406 :デフォルトの名無しさん:2011/02/11(金) 21:43:35
3Dモデル描画→WMV動画再生→動画をテクスチャに貼り付けて描画、って感じで処理させてるんだけど
モデルが動画の裏に隠れちゃって画面に表示されない。文字は普通に描画できるのに・・・・・・
動画に3Dモデルを重ねて描画する方法を教えてくれないか?

407 :406:2011/02/11(金) 21:49:10
すまん
書き込んだ直後に自己解決してしまった。
モデル描画処理の中に動画再生処理入れとけばいいのなw

408 :デフォルトの名無しさん:2011/02/13(日) 14:36:37
3Dモデルを傾かせたい(上を見上げた感じにしたい)んですが
キャラクターの向いている方向と傾く方向を合わせるにはどうすれば良いでしょうか?
Matrix.CreateRotationX(UpRoatation)だと軸に沿った方向にしか傾かせられないし・・・・・・

409 :デフォルトの名無しさん:2011/02/13(日) 15:36:37
Matrix.CreateFromAxisAngle(モデルの右方向ベクトル, 回転量);

410 :デフォルトの名無しさん:2011/02/13(日) 17:28:54
コントローラのボタンがどれも押されてないことを取得するのはどうすればよいでしょうか
1個1個確認するのみ?

411 :デフォルトの名無しさん:2011/02/13(日) 19:00:24
>>409
助かりました、ありがとうございます

412 :デフォルトの名無しさん:2011/02/14(月) 01:49:19
>>410
そう
でも効率悪いので、
独自の入力管理を作って、
必要な情報は1フレームに1回だけ
取得するようにして、
ゲーム中は管理後の変数だけを
調べるようにしたほうがいい。

413 :デフォルトの名無しさん:2011/02/14(月) 03:41:13
この程度の入力管理は標準であってもよさそうなもんなのにな

・新しく押された
・連打

414 :デフォルトの名無しさん:2011/02/14(月) 08:36:21
この程度さえ出来ないでXNAやるとかアホすぐる

415 :デフォルトの名無しさん:2011/02/14(月) 09:54:49
じゃあお前Vector3使うの禁止な

416 :デフォルトの名無しさん:2011/02/14(月) 12:55:19
このスレってやけに>>414みたいな初心者馬鹿にするやつ湧いてくるな

417 :デフォルトの名無しさん:2011/02/14(月) 12:59:27
愛のムチに見えなくも無い。

そして>>415よw おまいのその返しはなんだw
なんかしらんがツボったw

418 :デフォルトの名無しさん:2011/02/14(月) 13:43:50
ウィンドウが最前面にないときは処理をスキップしたいのですがどうすればよいですか

419 :デフォルトの名無しさん:2011/02/14(月) 14:11:33
FormのActivateとDeactivateイベントをハンドルして、現在の状態フラグを更新する。
Game使ってる場合も同じじゃないかな。

420 :デフォルトの名無しさん:2011/02/19(土) 00:11:25
XNAってXNAクリエーターズクラブとかに出さずに
単純にPC配布だけなら内容がエロでも大丈夫ですかね?
教えてエロい人

421 :デフォルトの名無しさん:2011/02/19(土) 00:17:43
公式のFAQも読めないの?

422 :デフォルトの名無しさん:2011/02/19(土) 00:27:12
おk行ってくる

423 :デフォルトの名無しさん:2011/02/19(土) 12:29:27
XNAって意外と実行環境難しいよね
確認用のダイアログを使うと開発環境入れないと動かなかったり

424 :デフォルトの名無しさん:2011/02/20(日) 17:57:40.97
これ使うとスキニングとかもすぐできる?

425 :デフォルトの名無しさん:2011/02/20(日) 18:09:57.55
いや、その辺の手間はDirectX直とかわらん

426 :デフォルトの名無しさん:2011/02/25(金) 16:11:57.36
GraphicsDeviceについてなんですけど、
メインループでレンダリングしてる最中に、
サブスレッドを立ててそこからテクスチャやらモデル等のGraphicsDeviceが必要なオブジェクトの生成をしても問題ないのかな?
多分問題なく動いてはいるけど参考資料がなくて正しい動作なのか判らない。

427 :デフォルトの名無しさん:2011/02/25(金) 20:50:53.58
>>426
スレッドってあのスレッド?
擬似タスク(笑)じゃなくて?
だったらスレッド1つ呼ぶたびに1ms使うからぶっちゃけ超遅いでしょ?
俺の知識が足りないだけならスマンコ

428 :デフォルトの名無しさん:2011/02/26(土) 13:51:11.32
XPでもつかえるXNA?ってないんですか?

429 :デフォルトの名無しさん:2011/02/26(土) 14:11:32.50
え?

430 :デフォルトの名無しさん:2011/02/26(土) 18:29:20.26
>>428
XNA Game Studio 4.0のスタンドアロン版

431 :デフォルトの名無しさん:2011/02/26(土) 19:27:05.87
3.1でもいいし2.0でもいいし


432 :デフォルトの名無しさん:2011/02/26(土) 19:32:59.24
ありがとうありがよう

433 :デフォルトの名無しさん:2011/02/28(月) 09:23:00.25
>>427
なんで擬似タスクなんか出てくるのかと思ったけどもしかして360版のSystem.Threading.ThreadってWindows版と違うのかね。
私が聞きたいのはWindows版のGraphicsDeviceがスレッドセーフなのかって事だったんだけど、
Texture,VertexBuffer,IndexBufferみたいなGraphicsDeviceをコンストラクタ引数に取るオブジェクトをバックグラウンドで生成したいんですよ。

434 :デフォルトの名無しさん:2011/02/28(月) 12:24:43.07
自分は激しく点滅してうまく行かなかったけど、
そんなに面倒な事じゃないから、試してみては?

435 :426:2011/02/28(月) 15:14:20.64
既に実装済みで多分問題なく動いてるんですよ。
ただWindows版でのグラフィックスリソースの非同期生成について言及された記事が見つからなかったので、
妥当な実装なのか聞きたかった次第です。

436 :デフォルトの名無しさん:2011/02/28(月) 22:47:43.80
公式で聞いてみれば

437 :デフォルトの名無しさん:2011/03/03(木) 22:58:22.59
>>435
じゃあ、いいんじゃね?
ただ、スレッドはウィンドウズ的に1ms使うから処理重たくなったら覚悟じゃないですか
いーんなら別にいいです

438 :デフォルトの名無しさん:2011/03/04(金) 09:01:09.62
何でそんなスレッド毛嫌いしてるの
箱庭ゲーとかでロード画面挟まずにロードするにはスレッド使うしかないじゃん?
他に何か有効な手段でもあるの?

439 :デフォルトの名無しさん:2011/03/04(金) 10:15:53.38
XNAでも非同期I/Oは使えるはずだが。
まあ非同期I/O使ってコードがぐちゃぐちゃするよりはスレッドを使う方が
コードの見通しは良くなっていいけど。

440 :デフォルトの名無しさん:2011/03/04(金) 10:57:38.07
>>438
Updateのところでロード処理を進める

441 :デフォルトの名無しさん:2011/03/04(金) 11:36:42.98
ファイルの非同期入力まではいいけど、読み終わったファイルをUpdate内で解析してデバイスに転送とかしてたらそれなりにコストかかるじゃないですか
それにStreamの非同期IOはデリゲートのBeginInvoke使ってるからどの道スレッドじゃないの

442 :デフォルトの名無しさん:2011/03/31(木) 14:43:25.30
ContentProcessor<,>の派生クラスから出力型を特定できないでしょうか?
ModelProcessorなら出力型はModelみたいな。

443 :デフォルトの名無しさん:2011/04/03(日) 06:00:23.19
3Dで作った、壁や床に弾痕や血のりのテクスチャを重ねて書きたいのだが
どういった方法がメジャーなんだろうか?

思いついたのが、描画を行うテクスチャをいちど別画面に全て書き出して
このときにアルファ合成で弾痕がついたテクスチャを作成する
そのご、実際のテクスチャとして割り当てるって方式なんだが
他になんかいい方法とかないかな?

444 :デフォルトの名無しさん:2011/04/04(月) 09:26:55.93
壁や床ならその上に銃痕などのテクスチャを張った板ポリを描くだけで良い。

445 :デフォルトの名無しさん:2011/04/17(日) 00:23:36.95
GameComponent.Initializeの呼び出されるタイミングが今ひとつ謎です……
Game.Components.Add()されたときに呼ばれるのかなと
思ってたが、ブレークかけても全く引っかからないし。
MSDN見たらGame.Initialize()されたときに呼ばれるとか……
ということは、後からGameComponentクラスがAddされたときは
Initializeは明示的に呼ばないと絶対に呼ばれない、ってことなのかな?

446 :デフォルトの名無しさん:2011/04/17(日) 12:31:16.72
そうですね

447 :デフォルトの名無しさん:2011/04/23(土) 14:11:39.46
2010いつ頃だよ日本語

448 :デフォルトの名無しさん:2011/04/29(金) 13:40:49.30
そう考えたら龍神録の人は作り易い、分かりやすいをモットーに良く作ったと思うよw
一緒に仕事をしたいのはこういうタイプ

449 :デフォルトの名無しさん:2011/04/29(金) 13:42:50.30
誤爆

450 :デフォルトの名無しさん:2011/05/01(日) 15:17:13.82
現在、私は3Dの勉強中です。

以下のような問題に悩まされています。
もしよろしければ、どなたかご助言を頂けませんでしょうか。

@問題:
「異なるクラスのオブジェクト間で、深度バッファが上手く効かない」

A今扱っているコードについて:
私の手元にあったコードをビルドして実行すると、「立方体状の3次元空間が表示され、その中を5つの球体クラスのオブジェクトが跳ね回る様子」をユーザは見ることができます。
このコードを改造して、立方体状の空間の中央に、三角錐クラスのオブジェクトを配置しました。
この改造後のコードをビルドして実行すると、「立方体状の空間の中央に三角錐のオブジェクトがそびえ立ち、その周囲を球体のオブジェクトが飛び回る様子」をユーザは見ることができます。

B現在の見え方:
しかし、深度バッファが上手く効いていないのか、三角錐オブジェクトが、他のオブジェクトよりも常に手前側に表示されてしまいます。
5つの球体間では、深度バッファは有効なように見えます。しかし、各球体と三角錐間では、深度バッファは無効なように見えます。

拙い文章ですみません。
どうぞよろしくお願いします。




451 :デフォルトの名無しさん:2011/05/01(日) 15:57:49.27
>>450
深度バッファへの書き込みがうまくいってないか、
深度テストがうまくいってないか....。
もしかすると、Z値の計算がうまくいっていないのかもしれないし....。

文章だけで判断するのは限界があります。

それほど大きくないプロジェクトなら、
プロジェクト一式をアップしてみるのはどうでしょう?

原因を調査できるかもしれません。

452 :デフォルトの名無しさん:2011/05/01(日) 16:46:12.41
>>451
ありがとうございます。

プロジェクト一式は、以下からダウンロードできます。
http://www.dotup.org/uploda/www.dotup.org1589990.zip.html

passは"depth"です

よろしくお願いします

453 :451:2011/05/01(日) 17:09:47.28
>>452
ダウンロードしてみたところ、
デバッグ用クラス一式とPlayerクラスがないようです。

ソースを見てみたのですが、
spriteBatch()を使用されてますね。
これを使うと、3Dのレンダリングステートをいじるので問題が出てきます。

いったんspriteBatch()をはずすか、
3D関係の描画前に、
ZテストやZライトを明示的にONする命令を入れていみてください。

454 :451:2011/05/01(日) 17:22:07.30
>>453
ごめんなさい。
XBOX360でビルドした為だったようです。

Windowsではちゃんと動きました。

これからデバッグしてみます。

455 :451:2011/05/01(日) 17:34:24.48
>>452
viewマトリックスとprojectionマトリックスが、
球体と三角錐とで違うことが問題です。

player.Draw(cameraPosition, cameraTarget, cameraVector);
を削除して、
player.Draw(view, projection);
で、球体と同じviewとprojectionマトリックスを渡すようにしてください。

Playerクラスには、
viewとprojectionを受け取れるDraw()メソッドを追加して適切に変更してください。

こちらの環境では、前後関係がちゃんと描画できるようになりました。



456 :451:2011/05/01(日) 17:39:54.22
Playerクラスの
aspectRatio, 1.0f, 1000.0f);

aspectRatio, 0.01f, 100.0f);
として、
球体のprojectionと完全に同じすることで、直ることも確認しました。

ただ、>>455のように、明示的に同じviewとprojectionを使うように
したほうが、プログラムとしてはいいですね。


457 :デフォルトの名無しさん:2011/05/01(日) 17:56:04.66
>>456

ありがとうございます。返信が遅くてすみません

>viewマトリックスとprojectionマトリックスが、球体と三角錐とで違うことが問題です。
>球体のprojectionと完全に同じすることで、直ることも確認しました。
2種類の解決方法の間で共通しているのは、球体と三角錐間のprojectionの共有のように見えます。
これはつまり、projectionが各オブジェクト間で共有されていることが重要であると認識して良いのでしょうか?
それとも、viewの共有も重要と考えるべきでしょうか?

--------------------------------------------------
どうも、私は基礎的な知識がかなり足りないようです。
もっと勉強しなければいけませんね。

ご助言ありがとうございます。


458 :451:2011/05/01(日) 18:03:18.64
>>457
projectionを共通化することが重要です。
そうしないと、Zバッファに書き込まれる値の意味が変わってくるからです。

またviewマトリックスも共通にすべきです。(今回の場合は同じ値が入っているようですが。)
同じカメラを使っているという意味で。

がんばってくださいませ。

459 :デフォルトの名無しさん:2011/05/01(日) 18:04:13.63
>>456

Player.Drawへの引数として,Sphere.Drawに渡すのと同じprojectionを渡すように修正しました。

また、Player.csファイルのDrawメソッド内の2重ループで

  effect.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0f),aspectRatio, 1.0f, 1000.0f);

と記述していた部分をコメントアウトして

  effect.Projection = projection; // Player.Drawが引数として受け取るprojection

という記述に書き換えました。

その結果、正しい前後関係で三角錐と球体が描画されました。
このことから、オブジェクト間でのprojectionの共有が必要であるということが推測できます。

しかし、なぜprojectionの共有が必要なのかはわかりません。
もう少し詳しく調べてみます。

この問題で2日程悩んでいたので、大変助かりました。
誠にありがとうございました。




460 :デフォルトの名無しさん:2011/05/01(日) 18:04:55.01
うわあ!レス書いてるあいだにレスが返って来てた///

精進します…

461 :萌主(元株主w) 忍法帖【Lv=40,xxxPT】 【東電 78.0 %】 :2011/05/01(日) 18:06:44.42
>>459
私も初心者なのでよくわからないですが、
物体をみるカメラは1つなので、
そのカメラへの値(viewとprojection)は1つにするべきなんだと思います。

462 :451:2011/05/01(日) 18:07:10.24
>>460
www

463 :451:2011/05/01(日) 18:10:48.05
>>461
うはwww
間違って、別スレの名前登録してしまった。
451です。
みなかったことにしてwww

464 :451:2011/05/01(日) 18:18:04.83
正体がばれついでに....。

現在、「Rushing Punch<ラッシングパンチ>」というゲームを
ピアレビューに出したのですが、まだ目立たない位置にある
ためか、レビューしてもらえません。

あと2週間ぐらいして、上の方の方が消えてくるとレビューして
いただけると思うのですが...。

もしお時間いただけるようなら、ピアレビューしていただけると
幸いです。

微妙にスレ違い申し訳ないです。

465 :デフォルトの名無しさん:2011/05/01(日) 18:18:06.05
>>461
なるほど。なんとなくわかってきました
「使うカメラはいつもひとつ!」ですね

466 :デフォルトの名無しさん:2011/05/01(日) 18:19:20.14
>>464
興味あります。みてみますね

467 :451:2011/05/01(日) 18:19:52.30
>>465
そういうことになります。

また画面を2分割や4分割にして、
3Dの対戦ゲームなどを作るときは
カメラが2つや4つになるので、
その数分のviewとprojectionのセットを作ることになります。

468 :デフォルトの名無しさん:2011/05/02(月) 13:21:05.11
厳密にはXNAと関係ないんですが、他に聞けるところがないので質問
させてください。
複数の変換行列を結合したいとき、単純に掛けるだけでいいんでしょうか?
それとも、SRTに分解してそれぞれの要素を結合させて変換行列に
するのがただしいのでしょうか?

469 :デフォルトの名無しさん:2011/05/02(月) 13:40:26.63
"結合"を定義してくれ
最終的に変換が適用される時に
v'=A*B*C*v
のように使われるなら、T=A*B*Cとしておいて
v'=T*v
もちろんこうしても構わない

470 :デフォルトの名無しさん:2011/05/06(金) 11:00:27.95
XNA4.0のサンプルプロジェクトって無いのかな、
勝手に変換はしてくれるんだけどさ・・・
なんとなく

471 :デフォルトの名無しさん:2011/05/06(金) 11:52:40.55
App Hubのサンプルはだいたい4.0になってるけど

472 :470:2011/05/06(金) 17:24:04.32
あぁ、ありがと
ラーニングで絞ってサンプルを探してたんで
Performance Measuring Sample
をいろいろいじってみます〜

473 :デフォルトの名無しさん:2011/05/07(土) 23:27:41.28
GraphicsDeviceっていっぱい必要になるところがあるけど
あれって基本的に全部同じインスタンスなのかな?
EffectやTexture2Dに設定されたGraphicsDeviceは
使われることはないでおk?

474 :デフォルトの名無しさん:2011/05/08(日) 13:26:00.19
デバッグでインスタンス探っていけば分かるでしょ

475 :uy:2011/05/15(日) 01:58:13.94
プログラマはゴミグラマ

476 :デフォルトの名無しさん:2011/05/17(火) 18:56:24.96
Controllerってクラスもともとどっかにあったりする?

477 :デフォルトの名無しさん:2011/05/18(水) 14:01:18.43
これ、日本語表示めんどいな。
昭和のシステムかw

478 :デフォルトの名無しさん:2011/05/19(木) 09:07:43.32
ゲームコンソールではこれが普通なんだけどね

479 :デフォルトの名無しさん:2011/05/19(木) 19:52:41.64
texture2Dを複製したいのですが、
どういった方法でやるのがよいでしょうか?

480 :デフォルトの名無しさん:2011/05/20(金) 06:29:13.26
>>479
LoadContent()の中でforで一括配置するんではなく
一旦static変数に格納して逐次そこから受け渡しするとかそういうこと?

staticクラスじゃなくてもクラス名を引数にして渡すことも出来るみたいだけど
まだ初心者だからよく判らん

481 :デフォルトの名無しさん:2011/05/20(金) 09:38:23.57
エスパーすると

var texture1 = Content.Load<Texture2D>("hoge");
var texture2 = new Texture2D(texture1.GraphicsDevice, texture1.Width, texture1.Height, texture1.LevelOfDetail, texture1.TextureUsage, texture1.Format);
byte[] buffer = new byte[texture1.Width * texture1.Height * 4];
texture1.GetData(buffer);
texture2.SetData(buffer);

こういうことだと思うが。
流石に>>480みたいなレベルでレスするのは相手に悪いんでないの。

482 :デフォルトの名無しさん:2011/05/20(金) 11:04:37.93
質問した者じゃないけど、俺も同じトコ悩んだ
そうやって中身をコピーするのかなるほど。

483 :デフォルトの名無しさん:2011/05/20(金) 12:11:51.71
>>481
ありがとうございます。そういうことです。ただ、それだと、
4byte/pixelのやつしか対応できなくて例外のでるテクスチャがありました。
テクスチャをレンダリングターゲットとして書きこむというのが
常套手段のようですが、マルチスレッドで複製しようとすると
メインループの描画処理とバッティングしてしまうので
今イチ使い勝手が悪くて。何が最善なのかなと書き込んだ次第です。

484 :デフォルトの名無しさん:2011/05/20(金) 12:23:14.30
>>483
例外出るのはtexture1.TextureFormatでswitchして、
new byte[texture1.Width * texture1.Height * 4];
の4を変更すればいいはず。
別のターゲットにレンダリングするって言うと複製と言うよりは複写って感じがするな。

485 :デフォルトの名無しさん:2011/05/20(金) 12:45:50.17
>>484
ありがとうございます。おっしゃるとおりです。
switchするのが最善かもしれません。ただ、TextureFormatがやたらと
たくさんあるのと私がそれらのバイト数の区別できないのが問題だw

486 :デフォルトの名無しさん:2011/05/20(金) 13:13:37.70
MSDNに各フォーマットのビット数書いてあるけど必要なフォーマットだけ用意しておけば十分だと思う

487 :デフォルトの名無しさん:2011/05/20(金) 19:45:16.95
曲芸レベルか

488 :デフォルトの名無しさん:2011/05/21(土) 13:55:14.86
colladaのインポータで物理演算のパラメータを読み込めるやつってあるかな?

489 :デフォルトの名無しさん:2011/05/21(土) 14:46:54.25
何のエンジンだか書かずに、ただの馬鹿かと。
XMLなんだから好きに読み込めよ。

490 :デフォルトの名無しさん:2011/05/21(土) 15:39:25.19
独り学芸会がしたいんじゃないかと思われ

491 :デフォルトの名無しさん:2011/05/21(土) 15:50:57.23
独り学芸会kwsk

492 :デフォルトの名無しさん:2011/05/21(土) 17:52:05.02
こんな凄い組み方見つけたんだがお前ら知ってっかーみたいな
で自分で聞いて自分で説明

493 :デフォルトの名無しさん:2011/05/21(土) 18:12:09.98
>>489
colladaの物理はエンジンに依存しないのでは?

494 :デフォルトの名無しさん:2011/05/21(土) 18:16:43.09
>>492
わかったようなわからんようなw
とりあえずトンスル

495 :デフォルトの名無しさん:2011/05/21(土) 22:16:40.00
XNAはPC(非XBOX)で使うなら商用利用でもライセンスフリーだっけ?


496 :デフォルトの名無しさん:2011/05/21(土) 22:23:29.98
そだよ

497 :デフォルトの名無しさん:2011/05/23(月) 08:57:34.95
うそだよ

498 :デフォルトの名無しさん:2011/05/23(月) 14:06:22.89
ホントだよ

499 :デフォルトの名無しさん:2011/05/23(月) 19:29:02.34
マホトーンだよ

500 :デフォルトの名無しさん:2011/05/23(月) 22:40:51.85
おーさるさーんだよー♪

501 :デフォルトの名無しさん:2011/05/24(火) 20:02:58.10
ContentのXMLファイルってどこに何書きゃ良いの?

<XnaContent>
<!-- TODO: replace this Asset with your own XML asset data. -->
<Asset Type="System.String">111
<map>222<map>
</Asset>
</XnaContent>

エラー 1 There was an error while deserializing intermediate XML.
'Element' は、XmlNodeType としては無効です。 行 5、位置 4。

502 :デフォルトの名無しさん:2011/05/24(火) 23:33:36.57
Visual studio 2010とGamestudio4.0を導入していれば
プロジェクトの開始に
360あるいはWindowsを選べば
もうそれはXNAで、C#も書けるしDirectxも書けるってことでいいんですか?

素人過ぎる質問してスイマセン

503 :デフォルトの名無しさん:2011/05/24(火) 23:39:36.66
素人はアクションゲームツクールをどうぞ

504 :デフォルトの名無しさん:2011/05/25(水) 00:17:09.67
>>502
C# とDirectX同列に並べんなw

XNA = 内部的にDirectXを使ってて、C# で書けるゲーム開発フレームワーク
パフォーマンスチューニングの必要はあるものの、ほぼX箱360とWindowsのクロス開発可能
Game Studio 4.0入れたら出て来るプロジェクトテンプレートはXNAのもの。

505 :デフォルトの名無しさん:2011/05/25(水) 08:10:51.13
XNAよりDXライブラリのほうがいいよ

506 :デフォルトの名無しさん:2011/05/25(水) 09:07:51.92
C#で3D扱えるものでSlimDXっていうのがありますが、XNAより作り易いですか?

507 :デフォルトの名無しさん:2011/05/25(水) 10:00:52.60
兄より優れた弟なぞ存在しない

508 :デフォルトの名無しさん:2011/05/25(水) 15:05:37.49
セーブをContent内のファイルに対してやるにはどうすりゃいいの?

ロードと違ってセーブはユーザーストレージを使わなきゃだめ?

509 :デフォルトの名無しさん:2011/05/25(水) 19:27:06.80
やっぱなんか書籍ないと素人には無理だな・・
Webで手に入るサンプルなんかはGS3.0ベースで4.0じゃ使えない関数?でてくるし

510 :デフォルトの名無しさん:2011/05/25(水) 22:00:19.04
ボンバーマンのような2Dゲーを作ってます
xmlファイルにマップを書いて読み込みたいんですが、

例えば

00000
01010
00000
01010

みたいにそれぞれ改行混じると文字コードの関係で不都合ありそうだし
きれいなやり方ってないですか?

511 :デフォルトの名無しさん:2011/05/25(水) 22:06:03.85
String str = game1.Content.Load<String>("Games/Maps/Test/XMLFile1");
char[] trimchar = new char[] { '\n'};
String[] map = str.Split(trimchar);
for(int i = 0; i < 30; i++){
    map[i] = map[i].Replace(" ", "");
}

適当に書いたらこんな感じになりました\(^q^)/

512 :デフォルトの名無しさん:2011/05/27(金) 21:22:15.60
>>511
いいんじゃないの?

そういえば俺はASのhitTestみたいな機能が無いかどうか知りたかったんだった
Flashではブラシで図形描いてそれをムービークリップにし、
任意の座標とhitTestしてマップ作ったけど
XNAではそういうの出来ないのかね

513 :デフォルトの名無しさん:2011/05/28(土) 10:07:40.92
ライブラリって1つのゲームで何個も使っていいもんなの?

514 :デフォルトの名無しさん:2011/05/28(土) 11:00:12.55
遠慮しないで好きなだけ使っていいんだよ

515 :デフォルトの名無しさん:2011/05/28(土) 13:42:52.38
ttp://msdn.microsoft.com/ja-jp/library/ff604979.aspx

↓にFoods[]を付け足したい時、xmlファイルにはどう書けばいいの?

namespace MyDataTypes
{
public class PetData
{
public string Name;
public string Species;
public float Weight;
public int Age;

    public int[] Foods;
}
}

516 :デフォルトの名無しさん:2011/05/28(土) 17:20:50.77
>>515
馬鹿杉。
悪いことは言わないから、もう少し学習力をつけないと、この先マジでどうにもならんぞ?

517 :デフォルトの名無しさん:2011/05/28(土) 17:29:47.82
>>516が答えられない馬鹿なのかただの低学歴なのかは知らんが、とりあえず

namespace MyDataTypes
{
public class PetData
{
public string Name;
public string Species;
public float Weight;
public int Age;

public int[] Foods = new int[2];
}
}

とでもしとけば

<Foods>
<Item>1</Item>
<Item>2</Item>
</Foods>

で動くよ

518 :デフォルトの名無しさん:2011/05/28(土) 17:36:26.00
>>517
馬鹿乙

519 :デフォルトの名無しさん:2011/05/28(土) 17:39:54.81
どっちかっつーと低学歴の可能性のが高くないか?

520 :デフォルトの名無しさん:2011/05/28(土) 19:09:03.25
>>517
第三者だけど
C#内で配列に1行で1度に代入するみたいなことを
XMLでは出来ないの?

521 :デフォルトの名無しさん:2011/05/29(日) 18:14:42.83
Windows用ゲームでXNA流行らないのなんでだろうと思いながら勉強してたけど、XBOXコントローラでしか操作できないのな…

522 :デフォルトの名無しさん:2011/05/29(日) 18:47:12.01
Windows限定でいいなら、使えるように作ればいいだけ

523 :デフォルトの名無しさん:2011/05/29(日) 18:50:40.34
どんな勉強してたのか凄く興味ある

524 :デフォルトの名無しさん:2011/05/29(日) 20:09:39.65
キーボード使えばいい

525 :デフォルトの名無しさん:2011/05/31(火) 11:05:31.83
Win限定なら普通にAPIも呼べるんだから何でも好きなの使えばいいよ

526 :デフォルトの名無しさん:2011/05/31(火) 14:36:21.40
すれ違いなのは、重々承知で、ここに質問デス

麻雀で役(ターツ)が重複(衝突)するのは

リャンペーコー or 七トイツ
三連コー or 順子*3
亜両面 でのタンキ or 両面 (符が変わるのと、平和が付くか付かないか)

の3種類でよいでしょうか?

527 :デフォルトの名無しさん:2011/05/31(火) 22:14:50.80
そう

528 :デフォルトの名無しさん:2011/06/02(木) 18:54:04.12
セットアッププロジェクトで必須コンポーネント一覧にXNAがないんですけど、どうすればいいんですか?

529 :デフォルトの名無しさん:2011/06/02(木) 19:17:00.19
良く見たらありました

530 :デフォルトの名無しさん:2011/06/02(木) 20:11:21.41
でもそれはおいなりさんでした

531 :デフォルトの名無しさん:2011/06/07(火) 18:50:45.87
残念

532 :デフォルトの名無しさん:2011/06/07(火) 21:50:46.65
えっ
当たりじゃね?

533 :デフォルトの名無しさん:2011/06/12(日) 11:25:40.96
Point と Vector2 の違いって何?
どう使い分けるの?

534 :デフォルトの名無しさん:2011/06/13(月) 17:41:58.31
違いはintかfloatか、じゃないか?

535 :デフォルトの名無しさん:2011/06/16(木) 22:26:06.17
スプライトのインスタンスごとにインスタンスの数だけ同じ画像をロードさせた場合、
全部のインスタンスが自分専用の画像をロードして保持しちゃうの?

536 :デフォルトの名無しさん:2011/06/21(火) 05:28:22.12
PointはVectorが0。

537 :デフォルトの名無しさん:2011/06/23(木) 01:08:12.13
>>535
記憶が間違ってなければContentManagerが同じリソースの多重ロードを抑制するようになってるはず

538 :デフォルトの名無しさん:2011/06/23(木) 09:47:41.99
ContentManager優秀だな

Androidアプリを作る気がしない、こっち楽すぎて

539 :デフォルトの名無しさん:2011/06/23(木) 13:03:18.60
そうかな?androidはunity使えるぞ?

540 :デフォルトの名無しさん:2011/06/23(木) 21:23:20.49
普通の四角形を描画するのはどうすりゃいいの?

DrawRectangle(x,y,height,width,color)

みたいなメソッドがあったら教えてくれ

541 :デフォルトの名無しさん:2011/06/24(金) 09:04:00.36
SpriteBatchで1ピクセルのテクスチャを好きな矩形にレンダリングすればいい

542 :デフォルトの名無しさん:2011/06/24(金) 09:28:28.89
あーそれ系の話でspriteBatchの処理回数を減らす云々で高速化ってネタ結構見るけど、
4.0以降もこのやり方で高速化ってできるのか?
確か非推奨みたいな感じじゃなかったっけ?

543 :デフォルトの名無しさん:2011/06/24(金) 13:38:22.83
3角形を2枚使えば□になるよ!

544 :デフォルトの名無しさん:2011/06/26(日) 00:22:42.61
>>527
亀レスwww
ありがとう

545 :デフォルトの名無しさん:2011/06/29(水) 01:39:13.80
XNAはオワコンなの?
x86開発に詳しい知人が、XNAは専用コントローラ(XBOX360のやつ)しか使えないからオワコンだお言っていた
時代はC++とDirectXだとのこと。

546 :デフォルトの名無しさん:2011/06/29(水) 01:50:33.21
まあ、PC 向けゲームに XNA 使う人はいないわね。
そのコントローラーの問題から。

日本だと箱の出荷台数的問題で、Xboxインディーズゲームもあんまり流行ってないし。
もっぱら、WP7 開発用。

Silverlight 5で、Xnaのかなり基礎的な部分だけだけど、3D描画にXNA互換のAPI使えるようになるから、
ブラウザー向け3Dアプリでは使えるかも。

547 :デフォルトの名無しさん:2011/06/29(水) 09:06:26.10
入力周りだけMDX使えばいいだけだろ
でもMDXで360コンにアクセスすると、左右のトリガーで合わせて一本の軸として検出されるんだよなあ
XNAではどういう風に軸を分離してるんだろう

548 :デフォルトの名無しさん:2011/06/29(水) 09:34:10.28
あれ?C++とDirectXでも専用コントローラしか使えないんじゃないの?

549 :デフォルトの名無しさん:2011/06/29(水) 09:56:50.62
XNAはオワコン。SlimDXがハジコン。

550 :デフォルトの名無しさん:2011/06/29(水) 15:08:03.78
OpenGLやunityが強すぎ。DirectX自体オワコンだよ。

551 :デフォルトの名無しさん:2011/06/29(水) 15:24:07.15
いいなー
俺もDirectXマスターしたい

552 :デフォルトの名無しさん:2011/06/29(水) 17:59:33.39
アルファベットの大文字小文字と数字と記号の一部のみの画像を作っちゃってtexture2Dに読み込ませる場合
どうやってそれを処理して描画させればいいんだ?


draw(string moziretu){

for(int i = 0; i < moziretu.length ; i++)
   {
     int tempchar = i番目の文字 -  '0'
     tempchar の値ごとにdrawRectangle 調整して描画だよん
}
}

こんな感じか?

553 :デフォルトの名無しさん:2011/06/29(水) 20:20:10.16
299 :名前は開発中のものです。:2011/06/29(水) 20:13:33.27 ID:VKmBltao
XBIG市場で一山当てるなんて幻想は今すぐ捨てたほうがいい。
円高だし、二重課税されるし、80、240、400という意味不明な価格設定の縛り。
タグとかストレージのお作法を全部自前でやらなきゃいけないし
ピアレビューというコミュニティという名のめんどくさいシステム。
Xbox360でゲーム開発すること自体が好きで趣味でやるならいいけど、開発費とか考えるなら全然割に合わない。
多くのXBIG開発者はそれに気付いているはずだ。
よほど面白いゲームを作らないとこの市場では一山当てられない。それも誰もが購入に至るようなとても面白いゲーム。しかもインディーズゲーム。
上手い絵師に頼んでエロCG集を1000円で販売するほうが、XBIGでの売上の十倍は売れる。
それこそ全レスする暇があるならバイトでもサラリーマンプログラマでもやってたほうがいい。主よ。この市場は最初から腐ってる。

554 :天使 ◆uL5esZLBSE :2011/07/01(金) 20:14:06.26
Rubyバカにしてる子ってさ
変数に$ついてる言語触ってるって事だよね

いちいちSHIFT+4キーおして $ 打ちまくってる感触はどう?

555 :デフォルトの名無しさん:2011/07/01(金) 22:04:06.70
どこのスレの誤爆?

556 :デフォルトの名無しさん:2011/07/01(金) 22:42:36.71
$ってお金の意味だからいんじゃね

557 :デフォルトの名無しさん:2011/07/03(日) 09:29:49.40
Rubyは$と無縁なの?

558 :デフォルトの名無しさん:2011/07/03(日) 12:21:36.23
ルビーは宝石です

559 :デフォルトの名無しさん:2011/07/09(土) 14:20:34.32
XNA4.0対応の書籍ってどんなのがでてます?
お勧めとかあったら教えていただきたい

560 :デフォルトの名無しさん:2011/07/16(土) 17:43:14.85
EINかITIN取得すれば二重課税はないのに・・・

561 :デフォルトの名無しさん:2011/07/18(月) 00:23:24.37
XNB周りで質問なんだが、コンパイル時ではなく、実行時にContentWriterでxnbファイルを書き出したい場合どうすれば良い?

562 :デフォルトの名無しさん:2011/07/18(月) 21:14:08.71
XNA楽でいいな 2Dゲーム作って遊んでます
コントローラ持ってなかったら作ってなかったけど

563 :561:2011/07/19(火) 17:17:23.19
>>561 だが
せめて方法があるかないかだけでも教えてくれ。
VS無しではxnbへの書き出しは出来ないのか? マップエディターみたいなツールは作れないと言うことなのか?

564 :デフォルトの名無しさん:2011/07/19(火) 17:22:25.72
えっと、PC前提でいいの?

565 :デフォルトの名無しさん:2011/07/19(火) 17:36:17.52
>>564
一応、PCで動かすことしか考えてないけど
カスタムパイプラインとか書いて、諸々を一つのxnbにまとめてあるから
実行時でもxnbじゃないテクスチャが読み込めるよ とかそう言うのだったら間に合ってる(なんか言い方がきついけど悪気はない)


566 :デフォルトの名無しさん:2011/07/19(火) 17:50:00.98
普通に
Microsoft.Xna.Framework.Content.Pipeline
参照追加して呼べばいいよ

567 :デフォルトの名無しさん:2011/07/19(火) 17:50:53.34
やってることはシリアライズと変わらん

568 :デフォルトの名無しさん:2011/07/19(火) 18:07:26.06
Microsoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent
これか! ずっとTask以外のネームスペースのやつ見てた。
ContentWriterはコンストラクタがないし…という感じで

569 :デフォルトの名無しさん:2011/07/23(土) 21:43:28.80
ttp://blog.esuteru.com/archives/3895234.html
まじかよくそばこう

売る箱を持ってなかった

570 :デフォルトの名無しさん:2011/07/23(土) 21:45:51.03
なんだゲハブログか

571 :561-568:2011/07/24(日) 05:22:40.08
結局のところ、単純にオブジェクトを好きなプロセッサ・ライタを通してxnbとして書き込むのは無理っぽいです。

VS無しでxnbを作る一番簡単な方法は、プロジェクトファイルを作成してMSBuildを実行して
間接的にMicrosoft.Xna.Framework.Content.Pipline.Task.BuildContentを使うことです。
もしくはMicrosoft.Build以下にMSBuildとおなじ物があるのでそれを使う。

BuildContentは簡単に生成することはできますが、下準備とかメンドクサイし、
いろいろ整えてExecute()しても、設定してないLoggerに書き込もうとするし、そのLoggerは直接指定出来ないし
まあ、とにかくうまくいきません。

572 :デフォルトの名無しさん:2011/07/24(日) 16:29:10.13
>>571
ちなみにそれ再配布できないよね・・・。

あとさ、XNA4って3.1に比べて微妙に改悪じゃね?
不便なことが増えるばっかり。よくなったところはどこよ?

573 :デフォルトの名無しさん:2011/07/24(日) 16:45:25.93
>>571
自前で.xnb書き出せばよし

574 :デフォルトの名無しさん:2011/07/24(日) 17:42:55.66
C++(DirectX+HLSL)で書かれたパーティクルのサンプルを、
C#(XNA3.1)に移植しようとしたのですが、真っ黒になり何も表示されません。

移植元 http://kagaminer.in/~rin/smoke.zip
移植先 http://kagaminer.in/~rin/xnatest.zip

どこか間違っているところとかあるのでしょうか?

575 :デフォルトの名無しさん:2011/07/24(日) 17:58:50.01
間違ってるから表示されないんだろ、アホか。
ソース晒して他人にデバッグさせようとか、図々しいにもほどがある。

576 :デフォルトの名無しさん:2011/07/24(日) 18:02:53.52
ソース晒せって言ったり、するなっていったり困るね。まったく。

577 :デフォルトの名無しさん:2011/07/24(日) 21:00:15.14
>>574
これって、
http://ime.nu/kagaminer.in/
の中の人が質問してるの?
こんなんもデバッグできない馬鹿が作ってるの?
アホなの? 氏ぬの?

578 :デフォルトの名無しさん:2011/07/24(日) 21:01:44.30
http://kagaminer.in/
貼り間違えた orz

579 :デフォルトの名無しさん:2011/07/24(日) 21:17:15.09
>>575-576
プログラムは思った通りではなく、書いた通りに動くとは
重々理解しているつもりですが、どこがおかしいのやら……

>>577
はい、そうです。何かまずいところでもあったでしょうか?
ちなみに、ページ中の画面写真はイメージです。

580 :デフォルトの名無しさん:2011/07/25(月) 01:16:50.59
>>579
自己レスです。
WVPに渡すMatrixの数値が食い違うことに気づき、色々調べたところ、
XNAは右手系というやつで計算方法が違うということを知りました。
XNA側に無理やりC++で出した行列の値を設定したところ、表示できました。

そこで、質問を変えますが、このHLSLを、右手系という計算方法でも
正しく表示できるように対応させるにはどうすればよいでしょうか?

581 :デフォルトの名無しさん:2011/07/25(月) 02:03:54.79
>>580
右手系と左手系を分かってるか?
その違いを理解すれば、ものすごく簡単な話しだぞ。
具体的には、軸を1本、符号反転するだけだ。

582 :デフォルトの名無しさん:2011/07/25(月) 02:16:20.84
>>581
下記をHLSLに追加することでできました。
もしかしたら厳密には間違っているのかもしれませんが、
ひとまずは移植元と同じ表示を再現できました。
ありがとうございます!!
float4x4 view = g_view;
float4x4 proj = g_proj;
view[0].x = -view[0].x;
view[0].z = -view[0].z;
view[2].x = -view[2].x;
view[2].z = -view[2].z;
view[3].z = -view[3].z;
proj[2].x = -proj[2].x;
proj[2].y = -proj[2].y;
proj[2].z = -proj[2].z;
proj[2].w = -proj[2].w;

583 :デフォルトの名無しさん:2011/07/25(月) 10:40:06.76
DebugとReleaseを切り替えるたびにカスタムプロセッサがリビルドかかるの、これどうにかならんの?
切り替えてビルドするたびにコンテンツが連動してリビルドされるから、10分ちょい待たされる。

584 :デフォルトの名無しさん:2011/07/25(月) 10:46:51.94
ソリューション構成のビルド対象とゲームプロジェクトの依存関係から
コンテンツのプロジェクトを外せない?

585 :デフォルトの名無しさん:2011/07/25(月) 11:10:59.86
>>584
あーそういうことか。
普段ビルド無効にしてカスタムプロセッサを弄った時だけ、
プロジェクト名指しで強制的にビルドさせてやればいいんだな。
サンクス

586 :デフォルトの名無しさん:2011/07/25(月) 20:42:01.47
フリーで使えるXNA用の
ライティング・シャドウイングのエンジンってないかな?

587 :デフォルトの名無しさん:2011/07/26(火) 00:02:06.64
CodePlex行けばいくらでもある

588 :デフォルトの名無しさん:2011/07/29(金) 11:14:09.89
XBOX360用の.ccgameの配布条件って昔と変わった?つか条件なくなった?
昔(XNA3.0出る前後の頃)はWeb上でのフリー配布に限るって
どこかに書いてあった気がするんだが、今ぐぐると全く出てこないんだ。

Windows用の同人ゲをCDで出す予定で、そこにXNAクリエイター向けの
オマケとして、XBOX360版の.ccgameを突っ込もうかなとか考えているんだが。

589 :デフォルトの名無しさん:2011/07/29(金) 14:06:28.57
さすが、考えてること同様、お粗末な頭だ。
配布するのはいいが、プレイするユーザーのこと考えてるか?

590 :デフォルトの名無しさん:2011/07/29(金) 14:33:04.50
ccgameはゲーム本体とは別にXNAクリエイター向けのおまけとして作ったものだから
プレイ対象者はMSに年99$上納してるヤシに限定しても特に悪くはないだろ、と思ってる。

591 :デフォルトの名無しさん:2011/07/29(金) 22:58:35.37
正確には公式で問い合わせたほうがいいけど、
インディーズで出してるこびとスタジオも昔から360用ccgame入りをコミケで売ってるからNE☆


592 :デフォルトの名無しさん:2011/07/29(金) 23:46:00.16
XNAクリエイター向けだったら
コンパイル済みのアセンブリとアセット配れば十分じゃないの

593 :デフォルトの名無しさん:2011/07/30(土) 08:53:52.71
XNA4で Effect.CompileEffectFromFile相当の処理をさせるために、
コマンドラインツールが配布されていた気がするのですが
見つけられません。ご存知でないでしょうk?

594 :デフォルトの名無しさん:2011/07/30(土) 12:13:51.46
自己解決しました。app hubのstock effect sampleです。

XNA4では、D3D10形式のシェーダファイルでないと読めないのでしょうか。
昔のシェーダファイルを使いまわしたいのですが、もしや解決策はない?

595 :デフォルトの名無しさん:2011/08/01(月) 16:36:53.11
XNAで作られたゲームを拡張して、ゲーム中に文字チャット機能入れたいと思うんですが、
文字入力とか漢字変換とか、どうやれば良いでしょうか?

596 :デフォルトの名無しさん:2011/08/01(月) 16:44:08.11
もう一度ググったらそれっぽいのが出てきました。
それ見て理解できなければ改めて質問します。

597 :デフォルトの名無しさん:2011/08/01(月) 16:47:16.01
聞くときは動作環境も一緒にね
Windowsとそれ以外とじゃ違うし

598 :デフォルトの名無しさん:2011/08/03(水) 08:15:48.68
あるモデルをアルファテストでピクセル抜いた上で
それ以外のピクセルを真っ黒に描画したい(マスクつくりたい)
ちなみにカスタムシェーダは使えない
なんかやり方ないかな?

599 :598:2011/08/03(水) 08:20:46.37
それとモデルはSkinnedModelで変形させたい
誰か助けてくださいませ

600 :デフォルトの名無しさん:2011/08/03(水) 11:28:16.74
>>598,599
オフスクリーン使え。
スキンメッシュなんざググれば(ry

601 :598:2011/08/03(水) 12:59:12.75
>>600
オフスクリーン≒レンダターゲット?ならTexture2D対象にやってるっす
問題はモデル真っ黒にしたいけどそれってピクセルシェーダでやらなきゃ
だけどSkinnedEffect使わなきゃだからカスタムシェーダ使えねえってこと
SkinnedEffect+AlphaTestはできんのかなーって?

602 :デフォルトの名無しさん:2011/08/03(水) 22:02:06.97
>>601
レンダーターゲットの使い方工夫しろよ、低脳

603 :デフォルトの名無しさん:2011/08/04(木) 01:51:30.42
XBOX360ではHLSLのPointScaleEnableとPointScale_A〜Cは使えないの?
Windowsではビルド通ったけどXBOX360では通らない
GraphicsDevice.RenderStateにあるかと思ったらないし

604 :デフォルトの名無しさん:2011/08/04(木) 11:18:30.02
環境さらすの忘れてた。
VS2008+XNA3.1です。

605 :デフォルトの名無しさん:2011/08/10(水) 00:50:22.71
XNAでスレッドを使って処理を分散しているサンプルとかないですか?
Update()のタイミングに合わせてスレッドを動かす方法が知りたいです。

606 :デフォルトの名無しさん:2011/08/11(木) 10:07:44.46
見たことないな。マルチスレッドは苦労の割になかなか速くならないし。
タスク並列がやりたいんだったら、.NET4+WinならParallel.Invokeが簡単。
それが使えないならThreadPoolで実行させてWaitHandleで待機する。
当たり判定のような特定のループが無茶苦茶重いんなら
タスク並列よりもそのループを並列化したほうがずっと楽で確実に速くなる。

607 :デフォルトの名無しさん:2011/08/11(木) 15:28:29.04
ひにけにでやってなかったっけ

608 :デフォルトの名無しさん:2011/08/11(木) 22:14:29.35
話題には出してたが、サンプルはなかった気がする

609 :デフォルトの名無しさん:2011/08/11(木) 22:27:52.78
データ並列の当たり判定とかどうなんだろう
とんでもなく数が多ければコア数倍に近づくだろうけど実際のゲームで速くなんのかな

610 :デフォルトの名無しさん:2011/08/12(金) 22:03:57.90
デフォルトで使えるspriteFontの類って著作権等の権利形態はどうなってるの?

611 :デフォルトの名無しさん:2011/08/12(金) 23:01:52.40
勝手に使ったらダメよ

612 :デフォルトの名無しさん:2011/08/13(土) 09:55:00.41
レンダーステートの変更はGPUに負担をかけると聞いたのですが、
device.BlendState = BlendState.NonPremultiplied;
のような命令の時点で負荷をかけてしまうのでしょうか?

613 :デフォルトの名無しさん:2011/08/17(水) 01:30:31.76
XBOX360でThreadPool使ってみたら恐ろしく重くなった
んで、ログを見ると
スレッド 0xf900001c はコード 0 (0x0) で終了しました。
みたいなのが毎フレーム出てくる

XBOX360のThreadPoolはThreadを本当にPoolしてるのか……?

614 :デフォルトの名無しさん:2011/08/17(水) 10:43:09.02
そういうもんだから管理は自分で

615 :デフォルトの名無しさん:2011/08/18(木) 10:20:26.51
車輪の再発明したら箱でもスレッド毎回作り直されることなくなったわw
>>614 サンクス

616 :デフォルトの名無しさん:2011/08/24(水) 09:08:11.88
sprite.Batchのカラーで悩んでいます。

sprite.BatchのDrawの第4パラメーターの色指定で
色を時間に応じて替えさせるために変数を代入したいのですが

new Color(120, 120, 120)

とするのと

int x;
x = 120;
new Color(x, 120, 120)

とで結果が違ってしまいます。nex Colorの中のxにとても大きな
数値となって入っているような感じです。int型を代入させようとしているのが
いけないのでしょうか。しかし()内は整数のようですし・・・もしint型が原因ならば
どのような型の変数を代入すればいいのでしょうか。

617 :デフォルトの名無しさん:2011/08/24(水) 15:21:12.37
byte

618 :デフォルトの名無しさん:2011/08/24(水) 15:55:17.32
3.1?
このへん4.0と変わってるからバージョン書いた方がいいよ

619 :デフォルトの名無しさん:2011/08/24(水) 20:32:32.62
>>617
どうもありがとうございます。byte型を入れてみたところ予定どうりの
色調整ができました!

>>618
アドバイスありがとうございます、これから気をつけます。
現在の手元のバージョンは3.1でした。
言われて調べてみたところ、どうやらインディーズは4.0での
提出のみとなるようですね。透明処理などの仕様も変わるとか・・・。
早速移行してみようと思います。

620 :デフォルトの名無しさん:2011/08/24(水) 23:37:53.58
VisualStudio2010をいれて、XNA4.0に移行してみました。
自動変換で書式の違いでエラーがいくつも出るのは覚悟していたのですが

・XACTで作ったサウンドファイルを読み込んでくれない。
 また、別の方法で音をならせることもできそうです。
・Contentを右クリックしてVisualStudio2010で画像を読み込みなおしても
「This file was compiled with wrong version of the XNA framework」
 とのエラー。

後者の原因がわかりません。Contentに生の画像ファイルを置いて2010で
読み込んでいるのに何でこのようなエラーが出るのかおしえていただけないでしょうか。

遠い道ながら完成の道は見えていたところだったので、嫌な汗が噴出してます。
ならば1からと新規作成を起動しようとしたらビデオカード不対応といわれて
ショック大きい・・・。どうかよろしくおねがいいたします。

621 :デフォルトの名無しさん:2011/08/25(木) 00:53:08.52
Hidefじゃなくて
Reachにしてみれば?


622 :デフォルトの名無しさん:2011/08/25(木) 11:11:12.12
>>621
ありがとうございました。おかげさまでビルドに成功しました。

昨晩は絶望したのですが、それで最初からはじめてコピーも使って
以前の状態にもどりつつあります。これは個人的な報告ですが
移行作業の参考になる人もいるかもしれないので。

XACTエラーは4.0のフォルダにあるものを使わなかったのが原因のようでした。

Contentは原因わかりませんが、バージョン上げても2008のタブもあった
事と関係あるのかも。プロジェクトが2008で作ったものを参照したがってた
のか・・・あまりよくわかりませんが最初から作ったので問題なくなりました。

テクスチャサイズの最大値が、2008では警告だったのにこっちはエラーに
なるんですね。つくり直しました。

623 :デフォルトの名無しさん:2011/08/25(木) 11:36:28.15
alpha.brend.modeを

spriteBatch.Begin
(SpriteSortMode.BackToFront, BlendState.NonPremultiplied);
にしました。

仕様変更の結果(?)
以前表示されていた背景が表示されなくなって不思議に思ったのですがどうやら
spriteBatch.Draw(BG115, new Vector2(0, 0), new Rectangle(posB, 0, 1240, 600), new Color(255, 255, 255)
, 0.0f, new Vector2(0, 0), 1.0f, SpriteEffects.None, 0.3f);
spriteBatch.Draw(BG115, new Vector2(0, 0), new Rectangle(posB - 1220, 0, 1200, 600), new Color(255, 255, 255)
, 0.0f, new Vector2(0, 0), 1.0f, SpriteEffects.None, 0.3f);
背景が同時1つしか表示できなくなってるようです。
勘違いだったらごめんなさい。

624 :デフォルトの名無しさん:2011/08/25(木) 14:11:59.47

ごめんなさい。
パラメーターの意味あいが変わって、表示優先度などがメチャクチャに
なっていただけみたいです。大間違いですみません。

625 :デフォルトの名無しさん:2011/08/29(月) 12:14:59.36
Cueを使用して効果音を鳴らせていますが
同フレームに同時にならすと音がその倍、大きくなってしまいます。
forループ内に音を出す命令を書いた場合や
複数のザコに攻撃が同時ヒットした場合のヒット音など。
何か良い解決策はないでしょうか?

626 :デフォルトの名無しさん:2011/08/29(月) 12:27:07.72
再生数に合わせて音量を落とすとか

627 :デフォルトの名無しさん:2011/08/29(月) 21:24:00.20
>>626
シチュエーションによって2人に・3人にと同時ヒット数がいろいろなので
その方法だと厳しいようです。

628 :デフォルトの名無しさん:2011/08/29(月) 22:18:13.55
そんなのロジックの問題でしょ
当たり判定してすぐに鳴らさないであとでまとめて鳴らすとかどうとでも

629 :デフォルトの名無しさん:2011/08/30(火) 16:50:52.20
>>628
同時再生で音が大きくなるのはプログラムで回避すべき問題なんですね。
了解しました。
音をならすシチュエーションで変数を動かして、その変数で一つの音を
鳴らすように工夫してみます。

回答ありがとうございました。

630 :デフォルトの名無しさん:2011/08/30(火) 17:27:50.69
>>629
つか、実際プロが作ったゲームをプレイしてみてその辺をどうしてるか参考にしてみては?

631 :デフォルトの名無しさん:2011/08/30(火) 22:16:50.23
大きくなってもいいじゃない

632 :デフォルトの名無しさん:2011/08/31(水) 11:07:00.68
>>630-631
あれから解決しました。
bool型でsoundplay変数を作って
音をならしたい時はそれぞれの場面でならすのでなくこの変数をtrueに。
if(bool soundplay == false)でならす条件を絞って
trueになったフレームにだけ音をならして3フレームでfalseにもどっと
その間は音が重ねてでないようにしました。

633 :デフォルトの名無しさん:2011/08/31(水) 17:10:52.89
SpriteFontってSpriteBatch.DrawString以外では使えんの?
たとえば自前でSpriteFontの描画ロジック積むとか

XNA3.1です

634 :デフォルトの名無しさん:2011/08/31(水) 23:04:48.73
四角のポリゴンにテクスチャを張ったのは出来たんですけど
透明色指定の方法教えてください

635 :デフォルトの名無しさん:2011/08/31(水) 23:20:43.56
透明色は過去の遺物
アルファチャンネル使う

636 :デフォルトの名無しさん:2011/09/01(木) 01:31:44.43
>>635
どうもです
アルファチャンネルを調べてみます

637 :デフォルトの名無しさん:2011/09/01(木) 02:28:29.82
XNAで不特定多数の漢字を表示することって不可能なのでしょうか?
方法を検索しても使う漢字全て調べて使えるようにするっていう方法しか見つからないのですが・・・

638 :デフォルトの名無しさん:2011/09/01(木) 04:37:28.18
>>637
JISコードの漢字の並び順は第一水準、第二水準と並んでいる(ボソ
もしくは、後で拡張出来るようにする予定でもなければ、セリフとかのリソースをスキャンしてxmlを生成するプログラムをくんでも良いし
(そしてそれをコンパイル時に実行するようにしても良いし)

ちなみに、今の時代、オンボでもなければビデオメモリは少なくても512MBはあるだろうから、
第一水準までのすべての漢字を取り込んだところで、気にするほどパフォーマンスは落ちないだろうよ。

639 :デフォルトの名無しさん:2011/09/01(木) 16:53:02.41
Windows限定でいいならP/InvokeやSystem.Drawing使って文字描画するのは難しくない
文字列のビットマップデータを取得したらテクスチャにSetDataで書き込むだけ

640 :デフォルトの名無しさん:2011/09/02(金) 10:44:16.68
celeron P4600の内蔵グラフィックでXNA動きますか?

641 :デフォルトの名無しさん:2011/09/02(金) 13:50:26.77
動く。
もっと古くても2005年以降のintelマザボならオンボードで動く。

642 :デフォルトの名無しさん:2011/09/05(月) 05:32:03.19
画像の端っこが、画像部分をはみ出して横に伸びてしまうんですが
この機能をオフにできませんか?
テクスチャの端に背景色を配置して対処してますが面倒です。

643 :デフォルトの名無しさん:2011/09/05(月) 10:56:03.89
状況がわからん、どんなふうになるの?

644 :デフォルトの名無しさん:2011/09/05(月) 20:22:01.27
>>643
Texture2Dで2Dドット絵なんですが
例えば25×25サイズのドット絵を描画するとき、この端っこに背景色以外のドットが
あると、右端にそのドットがある場合などは、その絵の右に
ビヨーンと右端の色を伸ばして塗りつぶしたふうになってしまいます。

645 :デフォルトの名無しさん:2011/09/06(火) 01:02:29.64
>>644
図解してくれよ

646 :デフォルトの名無しさん:2011/09/06(火) 01:42:08.43
テクスチャアドレッシングモードがクランプになってんじゃね?

647 :デフォルトの名無しさん:2011/09/06(火) 15:33:54.42
>>645
絵にしてみるとこんな感じです。
ttp://uploader.sakura.ne.jp/src/up56183.png

>>646
ありがとうございます。
検索してでてきたのは3Dのほうでしたが、どうもそれがらみのようです。

648 :デフォルトの名無しさん:2011/09/06(火) 18:59:23.45
すまん。 画像で笑ってしまった。

649 :デフォルトの名無しさん:2011/09/06(火) 21:26:37.81
もう消えてしまったので別のロダに再うpしました。
ttp://ichigo-up.com/cgi/up/qqq/nm41311.png.html

>>648
大丈夫。実際のゲーム画像ではありません。

650 :デフォルトの名無しさん:2011/09/06(火) 22:55:18.85
オラワクワクしてきたぞwwwww
この絵でゲーム出してwwwwwwwww

651 :デフォルトの名無しさん:2011/09/06(火) 23:08:26.50
100円なら迷わず買う

652 :デフォルトの名無しさん:2011/09/07(水) 01:26:31.22
そういう反応が欲しいわけじゃないだろ649はw

653 :デフォルトの名無しさん:2011/09/07(水) 01:39:54.42
ゴムゴムのワンピースのゲーム作れ

654 :デフォルトの名無しさん:2011/09/19(月) 16:17:08.52
SpriteBatchだけだとUVスクロールってできない?

655 :デフォルトの名無しさん:2011/09/19(月) 17:47:06.57
表示結果
http://ichigo-up.com/cgi/up/qqq/nm41730.png.html

コード(Draw()の中身)
GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.FrontToBack, SaveStateMode.None);
GraphicsDevice.SamplerStates[0].AddressU = TextureAddressMode.Wrap;
GraphicsDevice.SamplerStates[0].AddressV = TextureAddressMode.Wrap;
spriteBatch.Draw(mami, new Vector2(0, 0), new Rectangle(-100, -100, 800, 600), Color.White);
spriteBatch.End();
base.Draw(gameTime);

テクスチャアドレッシングモードの変更だけじゃだめぽいね。

656 :デフォルトの名無しさん:2011/09/20(火) 01:08:53.99
SpriteSortMode.Immediateにするとできた。
よく考えると当然のことなんだよな……

657 :デフォルトの名無しさん:2011/09/20(火) 01:27:04.63
テクスチャの一部を切り出してタイリングするにはどうすればよいのでしょうか?
やはり一旦別のテクスチャに描画する必要があるのでしょうか?

658 :デフォルトの名無しさん:2011/09/20(火) 17:11:50.59
バージョン変わる毎に使えなくなる機能が多い……
なんで下位互換が無いのこのライブラリ
まぁなんか作る前に気付けて良かった
やっぱObjective-C最強やね!

659 :デフォルトの名無しさん:2011/09/20(火) 18:25:56.71
【SCE】PlayStation Suite SDKのプログラミング言語にC#採用【PSVita】
http://jin115.com/archives/51811583.html

660 :デフォルトの名無しさん:2011/09/20(火) 19:26:01.45
所で何でNHKは宮家の事を王家って言うの?
百歩譲って皇家はまだ理解できるけど王家って・・・
EmperorとKingは全く格が異なるのにそんなことも理解できないの?

661 :デフォルトの名無しさん:2011/09/21(水) 04:57:25.54
>>660
王のいない一国の中で王だろうが皇だろうがどっちでもいいじゃん、そんなのw

662 :デフォルトの名無しさん:2011/09/21(水) 22:53:42.70
MIYAKE

Syntax error.
Ok

663 :デフォルトの名無しさん:2011/09/23(金) 12:19:18.01
>>660
で、どう違うの?
C#を統べるMSがエンペラーでソニーワールド内だけでC#を統括しているソニーがキングってこと?

664 :デフォルトの名無しさん:2011/09/23(金) 12:28:46.92
アジアにおいて王というのは中国の下僕であって
天皇というのは中国と対等であるという意味において
まったく異なる

665 :デフォルトの名無しさん:2011/09/23(金) 14:23:09.02
そんなことをドヤ顔で語られたところでスレ違いどころか板違いなんだがな

666 :デフォルトの名無しさん:2011/09/23(金) 19:46:37.54
ピコピコよりはるかに重要な話だろ

667 :デフォルトの名無しさん:2011/09/23(金) 22:40:35.95
>>662

668 :デフォルトの名無しさん:2011/09/25(日) 17:33:35.53
XNAは変位マッピングに対応してるの?


669 :デフォルトの名無しさん:2011/10/01(土) 23:03:17.69
テキストファイルのデータ(id,name,price,type,・・・)*200を読みこませるのってどうするのがベターなの?

670 :デフォルトの名無しさん:2011/10/02(日) 07:08:58.39
>>669
sqliteでもつかっとけ

671 :デフォルトの名無しさん:2011/10/05(水) 19:09:06.48
XBOX360ってSQLite使えたっけ?

672 :デフォルトの名無しさん:2011/10/08(土) 12:16:05.42
SRT行列matがあったとして
mat.Decomposeで取得されるQuaternionと
Quaternion.CreateFromRotationMatrix(mat)で取得されるQuaternionは
常に同じになりますか?

673 :デフォルトの名無しさん:2011/10/11(火) 01:22:47.65
XNA4.0のMicrophone使った人いますか?
普通に音声の再生はできるのですが、
FFTをかけるとスペクトルが-10dBと-80dB付近を行ったり来たりしています。
たぶん、奇数番目の値がケタ上げに使っていると思ったのですが、
いかんせんそれから先に進まない状態です。

誰か実験した方とかいませんか?

674 :デフォルトの名無しさん:2011/10/12(水) 03:41:03.85
XNAとDirectX11は併用できますか?
たとえばXNAコード内にDirectcomputeを使用したりとか




675 :デフォルトの名無しさん:2011/10/12(水) 04:24:43.95
やったことないから確実なことは言えないけど、Win限定ならP/Invoke使えば出来るんじゃない?

676 :デフォルトの名無しさん:2011/10/13(木) 22:32:15.57
Reachプロファイルで減算合成って無理かな?

677 :デフォルトの名無しさん:2011/10/14(金) 17:43:15.21
韓国に媚びうるフジテレビに徹底抗議する!!!
竹島は韓国領土などととんでもない嘘を世界に向けて発信したキムテヒを許さないぞ!!!

☆フジテレビ抗議デモin銀座☆

【時間】 平成23年10月15日土曜日 【集合】13:45【出発】14:00
【場所】 東京都千代田区大手町2-7-2常盤橋公園
【抗議内容】 フジテレビ偏向報道への抗議・反日女優キムテヒドラマへの徹底抗議

公式HP
http://yuh20112525.kagennotuki.com/

678 :デフォルトの名無しさん:2011/10/16(日) 17:47:37.67
透明処理をしようとすると、何か透き通ってるというよりも白っぽくなってしまうんですが
これは避けられませんか?
具体的にspriteBatch.Drawカラーの(255,255,255,100)の透明指定を使って
いるのですが・・・

679 :デフォルトの名無しさん:2011/10/17(月) 03:01:37.78
>>678
BlendStateをNonPremultipliedに

680 :デフォルトの名無しさん:2011/10/17(月) 20:19:16.93
>>679
できました!
目的のとおりの透明になりました。ありがとうございます!

681 :デフォルトの名無しさん:2011/10/17(月) 21:30:49.73
xnaでエロゲー作ってDMMとかで売ってもいいですか

682 :デフォルトの名無しさん:2011/10/17(月) 23:28:54.11
画面に表示されている複数のオブジェクトを
全てラスタースクロールって出来ますか?
(オブジェクト=BG、キャラ、文字等の表示物)

683 :デフォルトの名無しさん:2011/10/17(月) 23:59:13.05
そんなもん今時存在しないけど具体的に何がしたいの
画面全体を波打たせたりしたいんなら
いったんレンダーターゲットに描いてピクセルシェーダが簡単爆速

684 :デフォルトの名無しさん:2011/10/18(火) 00:02:33.34
せやな

685 :デフォルトの名無しさん:2011/10/18(火) 00:09:08.77
>683
ありがとうございます。
ただのエフェクトで使用します。

http://www.youtube.com/watch?v=vB0Hbelvux4
怒首領蜂大復活で、ある条件時に裏面に行く際ラスターエフェクトがかかる。
この処理がしたかったのです。


686 :デフォルトの名無しさん:2011/10/18(火) 01:53:12.77
>>685
あらためて見てプロが作ったゲームってすごいな。
プレイよりもそっちに目がいってしまう。

687 :デフォルトの名無しさん:2011/10/26(水) 11:48:35.45
ラスタースクロールのしかた自体がわからにゃい

688 :デフォルトの名無しさん:2011/10/26(水) 19:01:08.57
ピクセルシェーダでサンプルする座標を三角関数で適当にずらすだけ
本物のラスタースクロールなんて糞重くて面倒臭いだけ

689 :688:2011/10/26(水) 19:33:22.44
ああ本物っていうかソフトウェア処理とか1ラインずつ描画するとかのことね

690 :デフォルトの名無しさん:2011/10/28(金) 18:01:22.56
昔、ダライアスがラスタースクロールですげぇすげぇ言われてて
そんなにすごいのかと思ってたが
プログラミングで試行錯誤してたんだろうね

691 :デフォルトの名無しさん:2011/10/29(土) 00:02:01.82
えっ

692 :デフォルトの名無しさん:2011/10/29(土) 12:58:47.63
XNAはじめてから市販のクソゲーにちょっと寛容になれた気がする。

693 :デフォルトの名無しさん:2011/10/30(日) 15:29:42.74
セーブとロードが分かりにくすぎる・・・
3行で解説頼む

694 :デフォルトの名無しさん:2011/10/30(日) 17:55:12.34
>>692
あるある

695 :デフォルトの名無しさん:2011/10/30(日) 19:58:10.31
わかる気がするって言うような奴がクソゲーを作る

696 :デフォルトの名無しさん:2011/10/30(日) 22:11:33.72
クソゲ作るならクソして寝ろ

697 :デフォルトの名無しさん:2011/10/31(月) 11:16:01.06
>>693
ストレージサービスの使い方?
それともシリアライズ?

698 :デフォルトの名無しさん:2011/11/06(日) 19:12:31.35
C#でマイクを使いたいのでXNAを検討しています。必ずゲームのウィンドウが表示されるのは、どうにかならないのでしょうか?
できれば、ボタンやテキストフィールドのあるフォームを使いたいのですが。


699 :デフォルトの名無しさん:2011/11/06(日) 23:36:24.15
SilverlightのOOBで作るのが多分一番簡単
それかMCI使う

700 :デフォルトの名無しさん:2011/11/07(月) 14:53:36.21
C#でマイク使うのにXNAはいらん。

701 :デフォルトの名無しさん:2011/11/08(火) 00:24:10.53
へえ

702 :デフォルトの名無しさん:2011/11/08(火) 15:18:56.69
雨の三日も降ればよい

703 :デフォルトの名無しさん:2011/11/12(土) 09:27:19.15
配列の配列の配列のサイズの指定方法がわかりません。

配列の配列(二次元配列のように使うジャグ配列)は

***[0] = new int[5];

という感じでいけるのですが
配列の配列の配列はどのようにサイズ指定を書けばいいんでしょうか?

   ***[0][0] = new int[5];  とやってもだめ

   ***[0] = new int[3][5]; とやってもだめです

回答よろしくおねがいします。

704 :デフォルトの名無しさん:2011/11/12(土) 12:10:58.46
int[][][] a = new int[4][][];
for (int i = 0; i < a.Length; i++) {
a[i] = new int[3][];
for (int j = 0; j < a[i].Length; j++) {
a[i][j] = new int[5];
}
}
}

705 :デフォルトの名無しさん:2011/11/12(土) 14:57:06.88
>>704
代入のしかたまで・・・!どうもありがとうございました
動作も成功を確認しました。

それまで3次元配列だったのですが敵の配置を増やすにしたがっ
Xbox上ではまだわかりませんがPC上ではかなり重くなっていたので
ジャグ配列に変えることにしたのですが、助かりました。

706 :デフォルトの名無しさん:2011/11/12(土) 15:39:23.71
こっちのほうが速いのん?

707 :デフォルトの名無しさん:2011/11/12(土) 16:23:10.03
右の添字が一番速く回るならジャグ配列の方が速いし便利
でもゲームでその程度が問題になるってよっぽどだぞ
他に原因がありそう

708 :デフォルトの名無しさん:2011/11/13(日) 17:52:45.58
>>707
>でもゲームでその程度が問題になるってよっぽどだぞ
きっと自分はプログラミング下手で効率の悪い処理をしているのだと思います。

敵Aが
「80配置されて」「5回にわけて」[6way弾発射] →[80,6,5]
それぞれの弾に10種類あるパラメーターに全てこの配列
敵Aと同じようなのが15種類あたりでフレームとびが顕著に・・・

709 :デフォルトの名無しさん:2011/11/14(月) 11:57:01.37
配列に添え字でアクセスなんてしないでください。
イテレーターを使わないとバグを量産しますよ。

710 :デフォルトの名無しさん:2011/11/14(月) 14:50:46.93
イテレータがあるからそれを使えってのならわかるけど、
それくらいのことでバグを量産できてしまう人の方が何か問題があるんだろう

711 :デフォルトの名無しさん:2011/11/14(月) 15:13:51.85
つまり、俺が一番頭がイイってことだな

712 :デフォルトの名無しさん:2011/11/14(月) 16:07:51.09
なるほど

713 :デフォルトの名無しさん:2011/11/14(月) 18:38:19.90
>>710はプロジェクト終盤でデータが微妙に増減したとき、
すべてのソース内において的確に修正を行える天才なんだね。

こりゃまいったわ、ぐうの音もでねえ。
ここに大天才現る!

714 :デフォルトの名無しさん:2011/11/14(月) 18:43:09.57
タスクシステムを使えばイテレータなんて不要
もちろんバグも出ない

715 :デフォルトの名無しさん:2011/11/14(月) 19:29:59.15
>>713
別にプログラムがデータの個数に依存して書かれてるわけじゃ無いんだから、問題なさそうだけど。

716 :デフォルトの名無しさん:2011/11/15(火) 00:45:27.20
>>714
そのタスクシステムってのは
イテレータつかわずに自前でコレクション管理してるの?
バグフリーとか相当品質高そーだね。

717 :デフォルトの名無しさん:2011/11/15(火) 00:57:46.45
は?

718 :デフォルトの名無しさん:2011/11/15(火) 13:11:48.99
やっぱり本人に問題ありということで。

719 :デフォルトの名無しさん:2011/11/15(火) 14:24:35.86
>>715本気で言ってるなら尊敬するわw

720 :デフォルトの名無しさん:2011/11/15(火) 16:35:58.62
すべてのソース内において的確に修正を行えないクズが多いんだな

721 :デフォルトの名無しさん:2011/11/15(火) 16:37:17.38
まあそれ以前に配列のサイズが変わったくらいであちこち修正が
必要なコードを書く間抜けがいるんだなw

722 :デフォルトの名無しさん:2011/11/15(火) 16:39:11.79
そうだよな、そこがまずおかしいから、本人に問題ありだって言ってるんだ。

723 :デフォルトの名無しさん:2011/11/15(火) 22:03:01.85
なんで配列の配列を使ったほうが軽くなるの?

724 :デフォルトの名無しさん:2011/11/15(火) 22:17:08.88
>>723
JITコンパイラーの都合で、1次元配列の方が最適化が効きやすい
だから、1次元配列を2重に使ってる配列の配列の方が速くなる“ことがある”
って話は聞いたことある。

まあ、内部実装考えたら普通は多次元配列の方が速いはずなんで、
それが狂うときはJITの都合ってこと。

725 :デフォルトの名無しさん:2011/11/16(水) 00:03:50.31
JITじゃなくてILにコンパイルされた時点で違うよ
for (int i = 0; i < a.Length; i++) a[i] += 1;
一次元配列のこういう形のループはILの配列専用命令が使われて
JITで特別に強力な最適化がかかるらしい(配列の場合はforeachでも同様に最適化される)
だから a[i][j] への連続したアクセスが
for (int i = 0; i < a.Length; i++) for (int j = 0; j < a[i].Length; j++) a[i][j] += 1;
の形に書けるなら一般に配列の配列のほうが速くなる
バラバラにアクセスされるならたぶん多次元配列の方が速い

726 :デフォルトの名無しさん:2011/11/16(水) 00:21:18.38
長々と書いたのに「たぶん」なんてアホ杉

727 :デフォルトの名無しさん:2011/11/16(水) 00:27:38.14
なら計測してくれよ
前にやったことある気がするけどよく覚えてないんだよ

728 :デフォルトの名無しさん:2011/11/16(水) 00:33:20.95
>>726
いちいちつっかかるんじゃねーよオメーはよー

729 :デフォルトの名無しさん:2011/11/16(水) 00:41:03.02
>>728
涙を拭けよ

730 :デフォルトの名無しさん:2011/11/16(水) 11:44:15.57
ワロタ

731 :デフォルトの名無しさん:2011/11/17(木) 09:25:09.39
クスクス

732 :デフォルトの名無しさん:2011/11/18(金) 11:06:24.43
この流れで思い出したが、一昨年頃に普通の条件分岐とポリモーフィズムを使った
C風に言うところのポインタ分岐とで、どちらが早いのか揉めたことがある
一方はGPUで条件分岐入れると糞重くなるから似た構造のCPUでも自明のことだと、
もう一方はプリフェッチが効かなくなるから遅くなると

んでベンチマーク組んでやってみたが、PC上ではパフォーマンスの違いは見られなかった
XBOX360(PowerPC)やWindowsPhone(ARM)だとまた違う結果が出るのかもな

733 :デフォルトの名無しさん:2011/11/18(金) 11:22:07.39
switchとポリモーフィズムで比べたことある(PC,.NET2.0)
最初あまりにも差が大きかったからメソッドのインライン展開を抑制したら差は小さくなったけど
やっぱりそれでもswitchの方が若干速かった

734 :デフォルトの名無しさん:2011/11/18(金) 11:58:42.54
switchを使う最適化は終盤でどうしてもそこがネックになるときだけでじゅうぶんだっての。

735 :デフォルトの名無しさん:2011/11/18(金) 14:41:29.20
メソッドインライン展開やめるのも、終盤になってそこがネックになったら、
って言わないと片手落ちだな

736 :デフォルトの名無しさん:2011/11/18(金) 14:44:44.88
>>732
おまw
GPUは条件分岐むちゃくちゃ苦手、CPUとは構造違いすぎるとかくらい知っとけよ。

737 :733:2011/11/18(金) 17:07:47.16
>>735
インライン展開で遅くなってたんじゃなくて、純粋に分岐の測定がしたいから
インライン展開を抑制してswitchの方を遅くした
ポリモーフィズムだとインライン展開できないから、
(実際はやってるらしいけど分岐先がバラバラだと効果が薄い)
実際にパフォーマンスに響くのは分岐云々よりもほとんどそれだと思う
最適化は終盤になってそこがネックになったらというのは同意

738 :デフォルトの名無しさん:2011/11/18(金) 17:42:53.91
分岐先の出現頻度が極端に偏ってるなら(大抵そうだが)ポリモーフィズムの方も
動的なインライン展開が効いて、switchと違って分岐予測も効きやすい分
ポリモーフィズムの方がもしかしたら速くなるかもね
測ってみないことには何も言えないけど

739 :デフォルトの名無しさん:2011/11/18(金) 21:39:20.28
分岐予測自体もどの程度効くのかいまいちわからないけどね。
命令キャッシュのヒット率の方が支配的な要因だったりして。

740 :デフォルトの名無しさん:2011/11/18(金) 21:49:58.83
統計取って、出現頻度順にif並べるのが一番速いんじゃね

741 :デフォルトの名無しさん:2011/11/21(月) 12:29:19.45
コーディング時に分岐予測するわけか

742 :デフォルトの名無しさん:2011/11/22(火) 15:18:18.68
sprite.Batchでnew Color(255,255,255)の値を下げることはできても
あげることはできませんね。
攻撃をうけたキャラを白く点滅させたいのですが、spritebatchの記述で
絵を白く(元絵より明るい色に)する方法はないでしょうか?
一応、白く塗りつぶしたキャラ絵をもう一枚重ねて点滅させてみせる方法も
可能ではありますが描画の負荷が倍になってしまうので
できることならパラメーターをいじって元絵の色を白色にしたいのです。

743 :デフォルトの名無しさん:2011/11/22(火) 16:48:37.76
シェーダー使うのはダメ?

744 :デフォルトの名無しさん:2011/11/22(火) 17:22:13.78
あとはレンダ―ステートでなんとかなるかな?

745 :デフォルトの名無しさん:2011/11/22(火) 21:26:38.03
>>743-744
ありがとうございます。
シェーダーもレンダーステートも全く知らないので調べてみます。
既に少しは検索しましたがむずかしそうですね。

746 :デフォルトの名無しさん:2011/11/25(金) 16:30:59.75
入力した3Dモデルの中身埋める(ソリッドする)にはどうすればいいのでしょうか…

747 :デフォルトの名無しさん:2011/11/26(土) 00:45:41.21
作ったアプリを配付する場合にXNAで作ってると文句言われたりしないかが心配・・・
余計な手間掛けさせやがって!とか

748 :デフォルトの名無しさん:2011/11/26(土) 00:52:13.95
文句を言わせない物を作るんじゃよ

749 :デフォルトの名無しさん:2011/11/26(土) 00:55:31.16
いまどき、ダウンロードして実行するアプリの時点で大半の人変えるけど、
その先は50歩100歩だから別にXNAのランタイムのインストール手間くらいどうってことないと思う。

750 :デフォルトの名無しさん:2011/11/26(土) 01:44:29.16
同人ソフトで売れてるコレもXNAだよ(XNAということは下のサイトには書かれてないけど)
http://shop.melonbooks.co.jp/shop/sp_213001009897_roots_musket.php

751 :デフォルトの名無しさん:2011/11/30(水) 13:01:27.41
VertexBufferのPositionが所々非数値となるのですがどういうことでしょうか?

752 :デフォルトの名無しさん:2011/12/04(日) 18:16:51.84
当たり判定の
バウンディングスフィアって楕円形は設定できないのですか?

753 :デフォルトの名無しさん:2011/12/05(月) 15:19:44.48
できますよ。

754 :デフォルトの名無しさん:2011/12/06(火) 00:33:56.49
面倒だから○を複数配置でごまかします

755 :デフォルトの名無しさん:2011/12/06(火) 04:08:25.30
>>753
楕円形を書く場合のパラメーターを教えていただきたいとおもいます
BoundingSphere bounds = new BoundingSphere(中心座標, 半径);
とだけ把握しているのですが・・
>>754
大変だったらそうしようと思っていますw

756 :デフォルトの名無しさん:2011/12/06(火) 09:53:13.98
わからなければ赤ペン先生に聞け
http://www.youtube.com/watch?v=LLyTiQIwv2M

757 :デフォルトの名無しさん:2011/12/06(火) 14:20:28.69
できないような気がするけど、できるなら知りたいな。

758 :デフォルトの名無しさん:2011/12/11(日) 22:37:14.64
できないんじゃないの?
だってSphere=球体だろ?

177 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)