1read 100read
2013年07月ゲ製作技術402: 【C#】 Managed DirectX 【.NET】 (117) TOP カテ一覧 スレ一覧 2ch元 削除依頼
Delphiでアクションゲームが作りたい!! Part2 (172)
RPGの作り方教えて下さい (104)
誰もが面白いと思えるネットゲームを作ってみる (121)
俺をHSPでSLGを作れるまで成長させるスレ (118)
衝突力 (102)
PlayStation Mobileプログラミング part 6 (378)

【C#】 Managed DirectX 【.NET】


1 :2007/11/15 〜 最終レス :2012/07/27
ここは とある スレッド
人気の 言語は C# …
びじゅあるすたぢおつかうと
めんどうなぷろぐらむもかんたんにできるよ!
という訳で、Managed DirectXについて語るべし。
話題を無理やり作ってでも語るべし。
DirectX Developer Center - Microsoft DirectX SDK ダウンロード
ttp://www.microsoft.com/japan/msdn/directx/downloads.aspx

2 :
初心者ですが3DCGのモデラー作ります。
http://pc11.2ch.net/test/read.cgi/tech/1195130143/

3 :
XNAとどう違うのん?

4 :
無いと思っていたら、よくぞ立ててくれたな。
だがわだいはまだない

5 :
http://pc11.2ch.net/test/read.cgi/gamedev/1017164698/
ここでやるんじゃなかったの?
結局そこでも盛り上がらなかったし話題も提供できないってのは

6 :
個人で書かれたドキュメントもあんまりないんだよな。
知名度自体無さそうだ

7 :
C#(笑

8 :
C#は別に問題無いだろ。

9 :
今時、C#はねーわ。

10 :
C#よりも今時のゲーム製作に適した言語ってなに?
C++/CLIか?使ったこと無いけど。

11 :
ファビョりすぎてワロス。一生気付かなくていいよ。

12 :
C++と比べてC#はどんくらい遅いの?

13 :
0.9倍くらい

14 :
0.9倍遅いということは1.11111…速いということになるが、お前の頭は大丈夫か?

15 :
C#で開発してるけど、コードが書きやすくて個人的には楽。

16 :
c++で作ってたら
あまりの手間に「俺、なんでこんなことやってるんだろう」ってむなしさをかんじ
C#に戻りました

17 :
DXSDKの2007年11月号には付録のマネージドサンプルが付いてないから注意だ!

18 :
床ポリゴンの任意のXZ座標に於けるY座標やポリゴンの角度を知りたいのだけど、どうすればいいのだろう。

19 :
http://slimdx.mdxinfo.com/wiki/index.php?title=Main_Page
これ面白そう

20 :
面白そう!
英語わかんないけどサンプルやってみるぜ
とりあえず最新(Nov 2007)のDirectXじゃないと動かないみたいね

21 :
使ってみたんだけど深いことやらないから今までと何も変わらないなw

22 :
黒歴史

23 :
kwsk

24 :
質問というかなんと言うか。
事の始めは30fpsの場合なら描画に関するメソッドをふっ飛ばせばいいやと記述したところから気づいたのですが。
通常の2サーフェイス、垂直同期した設定のデバイスで全体のwhileループ毎に1回Presentします。
このループ内で、2回に1回だけClear、BeginScene、(色々)、EndSceneの一連の描画メソッド群を呼ぶよう記述したところ、
フルスクリーンでは画面が点滅したのに対し、ウィンドウではしっかりと表示されました。
フルスクリーンで起きたことを疑問に思いフリップなどの原理を読んだところ、むしろウィンドウモードで起きていることが変なのだとわかりました。
ウィンドウモードでは何が起きているのでしょうか?

25 :
>>17
これはどうしてなんだろう
MicrosoftがC#を見限ったのかと思ったぞ

26 :
C#はともかくMDXはとっくに見限られてるぞ

27 :
今は有志が.NETからDirectXを使えるようにラッピングしてるSlimDXがいいのかな?

