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


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

XNA 質問・相談スレッド 2



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

まあ、興味があれば。

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

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

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


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

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



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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

77 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2010/10/18(月) 10:51:59 ]
>>76
マジックナンバーも本人が把握できてれば別にいいと思うけどなぁ。

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

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



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

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

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

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

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

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

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


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

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

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

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



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

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

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

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

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

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

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

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

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

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



101 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2010/10/22(金) 19:59:56 ]
.NET4ベースなの?驚きだな
360やWP7のCLRって2.0ベースだったはずだけどそこらへんはどうなってるんだろう

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

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

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

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

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

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

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



111 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2010/10/26(火) 18:41:32 ]
4.0にしたらFromFileがなくなってて参考書全く役立たずで涙目

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

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

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


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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SlimDXに乗り換える

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

氏ねよXNA←いまここ

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



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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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



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

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

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


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

175 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2010/11/06(土) 23:57:29 ]
>>175
特定範囲の内部に入ったら
範囲の法線の向きに自機に力を加えればいいんじゃないの

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

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

教えてください

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



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

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

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

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

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

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

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

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

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

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

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

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

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

190 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2010/11/18(木) 19:25:51 ]
萌えキャラ使ったローグライクなゲーム作ったら
それなりに日本で売れる気がする

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

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

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

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

196 名前:190 mailto:sage [2010/11/19(金) 04:47:23 ]
>>190は自己解決しました

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

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

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

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

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



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

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

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

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

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

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

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

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



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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

230 名前:214 mailto:sage [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 mailto:sage [2010/12/02(木) 05:44:54 ]
>>230
4MByteは飽くまで参考程度で。
たぶんこんなにかからない。
体感ではそのぐらい増えたような気がするんだが....。

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

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

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

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


235 名前:214 mailto:sage [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 mailto:sage [2010/12/03(金) 06:11:58 ]
>>235
GS4.0での場合です。
GS3.1は別の場所に頂点データがあります。
正確な場所は失念。

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

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

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

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

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


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

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



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

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

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

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

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

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

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



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

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

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

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

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



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

252 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2010/12/19(日) 10:29:21 ]
それで判らないなら
もう回転させた画像用意しろよ


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

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

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

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

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

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

げいつ

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



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

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

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

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

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

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


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

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

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

266 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 mailto:sage [2010/12/21(火) 12:54:48 ]
ごめんレス番間違い
上下反転する 266
上下反転しない 265

270 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2010/12/24(金) 18:03:07 ]
>>271
移動してるほうの進行ベクトルじゃダメなの?


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

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


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

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

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

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

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

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

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

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



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

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

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


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

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

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

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

は右側になっちゃう

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

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

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

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

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

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


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


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

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

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

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



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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

308 名前:デフォルトの名無しさん mailto:sage [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 mailto:sage [2010/12/26(日) 11:10:04 ]
>>307
ごめん、ナナメ読みしてたw
SynchronizeWithVerticalRetrace = true
のつもりで言ってた。
結局、>>305の原因は分からなくてゴメン。

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

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



311 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2010/12/30(木) 22:52:21 ]
まず、内部のforeachは何回まわっているのか?
あと1ポリゴンを1000回と1000ポリゴンを1回では全然違う。

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

314 名前:311 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2010/12/31(金) 07:46:19 ]
エスパーすると
画面スクロール時に50回ぐらいnewとディスポーズしてる

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

316 名前:311 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2010/12/31(金) 14:27:03 ]
んな大したもんじゃないだろ
今必要なら使えばいい
所詮DirectXのラッパーなんだから他の環境に移行したとしても無駄にはならん

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

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

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

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


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

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



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

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


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

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

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



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

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

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

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

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

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

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

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

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

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



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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

357 名前:デフォルトの名無しさん [2011/01/12(水) 09:23:25 ]
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 名前:デフォルトの名無しさん mailto:sage [2011/01/12(水) 16:50:43 ]
毎フレームアップデートするときGameComponentを継承しないといけませんか?
クラス作るのはめんどいのでUpdateだけをデリゲートで渡す方法とかありあせんか?

359 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/01/12(水) 18:26:47 ]
>>359
ありがとうございます。
やっぱ、デフォルトではないんですね。
使わせてもらいます

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

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

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

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

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

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

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

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

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



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

