トップページ⇒tech
1001コメント300KB

【みんな】XNA 質問・相談スレッド1【初心者】

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2007/09/23(日) 23:43:41
Microsoft XNA はマイクロソフトによって提供された、ゲーム開発のためのツールである。
XNA はマネージ実行環境を完備する。
2004 年 3 月 24 日、カリフォルニア州のサンノゼの Game Developers Conference で発表され、
2006 年 12 月 11 日にリリースされた。

XNA は「 XNA's Not Acronymed」 ( XNA は頭字語ではない)の頭字語である。


XNA デベロッパーセンター
http://www.microsoft.com/japan/msdn/xna/

xna スタジオ
http://xna-studio.jp/

XNA Game Studioメモ
http://www.saturn.dti.ne.jp/~npaka/xna/

ということで立ててみた。
0883デフォルトの名無しさん2010/09/20(月) 21:28:41
>>882
スプライトで4頂点が自由に設定できるなら、
2つの頂点を他の2つの座標と同じにすれば直線が誕生する。
0884デフォルトの名無しさん2010/09/20(月) 23:28:33
質問
XNAってDX見たいにスプライトとかの透明度を常に変えることって出来ないのか?
Drawのカラー部分を new Color(255,255,255,i)見たいに変数入れて値を変化させてるのだが不透明のままなんだが如何したらいいんだろう
0885デフォルトの名無しさん2010/09/20(月) 23:50:48
マルチうぜえ
0886デフォルトの名無しさん2010/09/21(火) 00:27:48
>>884
変数「i」じゃなく、定数でやってみた?
まず定数でやって半透明に成功したかの報告からヨロ。
0887デフォルトの名無しさん2010/09/21(火) 01:20:55
>>884
RenderState.AlphaBlendEnableとか?
0888デフォルトの名無しさん2010/09/21(火) 10:29:08
>>887
それだろうけど、デフォルトがそうじゃなかったっけ。
試しに普通に書いたら普通に半透明になったんだけど
一体どうやって書いてできないって言ってるの?
バージョンとかも含めて書いてくれないか
0889デフォルトの名無しさん2010/09/21(火) 15:27:19
コンパイル通ってるみたいだから関係ないけどXNA4ではアルファ値を引数にとるコンストラクタは削除されるらしいね
0890デフォルトの名無しさん2010/09/21(火) 16:16:41
遅れてすまない
定数でやってみたら普通に半透明に出来る
一応 >>887見たいに
RenderState.AlphaBlendEnable = true; にはしてあるがやはり変数では出来ないっぽい
0891デフォルトの名無しさん2010/09/21(火) 16:20:04
>>890
0to1か0to255か、そこが問題だ!
0892デフォルトの名無しさん2010/09/21(火) 16:26:32
だったらXNA以前の問題
直前にConsole.WriteLine(i);とか入れて観察してみな
表示された値が予想と違ってて、それでも何が間違ってるかわからないのであれば
XNA全く関係ないから初心者用のC#スレへ行け
0893デフォルトの名無しさん2010/09/21(火) 16:33:39
言ったとおりに良く見たらAlphaの部分が0〜0.1floatとか0〜255byteで、intで指定してたっぽかったから駄目みたいだった
そのとおりに書き直してみたら段々と消えて行くような感じに出来た。
教えてくれた人達有難う。駄スレ済みませんでした
0894デフォルトの名無しさん2010/09/21(火) 16:44:06
>>893
マジカヨwおれ超エスパーwww
0895デフォルトの名無しさん2010/09/21(火) 18:28:15
なにが楽しくてXNAなのか
0896デフォルトの名無しさん2010/09/21(火) 18:33:03
楽しいから使ってるんじゃねえよ、これしかねえからこれなんだよ。
0897デフォルトの名無しさん2010/09/21(火) 18:33:42
かわいそうに・・・
0898デフォルトの名無しさん2010/09/21(火) 20:58:22
>>895
コンシューマで発表できるってのはちょっとした浪漫なんよ
0899デフォルトの名無しさん2010/09/21(火) 21:10:42
C#とXNAやってからC++とDirectXでやったら発狂した
0900デフォルトの名無しさん2010/09/21(火) 21:14:29
>>899
おまえの頭が対応できなかっただけだろ?
0901デフォルトの名無しさん2010/09/21(火) 21:20:54
>>900
そう言ってるんだけど
何で突っかかってくるのか
0902デフォルトの名無しさん2010/09/21(火) 23:04:20
無駄に喧嘩腰な奴多すぎw
0903デフォルトの名無しさん2010/09/21(火) 23:05:51
喧嘩しか盛り上げる術がないんだもん
0904デフォルトの名無しさん2010/09/21(火) 23:15:35
もう俺Java3Dで作るわ
0905デフォルトの名無しさん2010/09/22(水) 03:30:23
その後>>904の姿を見たものはいなかった・・・
0906デフォルトの名無しさん2010/09/22(水) 12:41:56
でも実際XNAとアンマネージDirectXなら大して変わらんよね
ファイルの読み書きだとかクラスの扱いだとかそういう周辺の部分では全く違うけど
XNAとDirectXのAPIってそんなに違わないぞ
0907デフォルトの名無しさん2010/09/22(水) 22:47:33
CoCreateInstance のうざさが低減するのと、メモリ管理多少手を抜けるくらい?