28 :
SlimDXいいよ
こんなのが欲しかった

29 :
いつだったかMS社員のブログでもちょっとだけ紹介されてたな

30 :
3dCGツールみたいなのを簡単に作れるかと思って
C#で作ってるんだけど、画面自体はpictureboxに描いて
操作はボタンとかtabとかで選ぶようにしたんだが
pictureboxにレンダリングするとボタンとかの表示が更新されない
どうやってすればいいの?

31 :
普通に作ったらそんなことにはならない

32 :
そうなのか、でも何とかできたよ。ありがと

33 :
Mesh.Intersectを使ってIntersectInformationに情報を得たのだが、これを使って三角形の各頂点の座標とかわかるのかな。
FaceIndexを使えばなんとかなりそうな気もしたけど、調べても使い方がよくわからない。

34 :
>3dCGツールみたいなのを簡単に作れるかと思って
この無謀さがたまらんわ。  このまま突き抜けて欲しい。

35 :
3dcgツールって独自規格なのか

36 :
もっと基本的なC#で2D製作のスレはありませんか?
もしくはC#でゲーム製作に必要なウェブページとか書籍とか紹介していただけませんか?
スレ違いかもしれませんが、よろしくお願いいたします

37 :
マイナーな道だという自覚を持つべき
C++は読めないとしんどい

38 :
>>36
うちも四角形専門で、最近C#+MDXに手を出したんですが
結局は SDK に付属のサンプルフレームワークを読み解くのがベストでした。

39 :
四角形専門カコイイ

40 :
VisualStudio2008でMDX使える?
切捨てでxnaとかに移行するの?

41 :
>40
使える
xnaはあれはあれで癖があるのでケース倍ケース
IME系弄ろうとしたらしんどかった>xna

42 :
MDXでやるくらいならJAVA3Dの方がマシ

43 :
さすがにVector型使うのにGCを気にしたくないわ

44 :
誤解されそうなので補足
コレクションじゃなくてベクトル型のことだよもちろん

45 :
C#ではスタックに積まれることが想定できるStructな構造体なんだっけ?

46 :
Structなっていうか、
静的な構造体だ・・・

47 :
C#コード書きやすいよね。
俺は同じシューティングゲームをHSP→C++→C#で作ったけど、
美しさで言えばC#が一番上だね。まぁC++でもコーディングが
悪かっただけかもしれないが…。でもC++のテンプレート機能
は使えるな。同じ機能のクラスを重複して書く必要ないし。
C#はそこをなんとかジェネリックで解決してくれればなぁ。
まぁクラスの複数継承ができればもっといいが…
あれってなんでできないんだろ?しないだけなのか?

48 :
多重継承は問題が多いから捨てた
C#3.0では拡張メソッド使ってそれっぽいことできるよ

49 :
基本的にインターフェースで解決しろ、って姿勢だからな
ベクトルが若干違うが、デリゲートって方法も一応あり
てか、多重継承って使ったことないんだが、あれってどう必要なの?

50 :
現状のインタフェースへの不満といえば、
・インタフェースに対して基本的な実装クラスが一つしかない場合、
委譲メソッドを長々と書くのが面倒。見る価値の無いコードが増える。
・クラスとインタフェースが別の定義と分かれているせいで、
やろうと思わなければインタフェース化されないことが多く、
既にライブラリ化されたクラス等を継承して拡張したい場合に
インタフェースが提供されておらず拡張出来ないことが多い。
だからさ俺は、クラス定義のメンバ毎にinterface修飾子を
付与出来るようにすれば、クラスとインタフェースを同時に考えるようになって良いと思うわけよ。
んで使う側ではJavaのようにextendsとimplementsで分けてだな、
同じクラス名から、クラス継承とインタフェース継承を自動的に分離して解釈するわけ。
こうすりゃインタフェース名の先頭につけるIとかもなくなってスッキリだろ。