372 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/01/30(日) 03:54:25 ]
4.0 からは Content プロパティは ContentManager になったの ?

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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



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

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

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

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

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



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

397 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/02/03(木) 14:39:07 ]
最初からトリガー準備してくれればいいのにね



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

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

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

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

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

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

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

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

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

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



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

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

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

・新しく押された
・連打

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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



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


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

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

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

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

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

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

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

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

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



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

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

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

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

444 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/04/17(日) 12:31:16.72 ]
そうですね

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

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

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

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

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

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

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

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

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






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

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

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

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

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

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

passは"depth"です

よろしくお願いします

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

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

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

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

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

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

455 名前:451 mailto:sage [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 mailto:sage [2011/05/01(日) 17:39:54.22 ]
Playerクラスの
aspectRatio, 1.0f, 1000.0f);

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

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


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

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

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

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

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


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

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

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

459 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 18:04:55.01 ]
うわあ!レス書いてるあいだにレスが返って来てた///

精進します…



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

462 名前:451 mailto:sage [2011/05/01(日) 18:07:10.24 ]
>>460
www

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

464 名前:451 mailto:sage [2011/05/01(日) 18:18:04.83 ]
正体がばれついでに....。

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

475 名前:uy mailto:sage [2011/05/15(日) 01:58:13.94 ]
プログラマはゴミグラマ

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

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

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

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

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

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



481 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/05/20(金) 11:04:37.93 ]
質問した者じゃないけど、俺も同じトコ悩んだ
そうやって中身をコピーするのかなるほど。

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

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

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

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

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

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

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

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



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

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

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

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

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


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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

例えば

00000
01010
00000
01010

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



511 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/05/27(金) 21:22:15.60 ]
>>511
いいんじゃないの?

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

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

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

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

517 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/05/28(土) 17:36:26.00 ]
>>517
馬鹿乙

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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



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

552 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 mailto:sage [2011/07/01(金) 20:14:06.26 ]
Rubyバカにしてる子ってさ
変数に$ついてる言語触ってるって事だよね

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

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

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

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

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

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

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



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

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

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

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

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


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

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

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

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

売る箱を持ってなかった

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



571 名前:561-568 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 16:29:10.13 ]
>>571
ちなみにそれ再配布できないよね・・・。

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

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

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

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

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

575 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 17:58:50.01 ]
間違ってるから表示されないんだろ、アホか。
ソース晒して他人にデバッグさせようとか、図々しいにもほどがある。

576 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 18:02:53.52 ]
ソース晒せって言ったり、するなっていったり困るね。まったく。

577 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 21:00:15.14 ]
>>574
これって、
ime.nu/kagaminer.in/
の中の人が質問してるの?
こんなんもデバッグできない馬鹿が作ってるの?
アホなの? 氏ぬの?

578 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 21:01:44.30 ]
kagaminer.in/
貼り間違えた orz

579 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 21:17:15.09 ]
>>575-576
プログラムは思った通りではなく、書いた通りに動くとは
重々理解しているつもりですが、どこがおかしいのやら……

>>577
はい、そうです。何かまずいところでもあったでしょうか?
ちなみに、ページ中の画面写真はイメージです。

580 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 01:16:50.59 ]
>>579
自己レスです。
WVPに渡すMatrixの数値が食い違うことに気づき、色々調べたところ、
XNAは右手系というやつで計算方法が違うということを知りました。
XNA側に無理やりC++で出した行列の値を設定したところ、表示できました。

そこで、質問を変えますが、このHLSLを、右手系という計算方法でも
正しく表示できるように対応させるにはどうすればよいでしょうか?



581 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 02:03:54.79 ]
>>580
右手系と左手系を分かってるか?
その違いを理解すれば、ものすごく簡単な話しだぞ。
具体的には、軸を1本、符号反転するだけだ。

582 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 10:46:51.94 ]
ソリューション構成のビルド対象とゲームプロジェクトの依存関係から
コンテンツのプロジェクトを外せない?

585 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 11:10:59.86 ]
>>584
あーそういうことか。
普段ビルド無効にしてカスタムプロセッサを弄った時だけ、
プロジェクト名指しで強制的にビルドさせてやればいいんだな。
サンクス