とはいえ、ComPtr みたいなのあるし、
C# でも GC 走りまくるコード書くとゲームはすぐに性能劣化するのよねぇ。
0908デフォルトの名無しさん2010/09/22(水) 23:27:04
現在、横STGで敵をかきながらステージ1にあたる部分を作っているような
状態です。

XNAは、LoadContents()メソッドとInitialize()メソッドは最初に
読み込んだあとはもう使われる事はないんでしょうか?

そして、最初にLoadContents()メソッドで全部を読み込むにしては
ゲーム途中にもロード時間がはいるゲームがありますが
あれはどんな処理をしているんでしょうか?
0909デフォルトの名無しさん2010/09/22(水) 23:43:36
どのゲームだよ
0910デフォルトの名無しさん2010/09/23(木) 02:07:55
>>909
Action Arcade Wrestlingではローディング表示が出ています。
ローディング表示があるのはその時点でDraw()メソッドを経由していると
思うのですが、その後の読み込みでLoadContents()で読み込みしているんで
しょうか。
0911デフォルトの名無しさん2010/09/23(木) 11:30:32
ContentManager.Load<T>で読み込んでるんだろ
ゲームループを止めずに小分けにして読み込んでるか、
別のスレッドを起動してそっちで読み込んでるかどっちか
0912デフォルトの名無しさん2010/09/23(木) 12:58:56
>>906
インテリセンスがないと駄目な体になっちゃった
0913デフォルトの名無しさん2010/09/23(木) 18:28:28
アクツクは補助ツールとしてどうですか?
0914デフォルトの名無しさん2010/09/23(木) 18:34:51
補助できるならどうぞ
0915デフォルトの名無しさん2010/09/23(木) 18:35:03
アクツは4.0が出たら提出できなくなるじゃ呂
0916デフォルトの名無しさん2010/09/23(木) 20:20:30
>>911
そういう読み込み方法もあるんですね。
参考になりました。
後半ステージでしか使わない画像とかに使ってみます。
0917デフォルトの名無しさん2010/09/23(木) 20:30:08
>>913
アクツクで作ったデータをXNA用に吐き出せるというもの。
XNAをエディットするものじゃないし
雛形にするにもむいてない。

結論:アクツク使うなら最初から最後までアクツクで作るつもりで
0918デフォルトの名無しさん2010/09/24(金) 11:19:59
シェーダ使わないからシェーダ未搭載機でも起動させてほしい
なぜユーザーをシェーダごときで絞るのか?
0919デフォルトの名無しさん2010/09/24(金) 20:01:11
シェーダー使わないという選択肢がゲームにはあんまりないからなぁ。
0920デフォルトの名無しさん2010/09/24(金) 21:26:55
>>918
ざんねんでした、使っていないようで下層では
デフォルトのシェーダーが走っております。

だから無理です。

AtomのPCも変えないような連中はそろそろお別れです。
まあ買えない連中の殆どがワレ厨だがな。
0921デフォルトの名無しさん2010/09/24(金) 22:17:53
>>918
シェーダごときも使えないPC使ってるの?wwww
0922デフォルトの名無しさん2010/09/24(金) 22:43:57
>>915>>917
ありがとうございます
0923デフォルトの名無しさん2010/09/25(土) 10:35:28
>>920

>>921