51 :
個人的にはインターフェース好きなんだけどなぁ・・・
なんつーかインターフェースの場合は継承と違って、これ絶対多態性使うかんな!っていう意気ごみがある。
I○○って言う型の変数があれば、絶対何かを管理していると言うかなんと言うか。そういう安心感。

52 :
interfaceは実装を持てないから
結局、まったく同じ処理なのにプロパティやメソッドの本体を各所に書く必要がある。

53 :
実装を持たないことに意味があるんだろ

54 :
多重継承最強と

55 :
使い手によるわな

56 :
見る価値のないコードが増えるぐらいどーって事もないが
見る価値のないソースを作っているほうが大問題

57 :
見る価値のないコード ⊆ 見る価値のないソース

58 :
Cutting Edge DX9のアニメーションメッシュを参考にコード書いてるんだけど、
末端のフレームに兄弟フレームがあった場合どうなるん?

59 :
すまん勘違いだった。

60 :
>interfaceは実装を持てないから
>結局、まったく同じ処理なのにプロパティやメソッドの本体を各所に書く必要がある。
同意。
複数継承できないことの解決になってない。

61 :
まて、変数メンバとして基本クラスにしたかったクラスのインスタンスを持つのじゃ無理な話なのかそれ
それに3.0なら拡張メソッドとか言うびっくりな文法も存在するからそこら辺で代用できるでしょ。

62 :
あばばば、あげてしまった

63 :
static class Hogeable {
 public interface IHogeable { Hogeable.HogeableObject HogeableObject { get; } }
 public class HogeableObject { public int Value { get; set; } }
 public static void Hoge(this IHogeable hoge) {
  hoge.HogeableObject.Value += 1;
  Console.WriteLine(hoge.HogeableObject.Value);
 }
}
class MyClass : MyBaseClass, Hogeable.IHogeable {
 private Hogeable.HogeableObject hogeableObject = new Hogeable.HogeableObject();
 Hogeable.HogeableObject Hogeable.IHogeable.HogeableObject { get { return hogeableObject; } }
}
//MyClass obj = new MyClass(); for (i=0;i<10;i++)obj.Hoge();
こうすればインスタンスフィールドも持てるんじゃね

64 :
流石に面倒すぎやしないかw
まあusing2つ追加すればHogeableは消せるから使用側は割と楽だけど。

65 :
あれ、結局何がしたいんだ?
MyClassにフィールド追加してるんだったら
直接持ちたい機能を持ってるクラスをフィールドに追加
すればいい話でしょ。
拡張メソッドとか使用したところでオブジェクト生成して
使う側には便利だけど継承側はthisで参照できないからメリットないし


66 :
>>63
それを避けたいから複数継承したいだけだよ

67 :
間違った
>>61

68 :
>>63はただの冗談だよw
なんでそんなに継承したいの?
わざわざインターフェイス実装しなくても包含してプロパティで公開すれば済む話でしょ
ところで,thisで拡張メソッドは呼び出せるよ(thisを付けなければ呼び出せない)

69 :
冗談てw
ただ単にプロパティとか書かなくていいから継承したい
てか継承したいのはインターフェイスとは言ってないのだが
インターフェイスなら意味ないからクラスを複数継承したいと
あ、呼び出せるんだ。じゃあ便利だね

70 :
http://pc11.2ch.net/test/read.cgi/tech/1212972014/

71 :
シャドウマップ用にテクスチャをつくりたいのですが
CreateTextureのような関数はないのでしょうか?

72 :
自己解決しました

73 :
vista bus spなし .NET3.5
DirectXのSDKを複数入れてたんだが、
整理目的でアンインストールしたらManaged DirectX使ったプログラムが動かなくなっちゃった
DLLなくなってないし、コンパイル通るのにな・・・