586 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 20:42:01.47 ]
フリーで使えるXNA用の
ライティング・シャドウイングのエンジンってないかな?

587 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/07/29(金) 14:06:28.57 ]
さすが、考えてること同様、お粗末な頭だ。
配布するのはいいが、プレイするユーザーのこと考えてるか?

590 名前:デフォルトの名無しさん mailto:sage [2011/07/29(金) 14:33:04.50 ]
ccgameはゲーム本体とは別にXNAクリエイター向けのおまけとして作ったものだから
プレイ対象者はMSに年99$上納してるヤシに限定しても特に悪くはないだろ、と思ってる。



591 名前:デフォルトの名無しさん mailto:sage [2011/07/29(金) 22:58:35.37 ]
正確には公式で問い合わせたほうがいいけど、
インディーズで出してるこびとスタジオも昔から360用ccgame入りをコミケで売ってるからNE☆


592 名前:デフォルトの名無しさん mailto:sage [2011/07/29(金) 23:46:00.16 ]
XNAクリエイター向けだったら
コンパイル済みのアセンブリとアセット配れば十分じゃないの

593 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 08:53:52.71 ]
XNA4で Effect.CompileEffectFromFile相当の処理をさせるために、
コマンドラインツールが配布されていた気がするのですが
見つけられません。ご存知でないでしょうk?

594 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 12:13:51.46 ]
自己解決しました。app hubのstock effect sampleです。

XNA4では、D3D10形式のシェーダファイルでないと読めないのでしょうか。
昔のシェーダファイルを使いまわしたいのですが、もしや解決策はない?

595 名前:デフォルトの名無しさん [2011/08/01(月) 16:36:53.11 ]
XNAで作られたゲームを拡張して、ゲーム中に文字チャット機能入れたいと思うんですが、
文字入力とか漢字変換とか、どうやれば良いでしょうか?

596 名前:デフォルトの名無しさん mailto:sage [2011/08/01(月) 16:44:08.11 ]
もう一度ググったらそれっぽいのが出てきました。
それ見て理解できなければ改めて質問します。

597 名前:デフォルトの名無しさん mailto:sage [2011/08/01(月) 16:47:16.01 ]
聞くときは動作環境も一緒にね
Windowsとそれ以外とじゃ違うし

598 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 08:15:48.68 ]
あるモデルをアルファテストでピクセル抜いた上で
それ以外のピクセルを真っ黒に描画したい(マスクつくりたい)
ちなみにカスタムシェーダは使えない
なんかやり方ないかな?

599 名前:598 mailto:sage [2011/08/03(水) 08:20:46.37 ]
それとモデルはSkinnedModelで変形させたい
誰か助けてくださいませ

600 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 11:28:16.74 ]
>>598,599
オフスクリーン使え。
スキンメッシュなんざググれば(ry



601 名前:598 mailto:sage [2011/08/03(水) 12:59:12.75 ]
>>600
オフスクリーン≒レンダターゲット?ならTexture2D対象にやってるっす
問題はモデル真っ黒にしたいけどそれってピクセルシェーダでやらなきゃ
だけどSkinnedEffect使わなきゃだからカスタムシェーダ使えねえってこと
SkinnedEffect+AlphaTestはできんのかなーって?

602 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 22:02:06.97 ]
>>601
レンダーターゲットの使い方工夫しろよ、低脳

603 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 01:51:30.42 ]
XBOX360ではHLSLのPointScaleEnableとPointScale_A〜Cは使えないの?
Windowsではビルド通ったけどXBOX360では通らない
GraphicsDevice.RenderStateにあるかと思ったらないし

604 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 11:18:30.02 ]
環境さらすの忘れてた。
VS2008+XNA3.1です。

605 名前:デフォルトの名無しさん mailto:sage [2011/08/10(水) 00:50:22.71 ]
XNAでスレッドを使って処理を分散しているサンプルとかないですか?
Update()のタイミングに合わせてスレッドを動かす方法が知りたいです。