そういう煽りが低レベル
それだからXNAがガラパゴス化していることを認識できないんだろ?
0924デフォルトの名無しさん2010/09/25(土) 10:49:23
ガラパゴス化の意味わかってねえw
0925デフォルトの名無しさん2010/09/25(土) 11:52:09
話が高レベルすぎてわからない
俺はコツコツとドット絵をかく
0926デフォルトの名無しさん2010/09/25(土) 18:33:12
XNAで画面を振動させるのに適した命令はありますか?

自分は2Dゲーですが振動用のメソッドでnew Vector2 = (0,1)みたいのを
書いて、全部のspriteBatch.Drawの表示位置にその値を代入しているのですが
もっと一括して画面を揺らせる命令があったらおしえてください。
0927デフォルトの名無しさん2010/09/26(日) 10:32:47
spriteBatch.Begin()の4つ引数あるやつの4番目がMatrixなんで
Matrix.CreateTranslation()で作ったやつ入れてやれば全体が動くよ。
0928デフォルトの名無しさん2010/09/26(日) 11:43:38
>>924
特異な環境での進化? 日本固定?
kwsk
0929デフォルトの名無しさん2010/09/26(日) 12:45:58
>>928
「ガラパゴス化 意味」でググればでてくると思うの。
閉鎖した市場で独自の需要供給を形成してる状態を揶揄して使われたりしてるみたい。
XNAまわりで言うと、ゆっくりの迷宮や萌えめくりやNINJAチョップみたいな
キャラゲばかり人気DLになってるし供給もそちらにかたよりがちな
日本の状態みたいのじゃないかな。
0930デフォルトの名無しさん2010/09/26(日) 17:40:34
>>927
ありがとうございます!
おかげさまでコードがシンプルになりそうです。
0931デフォルトの名無しさん2010/09/27(月) 11:43:33
>>929
コンテンツ内容が日本特有なんてむかしからだろ。
0932デフォルトの名無しさん2010/09/27(月) 11:49:35
929は質問に答えただけ
0933デフォルトの名無しさん2010/09/27(月) 13:28:31
変数っていくらでも増やして大丈夫なんだろうか・・・

自キャラ敵キャラのそれぞれにライフや状態保持用変数や各状態からの時間計測変数を
int型で設けているのだけれど、おかげで1種類のキャラにつき変数が15個。
種類ごとに配列で100体とか200体とか出す予定なのだけれど
将来的に変数処理が多すぎるのが原因でガクガクになったりしないかな。
XNAに詳しい人、教えてください。
0934デフォルトの名無しさん2010/09/27(月) 13:51:32
>>933
プログラミング以前の問題です。
0935デフォルトの名無しさん2010/09/27(月) 15:05:02
>>934
ゲ製に帰れ
0936デフォルトの名無しさん2010/09/27(月) 15:26:36
>>935
>>934 & >>935
0937デフォルトの名無しさん2010/09/27(月) 16:10:15
無料のツールが増えて、PG人口が増えるのは歓迎だが、
学習できない>>933みたいな馬鹿も増殖するから痛し痒しだな。
0938デフォルトの名無しさん2010/09/27(月) 16:15:08
>>933
マジレスすると、そんなところが問題になるのはありえない。
よっぽど変な書き方したら問題になるほど遅くなるかもしれない。それは誰でも必ず通る道。
どうせ今の>>933のスキルで作ったものなんて>>933が習熟したころには絶対に全部捨てて書き直したくなる。
断言できる。だから今は気にせず作れ。
0939デフォルトの名無しさん2010/09/27(月) 16:35:36
>>937
答えられないなら初心者質問スレにわざわざ来るなよw
入門書1,2冊読んではじめた子たちのお前をイラつかせる質問が
これからも増えるからさ
0940デフォルトの名無しさん2010/09/27(月) 16:38:45
>>939
>>934 & >>935
0941デフォルトの名無しさん2010/09/27(月) 17:48:02
マウスでポリゴンに貼り付けたテクスチャをクリックしているかどうかを判断したいのですが、
どのようにしたらよろしいのでしょうか。
モデルを判断する時と同じようにしてみているのですが、
Intersectsのところでつまってしまいます。

どなたか解る方がいらっしゃったら教えてください。
お願いします。
0942デフォルトの名無しさん2010/09/27(月) 18:14:39
まずどのモデルをポイントしているかしらべる。

そのモデルのどのポリコンをポイントしているか調べる。

ポイントしている場所のテクスチャーをしらべる。

