【C#】 Managed DirectX 【.NET】 (117)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
女の子もゲーム作りたいっ!! (187)
モナーのアクションゲー作りました (144)
ゲーム製作者の進化の過程を書き込むスレ (179)
【ADVP】アドベンチャープレイヤー05.adv【アドプレ (138)
RPGツクールドット絵素材プチコンテスト (108)
■ 移転ですー (283)
【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
そう言われればそうなんだけどね。
まあ自分で試しなさいってことだな。
- 100 :
- DirectSoundで、セカンダリバッファをファイルからじゃなく、
リソースからは読み込み出来ないみたいだね。MDX1.1
- 101 :
- たしか出来るけど、渡す値が通常の画像とかと違ったきがする。
- 102 :
- public static Stream GetStreamFromManager(string filePath, ResourceManager manager)
{
string name = Path.GetFileNameWithoutExtension(filePath);
string extension = Path.GetExtension(filePath);
if (extension.Equals(".wav", StringComparison.OrdinalIgnoreCase))
{
return manager.GetStream(name);
}
return new MemoryStream((byte[])manager.GetObject(name));
}
参考に。vsのリソースマネージャに管理されてるリソースをStreamにして返す関数。
PathはSystem.IO、ResourceManagerはSystem.Resources名前空間のやつ。
vsのリソースマネージャはプロジェクト名.Properties.Resourcesクラスから取得可能。
元のファイル名が空白文字を含んでたりすると無効だが、こっからStream経由で読み込めばセカンダリバッファもok。
- 103 :
- C#+MDXで開発してる者です。
DirectInputのジョイスティックを振動させる方法で行き詰ってます。
設定ファイルを読み込んで振動させる?方法と
二つある軸をそれぞれ設定?して振動させる方法があるようなんですが
日本語でわかりやすいサンプル掲載してるサイトなどご存じないでしょうか?
意を決してくされMSDNに行ってみましたが、
チュートリアルのリンクが切れてたりで役に立ちませんでした
- 104 :
- MDXもうやめてはどうか。
というのは置いといて、もともとMDX特有というのはないので
他の環境でのやり方調べてMDXに応用しては?
資料少ないけどそれで何とかなると思うよ。
- 105 :
- ttp://princess-tiara.biz/directx/?chapter=16
- 106 :
- >>103
てか公式に日本語ドキュメント存在するぞ。2004年版だが十分わかる。
- 107 :
- 開発環境VisualStudio2008EE
MDXにて、
Microsoft.DirectX.DirectInput
で入力を取るプログラムを作成したのですが、
構成マネージャReleaseビルドに変更して、ビルドし、他のPCで実行しようとすると、
動作を停止しました となり落ちてしまいます。
これはどのようなことが原因として挙げられるでしょうか?
試してみた項目
・ホスティングプロセスを無効
・.net Frameworkのバージョンを変更
・VisualStudio2010でReleaseビルド
いずれも駄目でした
- 108 :
- 実行する側にも対応した.netflameworkがインストールされていることを
確認しております
- 109 :
- DirectXが入っていなかったりして・・・
- 110 :
- >>109
レス感謝します!
Microsoft DirectX SDK (February 2010)
がインストールされていることを確認しています
- 111 :
- MDXのバージョン類についても調べたところ
・1.0で、もう廃れたものらしい
・あれこれ追加でインストールを要求するソフトというのもまずい
C++でいじることにします。
できたらフォームで簡単にキーコンフィグとか楽だったのですが・・
ありがとうございました
- 112 :
- SlimDXでいいじゃない
- 113 :
- 何を使おうが自由。信者の布教活動は他所でやれ
- 114 :
- >>111を見たら誰でもそういうと思うけどな
別に布教とかじゃねーよ。俺が主に使うのはXNAだし
- 115 :
- http://www.dwahan.net/nyaruru/getreadyformdx/runtime.html
- 116 :
- つか、もうさ、DirectXは終わりだから辞めた方がいいよ
Directx10とか11ってもうホビーユース完全にあきらめたでしょ
Directxは9まで。よって、消えゆく技術
- 117 :2012/07/27
- つかWindows8時代のC#とかDirectX、XNAってどうなるの?
教えてエロい人!
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
ゲームの作り方2〜悪霊の神々〜 (418)
妖精さんと一緒に戦うシューティング (145)
妖精さんと一緒に戦うシューティング (145)
モーションキャプチャーシステム (349)
SLG作ろうと思うんだが、アドバイスくれ (114)
サウンドの作成みんなどうしてる? (147)
--log9.info------------------
ヒンヌー教 (443)
774保管庫5 (624)
ほえほえ詐欺 (477)
魔法少女まどか☆マギカinCCさくら板 (262)
栃木県さくら市 (442)
ロージーたん総合スレ^^ (373)
男でショタコンですが何か質問ありますか? (147)
スーパーロボット大戦 (815)
美紗緒たんにマウマウするか7 (607)
クッキンアイドル アイ!マイ!まいん! (408)
ミルモでポン!(;´Д`)ハァハァスレ 1枚目 (523)
さくらとすてきな看板 2枚目 (304)
ナースウィッチ小麦ちゃんマジカルて(・∀・)イイ 2 (912)
攻殻機動隊の素子タンはエロカワイイ (209)
さくらちゃんを巨大化させるスレ 2m (321)
さくらの無敵のおまじない 「絶対!大丈夫だよ!」 (168)
--log55.com------------------
好きな人の好きなとこを語るスレ Part.11
想い人に言いたいことを書き込むスレ part91
あなたのやめたいこと
猫だらけ
好きな人の好きなところ★46
アナタの嫌いな人ってどんな人? Part.16
【ワ無し】好きな人と何したい?何してほしい?28
アナタの好きな人ってどんな人?part64