606 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 10:07:44.46 ]
見たことないな。マルチスレッドは苦労の割になかなか速くならないし。
タスク並列がやりたいんだったら、.NET4+WinならParallel.Invokeが簡単。
それが使えないならThreadPoolで実行させてWaitHandleで待機する。
当たり判定のような特定のループが無茶苦茶重いんなら
タスク並列よりもそのループを並列化したほうがずっと楽で確実に速くなる。

607 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 15:28:29.04 ]
ひにけにでやってなかったっけ

608 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 22:14:29.35 ]
話題には出してたが、サンプルはなかった気がする

609 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 22:27:52.78 ]
データ並列の当たり判定とかどうなんだろう
とんでもなく数が多ければコア数倍に近づくだろうけど実際のゲームで速くなんのかな

610 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 22:03:57.90 ]
デフォルトで使えるspriteFontの類って著作権等の権利形態はどうなってるの?



611 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 23:01:52.40 ]
勝手に使ったらダメよ

612 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/08/17(水) 10:43:09.02 ]
そういうもんだから管理は自分で

615 名前:デフォルトの名無しさん mailto:sage [2011/08/18(木) 10:20:26.51 ]
車輪の再発明したら箱でもスレッド毎回作り直されることなくなったわw
>>614 サンクス

616 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 15:21:12.37 ]
byte

618 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 15:55:17.32 ]
3.1?
このへん4.0と変わってるからバージョン書いた方がいいよ

619 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 20:32:32.62 ]
>>617
どうもありがとうございます。byte型を入れてみたところ予定どうりの
色調整ができました!

>>618
アドバイスありがとうございます、これから気をつけます。
現在の手元のバージョンは3.1でした。
言われて調べてみたところ、どうやらインディーズは4.0での
提出のみとなるようですね。透明処理などの仕様も変わるとか・・・。
早速移行してみようと思います。

620 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 00:53:08.52 ]
Hidefじゃなくて
Reachにしてみれば?


622 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 11:11:12.12 ]
>>621
ありがとうございました。おかげさまでビルドに成功しました。

昨晩は絶望したのですが、それで最初からはじめてコピーも使って
以前の状態にもどりつつあります。これは個人的な報告ですが
移行作業の参考になる人もいるかもしれないので。

XACTエラーは4.0のフォルダにあるものを使わなかったのが原因のようでした。

Contentは原因わかりませんが、バージョン上げても2008のタブもあった
事と関係あるのかも。プロジェクトが2008で作ったものを参照したがってた
のか・・・あまりよくわかりませんが最初から作ったので問題なくなりました。

テクスチャサイズの最大値が、2008では警告だったのにこっちはエラーに
なるんですね。つくり直しました。

623 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 14:11:59.47 ]

ごめんなさい。
パラメーターの意味あいが変わって、表示優先度などがメチャクチャに
なっていただけみたいです。大間違いですみません。

625 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 12:14:59.36 ]
Cueを使用して効果音を鳴らせていますが
同フレームに同時にならすと音がその倍、大きくなってしまいます。
forループ内に音を出す命令を書いた場合や
複数のザコに攻撃が同時ヒットした場合のヒット音など。
何か良い解決策はないでしょうか?

626 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 12:27:07.72 ]
再生数に合わせて音量を落とすとか

627 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 21:24:00.20 ]
>>626
シチュエーションによって2人に・3人にと同時ヒット数がいろいろなので
その方法だと厳しいようです。

628 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 22:18:13.55 ]
そんなのロジックの問題でしょ
当たり判定してすぐに鳴らさないであとでまとめて鳴らすとかどうとでも

629 名前:デフォルトの名無しさん mailto:sage [2011/08/30(火) 16:50:52.20 ]
>>628
同時再生で音が大きくなるのはプログラムで回避すべき問題なんですね。
了解しました。
音をならすシチュエーションで変数を動かして、その変数で一つの音を
鳴らすように工夫してみます。

回答ありがとうございました。

630 名前:デフォルトの名無しさん mailto:sage [2011/08/30(火) 17:27:50.69 ]
>>629
つか、実際プロが作ったゲームをプレイしてみてその辺をどうしてるか参考にしてみては?



631 名前:デフォルトの名無しさん mailto:sage [2011/08/30(火) 22:16:50.23 ]
大きくなってもいいじゃない

