- 1 名前:名前は開発中のものです。 mailto:age [02/03/27 02:44 ID:???]
- C♯で3Dゲームを作る人のスレ
情報交換・アドバイスなんでもあり
- 187 名前:名前は開発中のものです。 mailto:sage [2006/01/28(土) 13:57:59 ID:sMNdRwjL]
- 1にも2にも書籍が足りないよ
大丈夫かねC#
- 188 名前:名前は開発中のものです。 [2006/01/28(土) 14:12:49 ID:gWzWm1wV]
- >>184と>>185の間に一年も時間の隔たりがあるのにワロタw
- 189 名前:名前は開発中のものです。 [2006/01/28(土) 14:56:48 ID:PGCHDvKB]
- >>169
>それからC/C++厨よおまいらは本当にC/C++分かって物をしゃべっとんのか? >そもそもそこまでマシン速度を要求するほどのすごいゲームをおまいら作っとんのか! (中略失礼) >本来工業用のアプリならC++で作るの当然だが3DゲームでDX9使ったりするならC#だ 3DモノやってるC++屋だが、3Dは表示できればいいってもんじゃない。 地形との当たり判定とか、マップが広いと、計算量が膨大になるので、ある程度大きい ものを作ろうとすると、処理性能で妥協はできないです。 と、書いてて気づいたが、これ2年近く前の書き込みかorz >1にも2にも書籍が足りないよ >大丈夫かねC# セミプロ以上の製作者はC++に流れるからのぅ。 プロ向けのVC++と素人向けのVBを除けば、どの言語も書籍が足りん。 Javaはゲーム用としては実用性に難有だし。
- 190 名前:名前は開発中のものです。 mailto:sage [2006/01/28(土) 15:13:05 ID:YfWqjfTx]
- 64bit機の発売が迫った今こそ.NETとC#に乗り換える奴が増えそうなものだが
VBでもMC++でも.NET開発できるし、C#って本当に微妙な言語だよなぁ・・・ JAVAプログラマを取り込めた気もしないし、C#を何とかしてくれMS
- 191 名前:名前は開発中のものです。 mailto:sage [2006/01/28(土) 15:55:05 ID:XJ+8r7V6]
- >>186-187
洋書なら多いんだけどな 日本のライターは完璧な商業主義だから翻訳するなら他の本を選ぶし、 日本語版MSDNに書いてあるリファレンスレベルの入門書しか書かないし ほんと、C♯に限らずMSの最新技術スキーは地獄だぜフゥーハハァー
- 192 名前:名前は開発中のものです。 mailto:sage [2006/01/28(土) 17:53:08 ID:PhRDCvAj]
- >>172
徹底的なオブジェクト指向プログラミングは、 ゲーム作成に向いているのかという問題があるような気がするなぁ。 ゲーム作成で、デザパタとか使っている人いる?
- 193 名前:名前は開発中のものです。 mailto:sage [2006/01/28(土) 18:34:11 ID:1zN1tpQ6]
- www.purple.dti.ne.jp/sslt/
C#で3Dのリバーシ作ってみました。
- 194 名前:名前は開発中のものです。 mailto:sage [2006/01/28(土) 18:46:20 ID:YfWqjfTx]
- うむ、やってみようと思ったがエラーが起こった
やはり俺のノートPCじゃVRAMが足らんのかな
- 195 名前:193 mailto:sage [2006/01/28(土) 20:59:29 ID:1zN1tpQ6]
- >>194
VRAM32Mでも動作するので、 DirectX Sample BrowserのManagedサンプルのどれかが動作するなら、 アプリ側に問題があります。 すみません。 .NET FrameworkとManaged DirectX のランタイムが 入っていることが動作条件になっています。 なにが原因か表示できれば良いのですが。
- 196 名前:名前は開発中のものです。 mailto:sage [2006/01/28(土) 21:07:48 ID:YfWqjfTx]
- >>195
楽勝でVRAM32Mもありません、どうみても俺のノートPCに問題があります 本当にありがとうございました
- 197 名前:名前は開発中のものです。 mailto:sage [2006/01/29(日) 06:59:06 ID:m3zd7e+5]
- >>192
使ってる。 というか.NET自体がデザパタ使ってるし。 2DゲームならC#でも問題ない。 多分3Dでもモノによってはいけるかと。 2DならHSPとかでも十分。とか言う意見もあるかもしれんが 生産性で言ったら多分C#の方が全然良い。と思う(ていうかHSP詳細知らんw)
- 198 名前:名前は開発中のものです。 mailto:sage [2006/01/29(日) 22:59:33 ID:KgDiru1o]
- HSP2 以降は変わったかもしれないが……HSP は、全変数がグローバルなのが何とも orz
少し大きなモノになると、たちまち破綻するよ。
- 199 名前:名前は開発中のものです。 mailto:sage [2006/02/08(水) 21:54:47 ID:QSUPp/+v]
- VS2005(及びExp)でC#や.NET人口増えるかな?
- 200 名前:名前は開発中のものです。 mailto:sage [2006/02/11(土) 08:57:52 ID:FJHhmPxN]
- 無料版あるなら使ってみるか〜、という声はあちこちで聞くし、少しは増えると思う
おいらもDelphiからC#に乗り換えたし
- 201 名前:名前は開発中のものです。 mailto:sage [2006/03/03(金) 16:39:14 ID:p9sAA+CF]
- Microsoft Visual C# 2005 Express Editionでゲーム開発
ビデオチュートリアル(2D&3D) ttp://www.digipen.edu/main/Webcast このチュートリアル作ってるデジペンは任天堂アメリカも 出資してるアメリカ最強のゲーム専門学校。
- 202 名前:名前は開発中のものです。 mailto:sage [2006/03/32(土) 23:42:26 ID:AjFxKFkN]
- XNA FrameworkでC#がXbox360で動くよ、といっても日本じゃ
インパクトなさげ。
- 203 名前:名前は開発中のものです。 mailto:sage [2006/04/02(日) 01:26:49 ID:anYS10JJ]
- Warp3D
High performance c# based software renderer. ttp://alansimes.blogdns.net/cs/files/default.aspx
- 204 名前:名前は開発中のものです。 mailto:sage [2007/01/27(土) 01:11:00 ID:12dXRPli]
- 書籍のパソコン教科書シリーズのVisualC#の解説書の付録CDでインストールしたんですが
framework2.0 はインストールされましたがSDKはされませんでした。(入っていない?) それでも普通にビルドできるんですが、frameworkのSDKはどんなときに必要になるんでしょうか?
- 205 名前:名前は開発中のものです。 mailto:sage [2007/01/27(土) 01:11:51 ID:12dXRPli]
- 誤爆しましたorz
- 206 名前:名前は開発中のものです。 [2007/10/05(金) 01:07:07 ID:RS4GR0/A]
- C#スレ発見!
- 207 名前:名前は開発中のものです。 mailto:sage [2007/10/05(金) 01:30:21 ID:brA74PS+]
- 音楽の♯とかでタイトルかかれたら検索できるわけないwww
- 208 名前:名前は開発中のものです。 mailto:sage [2007/10/05(金) 01:42:36 ID:SzSxFYQc]
- >>207
せっかくだからこのスレ使ってみろよ 意地張るこたねー。力抜け
- 209 名前:名前は開発中のものです。 [2007/10/05(金) 02:25:07 ID:brA74PS+]
- と言うわけで、C#+ManagedDirectXで3Dゲームを作るのを最終目標に普及。
ただし3D周りはいじくったことありませんが。 てな訳で適当に質問どぞー
- 210 名前:名前は開発中のものです。 mailto:sage [2007/10/05(金) 02:50:09 ID:brA74PS+]
- C#とManagedDirectXの現状
C#について ・.NET言語の一種で、普及率はあまり高くない。 ・従来のランタイムとは異なる.NET Framework上で動作する ・C++より遅い。 ・マイクロソフトのやる気がない。 ・VisualStudio2005に対応してるのはC#2.0まで。C#3.0は未対応。 →C#2.0を前提にいきます。 Managed DirectX (MDX)とは ・DirectXとは別に存在する(.NET用に書き直されたとも言う)ライブラリ群。 ・ランタイムに実は同伴されているが、普通の人はその存在にすら気づかない。 ・なかなか微妙な経歴を持つ。(後述) .NET言語?、.NET Framework(fw)って? ・.NET Frameworkとは、Win32APIにかわるAPI兼標準ライブラリ。なはずだったもの。 ・.NET言語は次のものがある。C#、マネージドC++、VB.NET、J#など。 ・いずれも、基本的にC++二比べ言語体系がシンプルかつ作りやすくなっている。 ・なお、.NET frameworkのライブラリはC#を主軸に考えられていると言っても過言ではない。 ・基本的に.NET言語同士では、はどれを使っても本質的な速度差はでない。(内部的に同じ) MDXの経歴 ・1.0が公開される。 ・fw1.1に対応したMDX1.1が公開される。 ・fw2.0に対応するMDXを作るため、2.0ベータが公開される。 ・MDX2.0ベータ、開発中止。XNAの開発が決定、進む。 →MDX2.0のDLLは誤って使わないように。実行できない。 ココまで微妙な立場もすごい。
- 211 名前:名前は開発中のものです。 mailto:sage [2007/10/05(金) 02:55:37 ID:brA74PS+]
- そこまでわかっていて普及活動する理由/XNAになびかない理由
・作るのが簡単だから。 XNAは以下のことが不便。 1、Windows2000以前での動作不能 2、XBox360用コントローラーしか認識しない 3、XNAを使ったソフトの実行には、XNA Frameworkが必要。 →2がどう考えても致命的です。
- 212 名前:名前は開発中のものです。 mailto:sage [2007/10/05(金) 05:51:28 ID:ymBkO7W+]
- MDXって正直どんな感じ?
スクリーン切り替えでロストしなくて文字描画ができる テスクチャーが作れるんだったら、ありかな、って思うんだが >>211 2のデメリットはC++経由でDirectInputのライブラリ作れば解決する問題だったりしない? まぁ、俺は使用OSが2000だから導入できないけど
- 213 名前:名前は開発中のものです。 mailto:sage [2007/10/05(金) 17:33:00 ID:3NiZkGUV]
- >>211
4、シェーダー2.0必須 なのも痛いよな
- 214 名前:名前は開発中のものです。 mailto:sage [2007/10/06(土) 01:22:16 ID:ZutdyDT9]
- >>213
初耳。最新のMDXもシェーダがある程度対応してるGPUじゃないともっさりすると思うけどね。 >>212 こんだけマンセーしてる割に知識がなくてすいません。 原則として、多少楽になっているものの、大抵は普通のDirectXと同じです。 フルスクリーン切替や、フルスクリーン時の外部からの割り込みでグラフィックデバイスがロストするのは仕様です。 ただし、適切なリセットを行えば再構築されるはずです。(通常のDirectXでもそうでは?) 少なくともスプライトは特に何も問題は発生しません。 文字描画も普通のDirectXと大差はありません。Fontクラスをインスタンス化すれば、 その後はDrawTextで描画できます。 ただし試してません。今はちょっと込み合ってるので日曜まで待ってorz ・・・質問に対する答えになってるか不安だぜ・・・。
- 215 名前:211のつづき mailto:sage [2007/10/06(土) 01:25:56 ID:ZutdyDT9]
- 開発環境まとめ
・.NET Framework 1.1 (C#1.1、MDX1.1の機能を使用するに必要) ・.NET Framework 2.0 (C#2.0の機能を使用するの必要) ・VisualStudio 2005 C# Express Edition (総合開発環境。かなり重い) ・↑のアップデータ (これをあてないと、ヘルプが正常に機能しない) ・DirectX ランタイム (.NET言語では開発ライブラリ = 実行ライブラリ) ※ DirectXランタイムを更新すると、最新のdllが使えるようになる。 ただし、最新のdllを開発時に使用すると、実行側でもそのランタイムが必要になる、と言うことである。 ちなみに自分は 2007 Juneのdllを使用している。 動作必要環境まとめ ・DirectX9.0c ランタイム (開発時のdllに対応したバージョン以降のもの。) ・.NET Framework1.1 (大抵は入っているはず) ・.NET Framework2.0 (こちらは入っていない可能性大。)
- 216 名前:名前は開発中のものです。 mailto:sage [2007/10/06(土) 01:41:27 ID:ZutdyDT9]
- >>212後半
そこまでいったらそもそも最初からC++で組んだ方が楽な気がするし、実用性も高いと思う。
- 217 名前:名前は開発中のものです。 mailto:sage [2007/10/06(土) 07:34:48 ID:PjwFQTia]
- >>214
具体的に言うと、DirectX8(7かも)からビデオとメインメモリの両方にデータを持って ロストが発生したとき、自動的に復旧するというシステムが DirectXとして側に追加されているわけなんだが… で、スクリーンに文字はかけてもテクスチャに文字を書くには どーにかこーにかしなきゃならなくて、その小細工が DirectX8になったとたんに出来なくなってしまったと DirectX9からはなんとかなるとか聞いたんだけど、まだ調べてないんで その辺どうなんだろう?ってのが趣旨 ビデオカードには指定したフォントで文字を書くって機能は無いから これをするのはなかなか厄介だ、って記憶だけある DirectX9フルサポートと考えていいのかな?
- 218 名前:名前は開発中のものです。 mailto:sage [2007/10/06(土) 08:00:48 ID:q3E/M8lC]
- MDX1.1は、DirectXで言えば、何相当になるんでしょ?
MDX2.xは(消えてしまったけど)何相当だったんでしょ? というか、MDX1.xで完成されていたなら、MDX2.xの意味はなかったと思うのですが、どうなんでしょ
- 219 名前:名前は開発中のものです。 mailto:sage [2007/10/07(日) 00:57:54 ID:KL55DreU]
- >>217
それは出来そうに無いかもしれません・・・。 ただ、フォントインスタンスの ・GetGlyphdata ・PreloadFont、Glyph、Text あたりを使えばテクスチャを入手したり、ビデオメモリに文字情報を配置できるようです。 >>218 MDXのナンバーは、どの.NET Framework バージョンの上に作られているかを示してる(はず・・・)。 なので、DirectXのバージョンとは直接の関係無いと思われます。 仮に完成していれば、開発、実行時に.NET fw1.1は入らなかったでしょう。
- 220 名前:名前は開発中のものです。 mailto:sage [2007/10/07(日) 16:08:47 ID:0tTgQJl5]
- > なので、DirectXのバージョンとは直接の関係無いと思われます。
いや、機能的な話です。 DirectX8総統だったら、DCとれなかったりしますよね?
- 221 名前:名前は開発中のものです。 mailto:sage [2007/10/07(日) 19:51:19 ID:KL55DreU]
- あっはっは、全然わからない・・・・orz
不安なので調べました。 DC (デバイスコンテキスト) GDI+などを使用するときに取得する必要があるものですね。 取得出来る気がしない・・・。通常のDirectxは出来るみたいなこと書いてありましたが。調べが足らないかな・・・ .NET言語はとにかく簡単に開発するのが目的なので、あまりそういう知識が無いまま来てしまいますね。 Directxでリフレッシュレートにあわせた更新をするウィンドウを作るのも、 全てコミコミで60行前後で出来てしまいますし。 (決まりきった手順など、.NET系言語ではではデフォルト設定が存在し作れるようになった、というところがが大きいですが) 例えばMDXとは関係ありませんが、C#で純粋にウィンドウを作るだけならば、外部で多少設定が必要ですが、 以下のコードで済みますしね。 class SampleClass : Form // ウィンドウを作るためのクラスを継承した。 { } static class SampleEntryPoint() { static void Main() { SampleClass hoge = new SampleClass(); // コンストラクタでクラスからインスタンスを作成 hoge.show(); while (hoge.Created) { Application.DoEvent(); } } }
- 222 名前:名前は開発中のものです。 mailto:sage [2007/10/10(水) 02:24:47 ID:QoU150o2]
- >>221
そう、まさにDirectX8でなくなったのがそのGetDCなんだな ただ、非難轟々だったらしく、DirectX9で復活したらしいという話だけ聞いた って言っても、そもそも.NETでDCが取れたところで、 DCを使ってどーのこーのできないと意味が無いね その辺の関数がごっそり.NETに置き換わっている気がする
- 223 名前:207 mailto:sage [2007/10/11(木) 09:50:19 ID:0CzcpLju]
- やっぱりコテったほうがいいのかな?
ぐぐればすぐに出てきたので報告までに。 ttp://www.microsoft.com/japan/msdn/academic/Articles/fun/04/ .NETの標準ライブラリ内にある画像描画関係のライブラリ(System.Drawing)はGDI+を使っているようです。 またこのライブラリに存在するPoint構造体、Size構造体やRectangle構造体 (いずれもXY座標や画像のサイズ、およびその組み合わせへの使用を想定した構造体) などをMDXでは、割と引数等で使っているので、基本的にグラフィック関係をプログラムするときは System.Drawingライブラリも参照しておくことがほとんどです。 基本的に System.Drawing Maicrosoft.DirectX Maicrosoft.DirectX.Direct3D のライブラリがあれば画像の描画には困らないと思います。 2Dゲームならばスプライト関係のみでほとんど画像描画はできます。
- 224 名前:207 mailto:sage [2008/01/13(日) 23:25:13 ID:oBLdPERd]
- 誰も見ていないのを承知で思い出したかのように4ヶ月ぶりにレスしてみたり。
さらにスレは3Dを作るのが目標なのに、まったく3D関連実装してる気配がないライブラリ。xファイルとか使ったことないし。作り方わからんし。 ・Framework.Initialize() ・・・ゲーム製作に特化した状態にDirect3D、Input関連を初期化する関数 ・Framework.Mdx.Accelerate() ・・・AltEnter、CtrlEnter、ShiftEnterが押されたか判定、モード切替、Fps切替、実装未定 ・Framework.Mdx.WindowClose() ・・・ウィンドウを閉じる。 ・Framework.Mdx.WindowModeToggle() ・・・モード切替。二つ↑のAltEnterはこれが呼ばれる。 ・Framework.Mdx.WindowShow() ・・・ ライブラリ内で保持してるフォームインスタンスのShow()そのまま ・Framework.Mdx.WindowCreated ・・・ライブラリ内で保持してるフォームインスタンスのCreatedそのまま ・Framework.Mdx.WindowTitle ・・・タイトルバーに表示される文字列 (代入可) ・Framework.Mdx.Graph.DrawText(引数あり) ・・・非実用的デバッグ用。文字を表示したいときに。 ・Framework.Mdx.Graph.MakeTexture(ファイル) ・・・テクスチャを返す。抜き色等は設定しないので事実上dds専用。 ・Framework.Mdx.Graph.SpriteBegin() ・・・もともとあるSpriteBegin(アルファブレンド)そのまま。 ・Framework.Mdx.Graph.SpriteEnd() ・・・もともとあるSpriteEnd()そのまま。 ・Framework.Mdx.Graph.SpriteDraw(色々) ・・・2D画像描画に使用。 ・Framework.Mdx.Graph.SpriteDrawFixed(色々) ・・・2D画像描画に使用。こちらは自動で画像の中心が基準になる。 ・Framework.Mdx.Graph.Update() ・・・垂直同期を取りつつ描画する。(FpsSkipが1か2だと描画を間引く。) ・Framework.Mdx.Graph.Fps ・・・現在のFps (整数値、1秒ごとに更新するタイプ) ・Framework.Mdx.Graph.FpsSkip ・・・現在のFpsスキップ値。 (代入可。0〜2)↑のAccelerate()のCtrlEnterはこれを++してる。 ・Framework.Mdx.Graph.Render ・・・関数ポインタ。描画関連の処理は全てひとつにまとめた後、このポインタに代入する。
- 225 名前:続き mailto:sage [2008/01/13(日) 23:27:45 ID:oBLdPERd]
- ・Framework.Mdx.Input.Poll() ・・・入力機器関連を全て更新
・Framework.Mdx.Input.KeyFlg(対象のキー) ・・・押されていればtrue ・Framework.Mdx.Input.JoyFlg(対象のデバイス、対象のボタン) ・・・押されていればtrue ・Framework.Mdx.Input.JoyX(対象のデバイス) ・・・-1000〜1000で返る ・Framework.Mdx.Input.JoyY(対象のデバイス) ・・・-1000〜1000で返る 近く実装予定 ・キーコンフィグ用のクラス ・シューティングの表示物向けクラス ・シューティングの弾幕を作成するための関数 ・シーンを管理する機構 ・音の再生に関するクラス ・カメラ、ワールド座標の実装、3Dスプライトの実装 いつか実装予定(3Dモデルが自分で作れるようになったら。) ・メッシュ、マテリアル、テクスチャをまとめた≒3Dモデルをそのままクラス化したクラス ・↑と何かを利用して、スプライトのように簡単に3Dを描画する関数。
- 226 名前:名前は開発中のものです。 mailto:sage [2008/01/19(土) 02:51:53 ID:MZ4kIRhC]
- Managed directXでゲーム作成中なんだが、まともな資料やコミュニティがないので困るぜ。
どこか質問出来るとこは無いのだろうか。公式にもカテゴリ無いしな。
- 227 名前:名前は開発中のものです。 mailto:sage [2008/01/19(土) 15:32:37 ID:EG6dJFOe]
- Managed って氏んだよね?
- 228 名前:207 mailto:sage [2008/01/19(土) 19:53:52 ID:wecEoPCw]
- >>227
サンプルは少し前のSDKから添付されなくなったけど、ランタイムにはManagedが動くためのファイルはまだあります >>226 基本的な情報なら ttp://msdn2.microsoft.com/ja-jp/coding4fun/default.aspx ttp://www.microsoft.com/japan/msdn/directx/japan/dx9/default.aspx ttp://www.microsoft.com/japan/msdn/community/gdn/ShowForum-0.aspx ここら辺でしょうか 他にも個人サイトが3つ4つあると思います それでも足らない場合は、ネイティブDirectXのほうを見れば大体は解決すると思います。
- 229 名前:名前は開発中のものです。 mailto:sage [2008/01/19(土) 22:55:03 ID:lZOHlVzA]
- D3DRMみたいにOS変わったらなくなりそうで怖いな
- 230 名前:名前は開発中のものです。 mailto:sage [2008/01/20(日) 03:29:23 ID:FGM0szlo]
- >228
お、コミュニティのアーカイブは知らなかった。ありがとう。 しかし道程は遠そうだ。 いきなりManaged directXで3Dゲームを作ろうというのは無理があるのかね。
- 231 名前:名前は開発中のものです。 mailto:sage [2008/01/21(月) 22:16:13 ID:QkkzJVl3]
- 2Dのゲームは作ったが3Dは経験が無いので、
ぜひ>>230が道しるべを作っていってくれ。
- 232 名前:名前は開発中のものです。 mailto:sage [2008/02/09(土) 22:26:04 ID:Ynomr7lQ]
- >>224のFramework名前空間がなんなのか気になるんだけど。
XNA?
- 233 名前:207 mailto:sage [2008/02/10(日) 05:08:02 ID:/G3xnOO+]
- >>232
Frameworkは自作中のstaticクラスです。眠い。
|

|