テクスチャーのどの位置をポイントしているかは、
座標をUVに変換して算出する。

ざっとこんな手順じゃね?
0943デフォルトの名無しさん2010/09/27(月) 21:04:30
>>938
よかった、このままでOKのようで。
過去に使っていたツクール系ソフトでは変数使用の上限があったから
心配していたけれど。
作り直したくなる、かもしれないけれど今のやりかたのキャラ追加に
なれてしまったから少なくともインディーズ配信まではこのままでいきそう。

それだけに安心して製作継続できるようになりました
多謝!
0944デフォルトの名無しさん2010/09/28(火) 04:50:42
2010年9月に入ってから人増えたね?
ユーザーに影響あたえるようなゲームが出たのかね
0945デフォルトの名無しさん2010/09/28(火) 17:57:12
初心者がたまたま2,3人増えただけだろ
スレを見てる人は常にある程度いる
0946デフォルトの名無しさん2010/09/28(火) 21:56:35
答えられる質問はできるだけ答えるから
お前らはエロいかっこの女戦士が触手にからまれてエロい声だすような
アクションゲームを作れ。
これがギブアンドテイクだ!
0947デフォルトの名無しさん2010/09/28(火) 22:08:41
じゃあ絵と声作ってくれ
0948デフォルトの名無しさん2010/09/29(水) 12:41:09
絵と声だけでイイ
ゲームはいらない
0949デフォルトの名無しさん2010/09/29(水) 13:16:01
お前だけがいればいい(*^^*
0950デフォルトの名無しさん2010/09/29(水) 21:51:09
次スレは970でいいの?
0951デフォルトの名無しさん2010/09/29(水) 21:58:31
970でも早い気すらするな
0952デフォルトの名無しさん2010/09/29(水) 22:08:31
今のスレ進行速度なら、ておもうけど継続するかは微妙
0953デフォルトの名無しさん2010/09/30(木) 13:06:27
XNAはオンラインランキングに登録させたりとかできるの?
0954デフォルトの名無しさん2010/09/30(木) 13:42:22
>>953本屋でXNAの本でも立ち読み位してこい。
0955デフォルトの名無しさん2010/09/30(木) 20:19:52
ここの住民オススメの参考書とか参考サイトってありますか?
「ゲーム作りで学ぶVisual C#」って本で基礎だけは勉強したんですが
次に買う参考書がなかなか決まらなくて困ってます。
地元の本屋には置いてないから、立ち読みしながら選ぶこともできないし・・・・・・

全てのクラスやメソッドを使用例を挙げて解説してくれる、夢のような参考書が欲しい・・・・・・
0956デフォルトの名無しさん2010/09/30(木) 20:45:33
@ITの川俣さんの記事かマイクロソフトの川俣さんの記事がいいよ
0957デフォルトの名無しさん2010/09/30(木) 21:46:36
>>955
2Dを作りたいのか3Dを作りたいのかでも違うかもー
0958デフォルトの名無しさん2010/10/01(金) 09:19:50
>>955
前田稔(Maeda Minoru)の超初心者のプログラム入門(XNA(C#)

ひととおりその本を読んで基本構造理解したならオススメ
0959デフォルトの名無しさん2010/10/03(日) 17:56:40
はじめての初心者は「ゲームつくりで学ぶ」ぐらいきっちり
どういうふうに記述するか書いてないとわからんよね。
数冊買ったけどはじめての人にすすめられるのはあれぐらいしかないから困る。
0960デフォルトの名無しさん2010/10/04(月) 20:29:15
シューティングで複数登場するザコ敵が複数の弾をだす・・・という場合
多次元数列を使うのが良いんでしょうか?
0961デフォルトの名無しさん2010/10/04(月) 20:35:30
なぜそのように考えたか書かないのか。
0962デフォルトの名無しさん2010/10/04(月) 20:44:24
シューティングでの弾の管理と発射の管理は、永遠の課題。
0963デフォルトの名無しさん2010/10/04(月) 20:47:48
永遠の課題っていうほど、もうおおげさじゃないだろ。
どの実装を選ぶか? 程度だと思うが。
まったく新しい実装を考え出したいなら、それはそれで勇者だと思うが。
0964デフォルトの名無しさん2010/10/04(月) 22:00:04
>>961
配列で、一つの敵が一つの弾を発射するのでない場合で
例えばザコAを4種類配置する場合に各ザコに同時3発の弾を撃たせる場合・・・

ザコAの
ザコ1匹目がうつタマ一発目[0,0] 二はつめ[0,1]
ザコ3匹目がうつタマ三発目[2,2]
という感じに管理しやすいかなと。

[a,b]に
for (int a = 0; a < 4; a++)
{
for (int b = 0;b < 3; b++)
{
といちいち代入やることになりそうなヨカンですが。
0965デフォルトの名無しさん2010/10/04(月) 22:11:40
相手のタマで苦労するの俺だけじゃないんだな
0966デフォルトの名無しさん2010/10/04(月) 22:18:15
配列使うにしても>>964の場合は多次元配列ではなくて配列の配列の方が適切
多次元配列ってC#に慣れれば慣れるほど使われなくなる機能の筆頭だよ
0967デフォルトの名無しさん2010/10/04(月) 23:23:51
配列とかいってる段階で、おまえら(ry
0968デフォルトの名無しさん2010/10/05(火) 02:26:36
>>967
ここは、ツクールやデザエモンでやってきたようなプログラム知識0の
プログラムヴァージンたちがコンシューマで発表する夢を実現するために
初のC#書式に目覚めたりというそういうスレなんだからばかにしちゃいかんと思うのだよ。
彼らがストーリー製作やデザインで非凡な才能をもってるのかもしれんし。
0969デフォルトの名無しさん2010/10/05(火) 02:54:34
>>966
それはどんなふうにすればいいんだろう

今ちょうどエフェクト表示のアルゴリズムで二次元配列を候補にしていたので
ベターな方法があるならば自分も教えてほすぃ
0970デフォルトの名無しさん2010/10/05(火) 03:15:01
おまいら、配列はいいが、メモリ確保は1回で済ませろよ
0971デフォルトの名無しさん2010/10/05(火) 03:16:44
ジャグ配列のほうが効率的とかそういう話かな?
30%ぐらいはパフォーマンスが違うとかMSDNあたりで見たような
0972デフォルトの名無しさん2010/10/05(火) 03:22:03
>>970
それは具体的にはどういう事でつか?
0973デフォルトの名無しさん2010/10/05(火) 03:36:57
ジャグ配列で自機と敵機のショット両方宣言して
その配列の配列にショット情報を格納するってこと?
0974デフォルトの名無しさん2010/10/05(火) 04:28:29
風通にインスタンス作りまくるなって意味じゃないのか。
0975デフォルトの名無しさん2010/10/05(火) 09:52:50
Game1クラスに自前のメソッドは追加しているけど、クラスは一個も追加してない
0976デフォルトの名無しさん2010/10/05(火) 17:07:19
次スレのテンプレ、本文、何か変えるところあるかい?
既出質問と回答をQ&Aにしてみるかい?
0977デフォルトの名無しさん2010/10/05(火) 18:39:11
質問と回答まとめてみようとしたけど多すぎたからやめたw
0978デフォルトの名無しさん2010/10/05(火) 20:01:11
スレの上のほうでも多次元配列についてちょっと議論あるようだけど
何か問題でもあるんかね
0979デフォルトの名無しさん2010/10/05(火) 20:17:19
配列の配列の方が圧倒的に高機能で扱いやすい
多次元配列はそのうちコンパイラで警告出るようになっても不思議じゃないくらいの勢いで放置されてる
0980デフォルトの名無しさん2010/10/05(火) 20:32:43
たとえば全ての要素にアクセスしたいとき
配列の配列 for (int i=0;i<a.Length;i++) for(int j=0;j<a[i].Length;i++)
多次元配列 for (int i=0;i<a.GetLength(0);i++) for(int j=0;j<a.GetLength(1);i++)
Lengthプロパティは特別な最適化が行われるので、この二つ比べると配列の配列の方が大幅に速い。
それに、配列の配列ならLINQも活用できる。
foreach (var item in a.SelectMany(x => x)) //全ての要素をフラット化してアクセス
0981デフォルトの名無しさん2010/10/05(火) 21:56:50
>>970か>>980
次スレをおねがいします
0982デフォルトの名無しさん2010/10/05(火) 22:10:25
「配列の配列」をはじめてきいて独習C#しらべているのだけど
このジャグ配列=配列の配列、という認識でおk?
int[][]= new int[][];のようなやつ
レス数が950を超えています。1000を超えると書き込みができなくなります。