632 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 11:07:00.68 ]
>>630-631
あれから解決しました。
bool型でsoundplay変数を作って
音をならしたい時はそれぞれの場面でならすのでなくこの変数をtrueに。
if(bool soundplay == false)でならす条件を絞って
trueになったフレームにだけ音をならして3フレームでfalseにもどっと
その間は音が重ねてでないようにしました。

633 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 17:10:52.89 ]
SpriteFontってSpriteBatch.DrawString以外では使えんの?
たとえば自前でSpriteFontの描画ロジック積むとか

XNA3.1です

634 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 23:04:48.73 ]
四角のポリゴンにテクスチャを張ったのは出来たんですけど
透明色指定の方法教えてください

635 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 23:20:43.56 ]
透明色は過去の遺物
アルファチャンネル使う

636 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 01:31:44.43 ]
>>635
どうもです
アルファチャンネルを調べてみます

637 名前:デフォルトの名無しさん [2011/09/01(木) 02:28:29.82 ]
XNAで不特定多数の漢字を表示することって不可能なのでしょうか?
方法を検索しても使う漢字全て調べて使えるようにするっていう方法しか見つからないのですが・・・

638 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 04:37:28.18 ]
>>637
JISコードの漢字の並び順は第一水準、第二水準と並んでいる(ボソ
もしくは、後で拡張出来るようにする予定でもなければ、セリフとかのリソースをスキャンしてxmlを生成するプログラムをくんでも良いし
(そしてそれをコンパイル時に実行するようにしても良いし)

ちなみに、今の時代、オンボでもなければビデオメモリは少なくても512MBはあるだろうから、
第一水準までのすべての漢字を取り込んだところで、気にするほどパフォーマンスは落ちないだろうよ。

639 名前:デフォルトの名無しさん mailto:saga [2011/09/01(木) 16:53:02.41 ]
Windows限定でいいならP/InvokeやSystem.Drawing使って文字描画するのは難しくない
文字列のビットマップデータを取得したらテクスチャにSetDataで書き込むだけ

640 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 10:44:16.68 ]
celeron P4600の内蔵グラフィックでXNA動きますか?



641 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 13:50:26.77 ]
動く。
もっと古くても2005年以降のintelマザボならオンボードで動く。

642 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 05:32:03.19 ]
画像の端っこが、画像部分をはみ出して横に伸びてしまうんですが
この機能をオフにできませんか?
テクスチャの端に背景色を配置して対処してますが面倒です。

643 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 10:56:03.89 ]
状況がわからん、どんなふうになるの?

644 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 20:22:01.27 ]
>>643
Texture2Dで2Dドット絵なんですが
例えば25×25サイズのドット絵を描画するとき、この端っこに背景色以外のドットが
あると、右端にそのドットがある場合などは、その絵の右に
ビヨーンと右端の色を伸ばして塗りつぶしたふうになってしまいます。

645 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 01:02:29.64 ]
>>644
図解してくれよ

646 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 01:42:08.43 ]
テクスチャアドレッシングモードがクランプになってんじゃね?

647 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 15:33:54.42 ]
>>645
絵にしてみるとこんな感じです。
ttp://uploader.sakura.ne.jp/src/up56183.png

>>646
ありがとうございます。
検索してでてきたのは3Dのほうでしたが、どうもそれがらみのようです。

648 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 18:59:23.45 ]
すまん。 画像で笑ってしまった。

649 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 21:26:37.81 ]
もう消えてしまったので別のロダに再うpしました。
ttp://ichigo-up.com/cgi/up/qqq/nm41311.png.html

>>648
大丈夫。実際のゲーム画像ではありません。

650 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 22:55:18.85 ]
オラワクワクしてきたぞwwwww
この絵でゲーム出してwwwwwwwww



651 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 23:08:26.50 ]
100円なら迷わず買う

652 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 01:26:31.22 ]
そういう反応が欲しいわけじゃないだろ649はw

653 名前:デフォルトの名無しさん mailto:sage [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 ]
表示結果
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 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 18:25:56.71 ]
【SCE】PlayStation Suite SDKのプログラミング言語にC#採用【PSVita】
jin115.com/archives/51811583.html