74 :
米国時間23日、マイクロソフトは統合3Dソフト「trueSpace 7.6」の無償提供を開始した。
最新バージョンの7.6では、マイクロソフトが提供する地図検索サービス「Virtual Earth」へ、
3Dモデルを直接書き出す機能が追加されている。Googleが「Google Earth」向けに3D CAD
ソフト会社である@Last Software社を買収し、3Dモデリングソフト「Google SketchUp」を無償
公開したことに対抗する目的と思われる。
trueSpaceは、モデリング、アニメーション、レンダリングと、放送およびポストプロダクション分野まで
カバーする統合3Dソフトウェア。trueSpaceは、モデリング特化型のSketchUpとは違い、3ds Maxや
LightWave 3Dなどと競合する製品を無償化したものであり、機能が豊富な分、操作性はやや難しい
ものとなっている。開発はマイクロソフトが2008年2月に買収した米Caligari社が行う。
この無償化は「Virtual Earth」の普及を主目的としているようだが、標準でDirectX9及びXNA
Frameworkにおける3Dデータの標準形式である「Xファイル」での出力に対応しており、trueSpaceで
作成したモデルデータ及びアニメーションデータはXNA Game Studioなどから直接利用することが
可能である。また、ポストプロダクション向けということもあり、非常に高品質なプリレンダリング動画の
出力なども可能である。
XNA Game Studioで作成されたXbox360用の同人ソフト販売サービスも発表されていたが、同人分野
では1本数十万円という価格帯が一般的な統合3Dソフトの導入が難点であった。このtrueSpaceの
無償提供で、XNA関連分野の一層の活性化が期待される。
http://news4xbox.blogspot.com/2008/07/3dtruespace-76.html

75 :
>>73
MDXランタイムだけで動作するはずだから、9.0c2006April以降を試しに入れなおしてみたら?

76 :
>>75
サンクス
2006AprilのSDK入れたらちゃんと動作してくれた
どうやらアンインストール時にランタイム関連まで削除してしまったようだ

77 :
エンターブレイン、ツクール最新作「アクションゲームツクール」を発表、XBOX360/XNAにも対応
http://news4xbox.blogspot.com/2008/09/xbox360xna.html

78 :
ソース記事から見ていつもマルチ乙なゲハ厨さんか
R
RじゃなくR

79 :
過疎ってるの?死ぬの?

80 :
まさか>>52>>60のような初心者マークはもういないよな。

81 :
class InputManager
{
private int pushed_tick = 0;
private Device DInDev;
#region
public void init()
{
DInDev = new Device(SystemGuid.Keyboard);
DInDev.Acquire();
}
public ButtonType KeyDown
{
get
{
//入力してから一定時間の間入力受け付けない(単位:ms)
if (System.Environment.TickCount - pushed_tick < 60) return ButtonType.NONE;
pushed_tick = System.Environment.TickCount;
KeyboardState state = DInDev.GetCurrentKeyboardState();
:
}
}
#endregion
}
init()を実行すると「DLL 'C:\Windows\assembly\GAC\Microsoft.DirectX\1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.dll' は、OS ローダー ロック内でマネージ実行を試行しています。
DllMain またはイメージ初期化関数内でマネージ コードを実行しないでください。この動作は、アプリケーションをハングさせる原因になる可能性があります。」という例外が吐かれる。これを解決する方法はない?

82 :
x64環境?

83 :
>>82
x86環境だが・・・
解決した。
DirectXを参照に追加するのを忘れたのが原因だった。
スレを汚して済まん

84 :
それでコンパイル通るのか・・・
64bitOSだと、AnyCPUでそういうエラー出るけどな

85 :
なんたる閑散ぶりっつ。

86 :
>>85
さっさと諦めてXNAに移行しろよ

87 :
XNAには人居るのか・・・?

88 :
MDXよりはマシ
XNAが嫌ならSlimDX池

89 :
助言に従いslimdxに行ったけど、サンプルの大半が動かん。
それも初期化部分で。orz
d3dx9のほとんどのバージョンのdll入っているんだけどなあ。

90 :
具体的にバージョンとか試したサンプルとかはどれ?
もし64bitOSならAnyCPUだとまずいケースが多いよ。
とりあえずx86に統一してしまうのがいいかも

