鬱だ氏のう DirectX (Part 7)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
02/12/10 17:34ID:tkEwMMYm初心者用相談室では扱わないような少し高度な話題も受け持つ。
■ 過去スレ
Part 1 http://piza.2ch.net/tech/kako/966/966655286.html (プログラム板)
Part 2 http://pc3.2ch.net/test/read.cgi/tech/997101556/ (プログラム板)
Part 3 http://game.2ch.net/gamedev/kako/1005/10051/1005119775.html
Part 4 http://game.2ch.net/gamedev/kako/1016/10162/1016276254.html
Part 5 http://game.2ch.net/test/read.cgi/gamedev/1027351925/
Part 6 http://game.2ch.net/test/read.cgi/gamedev/1033920036/
0071名前は開発中のものです
02/12/21 04:40ID:aw46BnhUナイス
休みの暇つぶしが できそうだYO
0072名前は開発中のものです。
02/12/21 10:57ID:BdqHu3/h具体的にはDirectMusicPerformance8::CreateStandardAudioPathが失敗するようになった。
戻り値は0x88781226で、意味は
「パフォーマンス チャンネルがIDirectMusicPerformance8::AssignPChannel を使ってセットアップされたので、
パフォーマンスはオーディオパスをサポートできない。 」
なんだそうだ。しっかし、AssignPChannelを使った覚えはなく、自分のソースを検索しても見つからない(使っていない)
第一、今まで正常に動いていたのが動かなくなる理由にはならないし、
使い方が間違っていて偶然動いていたにしては、戻り値が明らかにおかしいし。
同じ症状の人いませんか?解決策はありますか?
このままだと今まで作ってきたソフトが全滅してしまうのです・・・
007372
02/12/21 11:22ID:BdqHu3/h(\samples\Multimedia\DirectMusic\Tutorials\Tut2)
サウンドデバイスはUSBオーディオだからドライバもクソもないし・・・
こ・・・こりはDirect X9のせいにしてもよかですか?
0074名前は開発中のものです。
02/12/21 11:35ID:eiYZ1q8i0075あぼーん
NGNG0076名前は開発中のものです。
02/12/21 15:13ID:f6s/Xm4R0077名前は開発中のものです。
02/12/21 15:18ID:0+pehiHAで、質問なんだがD3DってXファイル以外使えないの?
環境:Visual C++.net
Windows 2000 SP3
0078名前は開発中のものです。
02/12/21 15:29ID:WU56vZJBいいえ、そんなことはないですよ。
ただXファイルなら読みこむ関数が用意されているので楽なのです、
ちなみにその関数はD3DではなくてD3Dを使いやすくするための付属ライブラリの
D3DXについてます。
市販ソフトや良く出来たフリーソフトは
独自形式データ&独自の読みこみルーチンが一般的です。
0079名前は開発中のものです。
02/12/21 15:33ID:0+pehiHAなるほど、だから市販のソフトにはXファイルがないのか。
しかし、モデリングとかはどうするのかな?自分でプラグインとかをつくるの?
0080名前は開発中のものです。
02/12/21 15:36ID:WU56vZJBモデラーからフォーマットが公開されている形式で出力させる
↓
独自フォーマットへ
っていうコンバータ作るのが一般的かな?
0081名前は開発中のものです。
02/12/21 15:39ID:0+pehiHAありがとうございますた。最初はXファイルでやってみて実用的になったら
独自形式の方法もやってみます。
0082名前は開発中のものです。
02/12/21 15:46ID:CgoKZUqkどうせ使うつもりないけど、下手にC++にこだわって泥沼に入ってる
オレみたいなのには脅威かも。
0083名前は開発中のものです。
02/12/21 16:13ID:i7W/82mbXPでも動くの?C++ 6.0は?
0084名前は開発中のものです。
02/12/21 16:29ID:0+pehiHAC++とどっちが速いですか?
メモリ使用量も気になるが。
0085名前は開発中のものです。
02/12/21 16:52ID:f6s/Xm4R.\ オオオオオオ―――――ッッッッッ . /
\. /
(゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚)
(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)(゚∀゚)
(゚∀゚)(゚∀゚)(゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚)(゚∀゚)(゚∀゚)
(゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚) (゚∀゚)
( ゚∀゚)( ゚∀゚)( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )(゚∀゚ )(゚∀゚ )
.( ゚∀゚)( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ ) ( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )(゚∀゚ )
( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ ) ( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )( ゚∀゚ )
────────────────────────────────
じゃぁ、C#でDirectXを始めよう!!
0086名前は開発中のものです。
02/12/21 17:52ID:cUrNSFms0087名前は開発中のものです。
02/12/21 20:16ID:n7PDff7R同感。
でも重くなる部分はunsafeで書けば何とかなるんじゃないかなぁ
と言ってみるテスト。
http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_021/csharp_abc05.html
0088名前は開発中のものです。
02/12/21 22:18ID:1u4LlFCSC#をunsageで使うぐらいならC++のほうがらくだ
0089名前は開発中のものです。
02/12/21 23:18ID:qv5/NQ3kMicrosoft.DirectX.DirectDraw.DrawEffects の項目を見てて、
相変わらずDirect Drawでα値を使えるみたいなこと書いてあるんだけど、
別に、使えるようになったわけじゃないんだよね?Direct Xの本体はおんなじ物なんだよね?
0090名前は開発中のものです。
02/12/21 23:55ID:BzlxTchV0091名前は開発中のものです。
02/12/22 00:11ID:VTU8yluMグラボの方のサポートも怪しくなってきそうだし。
0092あぼーん
NGNG0093名前は開発中のものです。
02/12/22 06:16ID:YI0WQzNU終
0094名前は開発中のものです。
02/12/22 09:59ID:6B/yK4Zz終了
0095Jumper⌒Y⌒Y⌒( ゚∀゚) ◆JumpZrpgkU
02/12/22 10:02ID:/sB53JfV−−−−−−−−−−−−−−−−−−−−
次のキーワードは未使用だが、予約されている。
asm* bool compile const
auto break case catch
char class const_cast continue
default delete dynamic_cast enum
explicit friend goto long
mutable namespace new operator
private protected public register
reinterpret_cast short signed sizeof
static_cast switch template this
throw try typename union
unsigned using virtual
−−−−−−−−−−−−−−−−−−−−
なんかclassとかありますな。
今のとこ使えないようだが、
シェーダもオブジェクト指向で書けるようになるわけですか。
シェーダプログラムの拡張がしやすくなってウマー…なのか?
0096名前は開発中のものです。
02/12/22 10:14ID:rCjzYQTs0097名前は開発中のものです。
02/12/22 10:20ID:6B/yK4Zzどうするの?
0098あぼーん
NGNG0099名前は開発中のものです。
02/12/22 12:54ID:6B/yK4Zz他にまともなDirectXのBBSありますか?
0100名前は開発中のものです。
02/12/22 13:09ID:tpBxr2+C前から思っていたが、なんでこのすれは終わるんですか?
0101名前は開発中のものです。
02/12/22 13:10ID:6KQt+AoQdirectxで検索してみればあるでよ。
荒らしてるヤシはpcゲーム作りたいのだが、オカネが無い、
担当させてもらえない、技術ガナイ、英語が読めない、
リストラされて荒れてるだけだから、、、許してやってね。
0102あぼーん
NGNG0103名前は開発中のものです。
02/12/22 16:14ID:mBDSZwTf実はプログラム技術板にもDirectXスレがあったり…
鬱だ氏のう DirectX 2
http://pc3.2ch.net/test/read.cgi/tech/997101556/l50
0104あぼーん
NGNG0105名前は開発中のものです。
02/12/22 17:22ID:sSsEI5R3テクスチャを使うと背景画像やキャラ画像が512x512になってしまいます。
やはりサーフェイスを使うべきでしょうか?
DirectX8のスプライト機能は重いって聞くけど、
ポリゴンにテクスチャを貼るようにしたほうがいいのでしょうか?
0106名前は開発中のものです。
02/12/22 17:37ID:IeNHUVjA後は7以前で組むとか。
0107名前は開発中のものです。
02/12/22 17:47ID:ab12EPgU0108名前は開発中のものです。
02/12/22 18:01ID:sSsEI5R3DX8の2D系はあまり良くないみたいですね。
もう少し弄ってみてダメそうなら諦めます。
>>107
DX9はまだ触ってないのでなんとも言えません。
触るのはもうちょと先ですね・・・
0109名前は開発中のものです。
02/12/22 19:06ID:Zc9XiYaJ7なら大抵の環境で動くしな。1年後くらいに9に移行する。
0110名前は開発中のものです。
02/12/22 20:55ID:O6Yda65i0111名前は開発中のものです。
02/12/22 23:33ID:3R93okVP抜き出して、メッシュを表示しながらそれらを編集するプログラムを作って
います。
D3DXLoadMeshFromXofでメッシュを作ると、そのメッシュXfileDataの中に
あるマテリアルリストのデータやメッシュノーマルのデータ等の子データが
GetNextObjectで取得できなくなってしまいます。先にその子データを取得すると今度は
D3DXLoadMeshFromXofの方でエラーがでるため、多分この関数内でGetNextObjectを
やっているのだと思います。そのせいでこの関数が子を取得するとこのメッシュデータ
の子を自分で取得できなくなる、という風に考えているのですが、どうにかして
GetNextObjectでの子オブジェクトの参照カウントを元に戻す方法ってありますか?
AddrefやReleaseをしてみても何も変化はないです。教えて下さい。
0112111
02/12/22 23:36ID:3R93okVP>D3DXLoadMeshFromXofの方でエラーがでるため
間違えました。エラーはでないのですが、マテリアルリスト等の子データを
持たないメッシュができてしまい、表示がおかしくなります。
0113あぼーん
NGNG0114名前は開発中のものです。
02/12/23 13:40ID:NO9DtWWSManaged DirectX(C#とVB.NET)にはないんだろう。
単に省略しただけなのか、使えない理由があるのか。
0115名前は開発中のものです。
02/12/23 15:55ID:EfpKXfeuあまりに遅くて泣く泣く削った… では無い事を祈る。
0116名前は開発中のものです。
02/12/23 16:11ID:qFc82hVW0117114
02/12/23 23:44ID:NO9DtWWSまー、たいした理由でないといいですな。
0118名前は開発中のものです。
02/12/24 01:15ID:JJdtC4Utやつらは3Dがやりたいんであって、C#やVBは上からのお達しで
仕方なくやってるdake
0119名前は開発中のものです。
02/12/24 04:52ID:U9xcR896数のサンプルを用意してきた事に驚いたけど。
本音を言うと、C#のサンプルなんか用意するよりもD-MAPやMRTのサンプルを
作って欲しいんだが。毎度のことだけど、売りであるはずの新しい機能の
サンプルが無いんだよな。
0120名前は開発中のものです。
02/12/24 06:10ID:IMP3us1SDX9落としたんだけど、サンプルがコンパイル出来ません。
UINTPTRが未定義とか言われる。
basetsd.hてのに宣言されてるけど、エラー出ていてるヘッダファイル
D3D9.h(かな?)には、#includeそのものがない。
どうなってるんでしょうか?
同じエラー出た人います?
(オプション>ディレクトリのパスは通してます(C:\DXSDK\include))
0121名前は開発中のものです。
02/12/24 06:18ID:6zRcQ9qZそのディレクトリの検索順は一番上にageてあるか?
0122名前は開発中のものです。
02/12/24 12:23ID:RrtXDOZR0123名前は開発中のものです。
02/12/24 20:46ID:CjExnJI6テクスチャサイズは2の累乗にしなくちゃいけないんじゃなかったっけ?
0124名前は開発中のものです。
02/12/24 20:51ID:8FHlCXa70125名前は開発中のものです。
02/12/24 22:14ID:sve9Duu3DX8から部分的にサポートされてるよ
ただし利用方法が激しく制限されてるので
2^nの一部を使ったほうがまだマシ
0126名前は開発中のものです。
02/12/24 23:39ID:wBChHQUXどこが激しいのか疑問。
ミップマップ以外は制限とは言えない程度のささいな事じゃん。
2^nであってもCLAMPにしたらテクスチャラッピングは使えないから、
実質的に制限は2つだけ。
0127名前は開発中のものです。
02/12/24 23:54ID:sve9Duu3使ったことないのに無理しないで。
あとサポートしてる環境を把握してる?
0128名前は開発中のものです。
02/12/24 23:58ID:nM8z+tpm痛い香具師ハケーン
0129名前は開発中のものです。
02/12/25 00:28ID:5yYW1Zioそういう自分こそ使ったことない&把握してないのでは?
あの制限のどこが問題になるのか説明してくれる?
0130名前は開発中のものです。
02/12/25 00:41ID:o5sX+mEC戻らないのですが、元に戻すには何かしなければいけないのですか?
0131名前は開発中のものです。
02/12/25 00:56ID:C+V8gp8bResetが必要なんではないか。
詳しくはサンプルを参照。
0132名前は開発中のものです。
02/12/25 01:06ID:loF3ndqX0133名前は開発中のものです。
02/12/25 01:23ID:MT7gu6YF0134名前は開発中のものです。
02/12/25 03:30ID:PtOPqJI+D3Ddevice 作り直さないとだめなのよ〜ん(タブン)
0135名前は開発中のものです。
02/12/25 03:44ID:Km2eVg0y0136あぼーん
NGNG0137名前は開発中のものです。
02/12/25 07:41ID:BoDn9JVh10 DEFINT A-Z:SCREEN 3,0,0,1WIDTH 80,25:CONSOLE 0,25,0,1:CLS 3
20 device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams);
30 RELEASE(device);
0138あぼーん
NGNG0139名前は開発中のものです。
02/12/25 10:23ID:vBfJXHZbBBXも野郎BBSも閉鎖だし、ここはこんな風だし…
日本のアマチュアゲーム開発は終了だな。(´・ω・`)ショボーン
0140名前は開発中のものです。
02/12/25 10:45ID:N0hSeH2R0141名前は開発中のものです。
02/12/25 11:55ID:ztzHsFBr0142名前は開発中のものです。
02/12/25 11:58ID:srbFeJO+http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi
教えて欲しかっただけだろ?
0143名前は開発中のものです。
02/12/25 11:58ID:cEvsDgEI0144名前は開発中のものです。
02/12/25 12:06ID:6xTmGeBz調べることができない人間ほどBBSに頼りたがる
BBSに頼りたがる人間ほど移転しただけで閉鎖したと勘違いする
勘違いする人間ほど自分が頼るものを失った時点で全てのアマチュアプログラマが開発を終了したと思いこむ
0145あぼーん
NGNG0146あぼーん
NGNG0147名前は開発中のものです。
02/12/25 16:10ID:o5sX+mEC自分のプログラムでは、MIDIを再生すると、リバーブ等のエフェクトが
最大になってしまいます。一度再生すると、全てのMIDIとWAVがこうなってしまいます。
そこで、エフェクトを削除する方法がわかったので、SetFX(0, NULL, NULL)で
エフェクトを削除したら、すでに再生しているMIDIがとまってしまいました。
で、もう一度MIDIを再生しようとすると、またエフェクトがかかってしまうのです。
エフェクトを削除したら、再生しているMIDIがとまったというのは、
工学社のサンプルでもそうだったので(コードも同じでした)、そういうもんなのだと思ったのですが、
では、どうすればいいのでしょう。
そもそもMIDIを再生した時点でエフェクトがかかるのが間違いですか?
0148あぼーん
NGNG0149名前は開発中のものです。
02/12/25 18:50ID:srbFeJO+0150名前は開発中のものです。
02/12/25 20:54ID:PzwC4Farメッシュにxファイルを読み込みたいのですが、
そのファイルはどこら辺に入れておいたらよいのでしょうか?
本を買って勉強しているのですが、その辺がどうもわからなくて、つい。
0151名前は開発中のものです。
02/12/25 21:16ID:NnnYhCf/カレントデレクトリ
0152あぼーん
NGNG0153あぼーん
NGNG0154名前は開発中のものです。
02/12/25 22:05ID:PzwC4Farお返事ありがとう!
…つまり、プロジェクトが入っているフォルダ?
0155名前は開発中のものです。
02/12/25 22:09ID:NnnYhCf/VisualStudioから実行した場合はたぶんそうだけど
普通はexeファイルがあるところ、
カレントディレクトリをゲットする関数(Win32)とかもあるんで
調べてみたらいいかも?
0156名前は開発中のものです。
02/12/25 23:29ID:/fn3aOJDSPRITEで半透明ってできませんか?
0157名前は開発中のものです。
02/12/25 23:29ID:lmj/8fOxカレントディレクトリはプログラムの実行の仕方や、実行中の操作で変化
するから、できればフルパスで指定した方がいいよ。
でも、大抵の場合はカレントディレクトリから読み込んで問題無い。
VisualStudioから実行した場合は、デフォルト設定のままならプロジェクト
のある場所がカレントディレクトリになるけど、プロジェクトの設定の
作業用のディレクトリで変更できる。
ちなみに、実行中にファイル選択ダイアログを使う場合は、このダイアログ
がカレントディレクトリを変更してしまうので要注意。
0158_
02/12/25 23:34ID:7ccBlzyEどうやるのが一般的か知りませんが、自分は
char path[_MAX_PATH];
GetModuleFileName(hInst,path,_MAX_PATH);
で、exeファイルフルパスを取得したあと、邪魔なファイル名を削ってカレントディレクトリを取得しています。
実行ファイル名の削り方は、
char pDrive[_MAX_DRIVE+1];
char pDir[_MAX_DIR+1];
char pFname[_MAX_FNAME+1];
char pExt[_MAX_EXT+1];
_splitpath(path,pDrive,pDir,pFname,pExt);
でフルパスを分解してから、
string currentDirectory=pDrive+pDir;
currentDirectory+="\\";
くらいでいいのでは。
例えば、
Text.xというxファイルを、exeのあるフォルダにいれたとしたら、
ファイルを読み込むときに、
string filename=currentDirectory;
filename+="Test.x";
のようにかいて、それをファイルを読み込むメソッドの引数に入れるとか。
う〜ん、わかりずらいですね…。
0159158
02/12/25 23:37ID:7ccBlzyEcurrentDirectory+="\\";
は必要なかった。
0160名前は開発中のものです。
02/12/26 00:15ID:IJOtQDAyぜぇっっってぇーフルパスにしとけ。
なにがなんでもフルパスを使うくせをつけろ。
0161名前は開発中のものです。
02/12/26 00:18ID:hDb5j8vTテクスチャのα値をいじれば?
0162名前は開発中のものです。
02/12/26 00:49ID:ZW5MFsfxDirectX8のスプライトはあまり良くないので、ポリゴンでスプライトの代用した方が
自由度が高いよ。
0163_
02/12/26 00:52ID:p7bBeRQyID3DXSprite使ったこと無いけど、たぶん
ID3DXSprite::Drawの引数D3DCOLORのα値を指定するのかと。
例えば50%半透明なら、
D3DCOLORにD3DCOLOR_ARGB(128,255,255,255)を入れればいいと思う。
>>162
同意。ID3DXSpriteには、あまりいい噂はききませんね。
0164名前は開発中のものです。
02/12/26 02:43ID:8elQi3d2exeのある場所を最初にカレントにして、そこから相対パスってのが基本だろ。
0165名前は開発中のものです。
02/12/26 02:49ID:u+QTkfIN開発中はdebug\hoge.exeとかになってるぽ
0166名前は開発中のものです。
02/12/26 03:48ID:9RUwBm5sコモンダイアログのファイル選択ダイアログを使ったことがあれば
フルパスマンセーになるぞ。
ゲームならあまり使わないかもしれないがツールだとまず確実に使う。
0167名前は開発中のものです。
02/12/26 05:51ID:AGlHM0EQファイル選択ダイアログのフラグにOFN_NOCHANGEDIRつけとけばカレントディレクトリかわらないよ。
まあ、毎回元のディレクトリから始まるようになるので、
遠くのファイルを何回も選ぶ場合には面倒だけど。
嫌なら毎回ディレクトリ保存しておいて復元してもいいし。
0168あぼーん
NGNG0169名前は開発中のものです。
02/12/26 07:04ID:ePwyo9mVってのが一番面倒、ぶんなぐれ。
でかいツール作ってるときは誰がなにやってくれるかわからない。
ゲーム本体でもユーザーに保存場所を選ばせる場合だと必要になるから、いっそフルパスマンセーのが楽に逝ける。
0170名前は開発中のものです。
02/12/26 07:08ID:oxPiSeR2■ このスレッドは過去ログ倉庫に格納されています