660 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 19:26:01.45 ]
所で何でNHKは宮家の事を王家って言うの?
百歩譲って皇家はまだ理解できるけど王家って・・・
EmperorとKingは全く格が異なるのにそんなことも理解できないの?



661 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 04:57:25.54 ]
>>660
王のいない一国の中で王だろうが皇だろうがどっちでもいいじゃん、そんなのw

662 名前:デフォルトの名無しさん [2011/09/21(水) 22:53:42.70 ]
MIYAKE

Syntax error.
Ok

663 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 12:19:18.01 ]
>>660
で、どう違うの?
C#を統べるMSがエンペラーでソニーワールド内だけでC#を統括しているソニーがキングってこと?

664 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 12:28:46.92 ]
アジアにおいて王というのは中国の下僕であって
天皇というのは中国と対等であるという意味において
まったく異なる

665 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 14:23:09.02 ]
そんなことをドヤ顔で語られたところでスレ違いどころか板違いなんだがな

666 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 19:46:37.54 ]
ピコピコよりはるかに重要な話だろ

667 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 22:40:35.95 ]
>>662

668 名前:デフォルトの名無しさん [2011/09/25(日) 17:33:35.53 ]
XNAは変位マッピングに対応してるの?


669 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 23:03:17.69 ]
テキストファイルのデータ(id,name,price,type,・・・)*200を読みこませるのってどうするのがベターなの?

670 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 07:08:58.39 ]
>>669
sqliteでもつかっとけ



671 名前:デフォルトの名無しさん mailto:sage [2011/10/05(水) 19:09:06.48 ]
XBOX360ってSQLite使えたっけ?

672 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/10/12(水) 04:24:43.95 ]
やったことないから確実なことは言えないけど、Win限定ならP/Invoke使えば出来るんじゃない?

676 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 22:32:15.57 ]
Reachプロファイルで減算合成って無理かな?

677 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 17:43:15.21 ]
韓国に媚びうるフジテレビに徹底抗議する!!!
竹島は韓国領土などととんでもない嘘を世界に向けて発信したキムテヒを許さないぞ!!!

☆フジテレビ抗議デモin銀座☆

【時間】 平成23年10月15日土曜日 【集合】13:45【出発】14:00
【場所】 東京都千代田区大手町2-7-2常盤橋公園
【抗議内容】 フジテレビ偏向報道への抗議・反日女優キムテヒドラマへの徹底抗議

公式HP
yuh20112525.kagennotuki.com/

678 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 17:47:37.67 ]
透明処理をしようとすると、何か透き通ってるというよりも白っぽくなってしまうんですが
これは避けられませんか?
具体的にspriteBatch.Drawカラーの(255,255,255,100)の透明指定を使って
いるのですが・・・

679 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 03:01:37.78 ]
>>678
BlendStateをNonPremultipliedに

680 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 20:19:16.93 ]
>>679
できました!
目的のとおりの透明になりました。ありがとうございます!



681 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 21:30:49.73 ]
xnaでエロゲー作ってDMMとかで売ってもいいですか

682 名前:デフォルトの名無しさん [2011/10/17(月) 23:28:54.11 ]
画面に表示されている複数のオブジェクトを
全てラスタースクロールって出来ますか?
(オブジェクト=BG、キャラ、文字等の表示物)

683 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 23:59:13.05 ]
そんなもん今時存在しないけど具体的に何がしたいの
画面全体を波打たせたりしたいんなら
いったんレンダーターゲットに描いてピクセルシェーダが簡単爆速

684 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 00:02:33.34 ]
せやな

685 名前:デフォルトの名無しさん [2011/10/18(火) 00:09:08.77 ]
>683
ありがとうございます。
ただのエフェクトで使用します。

www.youtube.com/watch?v=vB0Hbelvux4
怒首領蜂大復活で、ある条件時に裏面に行く際ラスターエフェクトがかかる。
この処理がしたかったのです。


686 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 01:53:12.77 ]
>>685
あらためて見てプロが作ったゲームってすごいな。
プレイよりもそっちに目がいってしまう。

687 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 11:48:35.45 ]
ラスタースクロールのしかた自体がわからにゃい

688 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 19:01:08.57 ]
ピクセルシェーダでサンプルする座標を三角関数で適当にずらすだけ
本物のラスタースクロールなんて糞重くて面倒臭いだけ