91 :
とりあえず
August 2009のDirectX SDKとSlimDX SDK を入れて試してみてよ。
弄ってなけりゃ32/64あまり気にせず動くと思うよ

92 :
おわ!即レスしてくれてたのね 気づかんかったorz
改めて トントン
明日 再チャレンジしてみるよ

93 :
試したけど、ダメだった。
xp32bit sp3 /directx August 2009 /slimdx 最新版。
試したサンプルはslimdxに付いてくる奴。
ChangeDevice で D3DERR_NOTAVAILABLE: Not available 。
日本語に翻訳されてる方のページ見るとバージョンが違う場合に出やすいようだけど、
もうまんどくさい。orz
opentkとかでopenglに流れます。
あ、そうそうディスプレイカードはnvidiaの7900gt系だと思う。
ありがとうございました。w

94 :
すまない。原因がわかった。
maxvistaっていう日本ではもうメンテナンスされていないソフトを使って
ノートパソコンをセカンドディスプレイに使用しているのが原因だった。
さてさて、0番目のディスプレイのみ使用とすると動くようになるのか
そもそも、そのようにするにはどう書けばいいのか
初心者には敷居が高い。orz

95 :
なるほど、動くやつはDirect3D9の中だとMiniTriくらいかな?
SampleFramework使ってるやつはDeviceSettingsあたりいじるといいのかなあ

96 :
つうか別にSampleFramework使わなくてもいいのでは?
しかしSlimDXはやっぱり知名度は低いね。
ぐぐっても試してみたとかそんなブログ記事は見つかるのだが。

97 :
世の中に腐るほどある非公式DirectXラッパーの中でこんだけ知られてりゃ上等だろ

98 :
こんだけ知られてりゃ上等だろ
こんだけ知られてりゃ上等だろ
こんだけ知られてりゃ上等だろ

99 :
>>97
そう言われればそうなんだけどね。
まあ自分で試しなさいってことだな。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
【参加者】ゲームを一緒に作ろうぜ【募集】 (107)
次世代コミュ製作 C++,P2P実装で作ろうぜ★2 (168)
---PRG CREATOR Pro--- (103)
Like A Quest Hyperついて (104)
画像依頼スレ (106)
【PS3】ゲームやろうぜ!2006 2【死にハード】 (108)
--log9.info------------------
逆転裁判4を書き直す (171)
【ゴールド】♪リズム天国総合 41拍目♪【無印】 (102)
【3DS】いつの間に交換日記 7通目 (825)
【3DS】ザ・ローリング・ウエスタン 2hits (852)
新・光神話 パルテナの鏡 プレイヤー晒しスレ6 (308)
【3DS】ワンピース アンリミテッドシリーズ【WR】 (104)
【3DS】ジュエルペット 魔法のリズムでイェイッ! (482)
モンハンシリーズの世界観・設定を語るスレ25 (341)
【3DS】とびだせどうぶつの森 公共事業関係3 (215)
【3DS】スーパーストリートファイターW交流スレ (589)
【3DS】戦国無双Chronicle総合part94【クロニクル2】 (263)
【PSP】The 3rd Birthday【パラサイト・イヴ】39人目 (845)
大合奏!バンドブラザーズ総合183セッション目♪ (273)
【PSVita】NAX Music Player (219)
カルドセプト3DS 初心者&質問スレッドpart10 (626)
【DS】風来のシレン5 フォ-チュンタワ-と運命のダイス 105F (139)
--log55.com------------------
2018 FIFAワールドカップ ロシア大会 9□
リオネルメッシとは一体何だったのか・・・過大評価
2018 FIFAワールドカップ ロシア大会 10□
【B.LEAGUE】富山グラウジーズ70【帰化枠関係ねえ】
★山形のミニバスを語ろう☆Part5
北九州 バスケミニ〜中学〜高校〜男子メインNo.5
【B.LEAGUE】千葉ジェッツ23
山形の高校バスケを語ろう【Part1】