689 名前:688 mailto:sage [2011/10/26(水) 19:33:22.44 ]
ああ本物っていうかソフトウェア処理とか1ラインずつ描画するとかのことね

690 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 18:01:22.56 ]
昔、ダライアスがラスタースクロールですげぇすげぇ言われてて
そんなにすごいのかと思ってたが
プログラミングで試行錯誤してたんだろうね



691 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 00:02:01.82 ]
えっ

692 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 12:58:47.63 ]
XNAはじめてから市販のクソゲーにちょっと寛容になれた気がする。

693 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 15:29:42.74 ]
セーブとロードが分かりにくすぎる・・・
3行で解説頼む

694 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 17:55:12.34 ]
>>692
あるある

695 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 19:58:10.31 ]
わかる気がするって言うような奴がクソゲーを作る

696 名前:デフォルトの名無しさん [2011/10/30(日) 22:11:33.72 ]
クソゲ作るならクソして寝ろ

697 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 11:16:01.06 ]
>>693
ストレージサービスの使い方?
それともシリアライズ?

698 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 19:12:31.35 ]
C#でマイクを使いたいのでXNAを検討しています。必ずゲームのウィンドウが表示されるのは、どうにかならないのでしょうか?
できれば、ボタンやテキストフィールドのあるフォームを使いたいのですが。


699 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 15:18:56.69 ]
雨の三日も降ればよい

703 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 09:27:19.15 ]
配列の配列の配列のサイズの指定方法がわかりません。

配列の配列(二次元配列のように使うジャグ配列)は

***[0] = new int[5];

という感じでいけるのですが
配列の配列の配列はどのようにサイズ指定を書けばいいんでしょうか?

   ***[0][0] = new int[5];  とやってもだめ

   ***[0] = new int[3][5]; とやってもだめです

回答よろしくおねがいします。

704 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 14:57:06.88 ]
>>704
代入のしかたまで・・・!どうもありがとうございました
動作も成功を確認しました。

それまで3次元配列だったのですが敵の配置を増やすにしたがっ
Xbox上ではまだわかりませんがPC上ではかなり重くなっていたので
ジャグ配列に変えることにしたのですが、助かりました。

706 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 15:39:23.71 ]
こっちのほうが速いのん?

707 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 16:23:10.03 ]
右の添字が一番速く回るならジャグ配列の方が速いし便利
でもゲームでその程度が問題になるってよっぽどだぞ
他に原因がありそう

708 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 14:50:46.93 ]
イテレータがあるからそれを使えってのならわかるけど、
それくらいのことでバグを量産できてしまう人の方が何か問題があるんだろう



711 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 15:13:51.85 ]
つまり、俺が一番頭がイイってことだな

712 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 19:29:59.15 ]
>>713
別にプログラムがデータの個数に依存して書かれてるわけじゃ無いんだから、問題なさそうだけど。

716 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 00:45:27.20 ]
>>714
そのタスクシステムってのは
イテレータつかわずに自前でコレクション管理してるの?
バグフリーとか相当品質高そーだね。

717 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 00:57:46.45 ]
は?

718 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 13:11:48.99 ]
やっぱり本人に問題ありということで。

719 名前:デフォルトの名無しさん [2011/11/15(火) 14:24:35.86 ]
>>715本気で言ってるなら尊敬するわw

720 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 16:35:58.62 ]
すべてのソース内において的確に修正を行えないクズが多いんだな



721 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 16:37:17.38 ]
まあそれ以前に配列のサイズが変わったくらいであちこち修正が
必要なコードを書く間抜けがいるんだなw

722 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 16:39:11.79 ]
そうだよな、そこがまずおかしいから、本人に問題ありだって言ってるんだ。

723 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 22:03:01.85 ]
なんで配列の配列を使ったほうが軽くなるの?

724 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 22:17:08.88 ]
>>723
JITコンパイラーの都合で、1次元配列の方が最適化が効きやすい
だから、1次元配列を2重に使ってる配列の配列の方が速くなる“ことがある”
って話は聞いたことある。

まあ、内部実装考えたら普通は多次元配列の方が速いはずなんで、
それが狂うときはJITの都合ってこと。

725 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 00:21:18.38 ]
長々と書いたのに「たぶん」なんてアホ杉

727 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 00:27:38.14 ]
なら計測してくれよ
前にやったことある気がするけどよく覚えてないんだよ

728 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 00:33:20.95 ]
>>726
いちいちつっかかるんじゃねーよオメーはよー

729 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 00:41:03.02 ]
>>728
涙を拭けよ

730 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 11:22:07.39 ]
switchとポリモーフィズムで比べたことある(PC,.NET2.0)
最初あまりにも差が大きかったからメソッドのインライン展開を抑制したら差は小さくなったけど
やっぱりそれでもswitchの方が若干速かった

734 名前:デフォルトの名無しさん [2011/11/18(金) 11:58:42.54 ]
switchを使う最適化は終盤でどうしてもそこがネックになるときだけでじゅうぶんだっての。

735 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 14:41:29.20 ]
メソッドインライン展開やめるのも、終盤になってそこがネックになったら、
って言わないと片手落ちだな

736 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 14:44:44.88 ]
>>732
おまw
GPUは条件分岐むちゃくちゃ苦手、CPUとは構造違いすぎるとかくらい知っとけよ。

737 名前:733 mailto:sage [2011/11/18(金) 17:07:47.16 ]
>>735
インライン展開で遅くなってたんじゃなくて、純粋に分岐の測定がしたいから
インライン展開を抑制してswitchの方を遅くした
ポリモーフィズムだとインライン展開できないから、
(実際はやってるらしいけど分岐先がバラバラだと効果が薄い)
実際にパフォーマンスに響くのは分岐云々よりもほとんどそれだと思う
最適化は終盤になってそこがネックになったらというのは同意

738 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 17:42:53.91 ]
分岐先の出現頻度が極端に偏ってるなら(大抵そうだが)ポリモーフィズムの方も
動的なインライン展開が効いて、switchと違って分岐予測も効きやすい分
ポリモーフィズムの方がもしかしたら速くなるかもね
測ってみないことには何も言えないけど

739 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 21:39:20.28 ]
分岐予測自体もどの程度効くのかいまいちわからないけどね。
命令キャッシュのヒット率の方が支配的な要因だったりして。

740 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 21:49:58.83 ]
統計取って、出現頻度順にif並べるのが一番速いんじゃね



741 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 12:29:19.45 ]
コーディング時に分岐予測するわけか

742 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 15:18:18.68 ]
sprite.Batchでnew Color(255,255,255)の値を下げることはできても
あげることはできませんね。
攻撃をうけたキャラを白く点滅させたいのですが、spritebatchの記述で
絵を白く(元絵より明るい色に)する方法はないでしょうか?
一応、白く塗りつぶしたキャラ絵をもう一枚重ねて点滅させてみせる方法も
可能ではありますが描画の負荷が倍になってしまうので
できることならパラメーターをいじって元絵の色を白色にしたいのです。

743 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 16:48:37.76 ]
シェーダー使うのはダメ?

744 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 17:22:13.78 ]
あとはレンダ―ステートでなんとかなるかな?

745 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 21:26:38.03 ]
>>743-744
ありがとうございます。
シェーダーもレンダーステートも全く知らないので調べてみます。
既に少しは検索しましたがむずかしそうですね。

746 名前:デフォルトの名無しさん [2011/11/25(金) 16:30:59.75 ]
入力した3Dモデルの中身埋める(ソリッドする)にはどうすればいいのでしょうか…

747 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 00:45:41.21 ]
作ったアプリを配付する場合にXNAで作ってると文句言われたりしないかが心配・・・
余計な手間掛けさせやがって!とか

748 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 00:52:13.95 ]
文句を言わせない物を作るんじゃよ

749 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 00:55:31.16 ]
いまどき、ダウンロードして実行するアプリの時点で大半の人変えるけど、
その先は50歩100歩だから別にXNAのランタイムのインストール手間くらいどうってことないと思う。

750 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 01:44:29.16 ]
同人ソフトで売れてるコレもXNAだよ(XNAということは下のサイトには書かれてないけど)
shop.melonbooks.co.jp/shop/sp_213001009897_roots_musket.php








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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