トップページgamedev
1001コメント305KB

鬱だ氏のう DirectX (Part 3)

■ このスレッドは過去ログ倉庫に格納されています
0001 ◆WMpzjIm. 01/11/07 16:56ID:???
DirectXについてマターリと技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。

■旧スレ(プログラム板)
http://piza.2ch.net/tech/kako/966/966655286.html  (Part 1)
http://pc.2ch.net/test/read.cgi/tech/997101556/   (Part 2)
0591 02/02/04 10:38ID:???
>>590
あーそなのか。勉強になりました
サンプルでプロジェクト作るたんびにDX系ライブラリズラズラ書くの面倒なんだよね〜

なんかいい方法ない?
0592名前は開発中のものです。02/02/04 15:26ID:???
>591
おれは#pragmaでライブラリリンクさせる方法で間に合ってるけど。
その人のポリシーだから、「デフォルトのライブラリ無視」の必要が無ければ
それで済ませて良いのでは。
0593名前は開発中のものです。02/02/04 15:53ID:???
Windows用のGLUTのヘッダファイルでも、
ライブラリリンクのために#pragmaが堂々と使われているぞ。
0594 02/02/04 17:37ID:???
>593
それの利点はリンクを意識しなくてもビルド出来る事。
逆にマルチスレッド化とかが必要になると途端にドツボにはまる、と。

まぁ初心者にしか当てはまらないだろうけど。
0595名前は開発中のものです。02/02/04 21:57ID:???
「DirectX対応ゲーム」って言葉何かひっかからない?
0596名前は開発中のものです。02/02/04 23:48ID:???
GDIでも動くなら、「対応」でいいんじゃない?
逆にDirectXでしか動かないなら「専用」とか「必須」だけど。
0597名前は開発中のものです。02/02/05 01:29ID:V14z5otC
>>595
そういう歌い文句のあるゲームは必ずHSPかVB製
0598名前は開発中のものです。02/02/05 03:00ID:???
話の腰を折って申し訳ないが。ちょっと質問。
DirectPlayを使用したゲームを作るとき、何msごとに何バイト程度のデータを送ってる?
通信モデルやゲームのタイプでも変わってくると思うが、自分のゲームに実装した人がいる
ならば、「ActionRPGタイプのゲーム。P2Pで、1000ms毎に64バイト」みたいな感じで教えて
もらえると参考になってありがたい。

自分で試しにLAN内で 1/30msに sizeof(Uint32)サイズのデータをServer&Clientで送ろうと
したんだが、この程度でサーバが明らかに取りこぼししやがんの......
これって、コーディングミスって考えてもOK?。それともパフォーマンス的にこんなもん?
正直、DirectPlayのパフォーマンスがまだ読めてない。スマソ。
0599名前は開発中のものです。02/02/05 03:07ID:???
>>598
1/30msって速すぎじゃないか?
060059802/02/05 03:10ID:???
>>599
即レスさんきゅ。しまった。1/30s = 33msだった。鬱だ。
0601名前は開発中のものです。02/02/05 11:03ID:???
DirectPlayは使ったこと無いけど、UDP使ってるから非保証だしパケットロスは
必ずある前提で設計しないと。
LANでさえ、途中にダムハブやスイッチングハブをいくつかかますとかなり
パケットロスするし。
060259802/02/05 21:22ID:Xh6W9lXD
>>601
パケットロスに関しては、もちろん考慮してるよ。
おそらく取りこぼし云々に関してのことだと思うが、俺の説明が足りなかったようだ。

クライアント側:::一定期間(33ms)毎にカウンター値を送る。
サーバ側:::データ受信スレッドで送られたカウンタ値を受け取る。
こういう感じなんだが、サーバ側の受信キューが処理しきれてなくてどんどん溜まって
いく一方なんだわ。
(いま考えると、ぜんぜん取りこぼしじゃないな。正直説明ミスだった。スマン)

つーことで、引き続き御意見募集。よろしく。
0603名前は開発中のものです。02/02/05 21:28ID:???
>>602
>サーバ側の受信キューが処理しきれてなくてどんどん溜まっていく一方なんだわ。
ならサーバーのプログラムがおかしいのでは無いだろうか?
若しくはサーバーが486あたりとか。
060459802/02/05 21:45ID:???
>>603
やはりサーバプログラムの実装ミスなのかな。
Reveiveメソッドの処理コストもじっくり調べてみるか。
意見さんきゅ。

実際に通信ゲーム作った人の例なんかも聞きたいのよー。
送信の頻度と、データのサイズ。
0605名前は開発中のものです。02/02/06 10:31ID:CNMnrAW9
レベル低い質問なんですけど、directXでmesegeboxやpirntf等で
漢字、ひらがな、カタカナを使って日本バージョン以外のwindowsで
アプリを起動すると文字化けは仕方ないけど強制終了って結構ある
ことなんでしょうか?
0606 02/02/06 10:42ID:???
DirectXでprintfってどういう状況なんだかさっぱり
0607名前は開発中のものです。02/02/06 10:47ID:CNMnrAW9
pirntf等→printf相当の命令という意味です。
わかりにくくてスマソ。ちなみに自分は_stprintfで出力してます。
0608名前は開発中のものです。02/02/06 11:44ID:???
_stprintfはfontと組み合わせで描画してるから英数文字しか
出力できないので替わりにタイトルバーに変更します。
0609名前は開発中のものです。02/02/06 12:17ID:???
>>607
ますます意味がわからんが _stprintf() だと DirectX 関係ない気がするが。

MessageBox(NULL, _T("日本語"), _T("日本語"), MB_OK);

これを日本語非対応の Windows 上で実行したときの挙動について知りたいなら、
DirectX のことは忘れて Win32 API 関係の相談室にでも行って聞いた方が良い
と思うぞ。
061060902/02/06 13:22ID:???
>>609 確かにスレ違いでした。にもかかわらず
適切な返答には感謝です。
0611名前は開発中のものです。02/02/06 13:50ID:???
ってーかそのレベルでDirectXに手を出すのは自殺行為では・・・
0612名前は開発中のものです。02/02/06 14:12ID:???
>611 少なくともお前よりは上級者だから心配無用。
0613名前は開発中のものです。02/02/06 14:31ID:???
ノベルを除くゲームだと文字をグラフィックで持つ場合が多いから
DirectX使う上で日本語処理が問題にならない場合が多いしな。
趣味でプログラムしている人ならどうなるか知らない方が多いんじゃないか?
0614名前は開発中のものです。02/02/06 20:00ID:+tH1+sIe
何も考えずUnicode使え。Win98は切り捨てろ、ゲイツ御大の御意向だ。
型は、_TCHAR、LPTSTR、LPTCSTRのみ。
Cランタイムライブラリは、_tcかそれっぽいのが頭に付いているのを使え。
0615名前は開発中のものです。02/02/06 20:02ID:+tH1+sIe
LPCTSTRだった。
つーかDirectXでもコーポネントによって、Unicode対応だったりそうじゃなかったり
するんだよね。ウザッ!!
0616名前は開発中のものです。02/02/06 20:18ID:???
>615
じゃあ使えねぇじゃん。
0617名前は開発中のものです。02/02/06 20:25ID:+tH1+sIe
>>616
そういうのには、マルチバイド文字列に変換して渡すんです。
これもランタイムライブラリにあるよ。
>>614の他に、文字列は_T()マクロで囲む。→_T("まんこ")
これだけでマルチバイド、ワイド文字列両対応になります。
簡単だし導入する価値はあるよ。
0618名前は開発中のものです。02/02/06 20:37ID:???
>>617
ただし、ときどき #ifdef _UNICODE でコードを付け加える必要があるけどね。
何も考えずに _T() だけ使えば OK とはいかない。

 std::exception 派生の例外が飛んできたときに、それを画面に表示したい。
 _UNICODE の場合には wcstombs で変換必須だが、_MBCS だと変換不要

 改行文字を含む文字列を画面に表示したい。_UNICODE の場合には _T('\n')
 を探せば良いが _MBCS だと _isleadbyte() でチェックすして、真なら 2 バイト
 飛ばす必要がある。

とかとか。

ところで非日本語 Windows 環境で MessageBox(NULL, _T("日本語") ...) する
話だけど、そもそもフォントはどうなるんだ? まぁ MS 的には

 文字列リソース使え

が正解だとは思うが。
0619正直02/02/06 22:30ID:???
SJISで十分。
0620名前は開発中のものです。02/02/06 22:35ID:???
>>619
しかし IDirectMusicLoader8::LoadObjectFromFile() なんかは引数に UNICODE
文字列を要求するという罠。…しばらくは、両方使わんとダメだわ。

(しかし、それと >>609 の問題はあまり関係ない気がする)
0621名前は開発中のものです。02/02/06 23:03ID:???
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
0622 02/02/07 02:15ID:???
で、ここはいつからWin32API相談室になったんだろう。
0623 02/02/07 02:18ID:???
言い忘れ。

>612 ならこの程度の問題とっとと解決しろ。
0624名前は開発中のものです。02/02/07 02:20ID:???
>>622
既にプログラム技術板に移った模様。
0625名前は開発中のものです。02/02/07 02:55ID:???
>>▼゚Д。▼カフッ▼゚Д。▼カフッ
↑最近、これよく見るんだけど、どういう意味?
話題区切り?
0626名前は開発中のものです。02/02/07 03:17ID:???
Bio_100%界隈でブイブイ言わせてた GL_Traiger_OX を潰した英雄です。
もう、GL_Traiger_OXはネット上では二度と姿を出せないでしょう。
0627名前は開発中のものです。02/02/07 04:12ID:???
DIRECT3Dで2Dやる方法教えてください


0628名前は開発中のものです。02/02/07 04:24ID:Wh7hI8hS
板ポリゴンにテクスチャ貼って下さい
それがダメなら本買ってくだっさい
0629名前は開発中のものです。02/02/07 04:32ID:???
ありがとうございます。
本買います。
どこで売ってますか?
0630名前は開発中のものです。02/02/07 05:02ID:???
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
0631名前は開発中のものです。02/02/07 05:04ID:???
DIRECT3Dで2Dやる本教えてください。
0632名前は開発中のものです。02/02/07 05:09ID:???
お願いします。
0633名前は開発中のものです。02/02/07 09:09ID:???
ぱぱらぱん!
Cマガのじゅーがつごー

…じゃだめですか。
0634名前は開発中のものです。02/02/07 09:17ID:???
ありごうとございます!
Cマガジンの10月号ですね!
買いに行きます!
ご恩は一生忘れません!
0635名前は開発中のものです。02/02/07 14:54ID:???
>634
ばーか、ばーか。
氏んじゃえ。
0636名前は開発中のものです。02/02/07 15:22ID:???
>>625
HTMLの<HR>だと思っていればいい
0637 02/02/07 15:44ID:???
>▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
これ書いてるの一人?どうせならコテハンにしたら?
0638名前は開発中のものです。02/02/07 17:32ID:???
>これ書いてるの一人?
それは「吉野家のコピペを書いてるのって一人?」と聞くようなものでは。
2ch中の吉野家コピペを一人で書いてる可能性はおれには否定するデータは無いが。
0639 02/02/07 17:35ID:???
>▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ

コイツもいい加減ウザイので氏んでくれねぇかな。せめて面白いAA貼れよ
とかいうとまた出てくるんだろうけど
0640名前は開発中のものです。02/02/07 19:15ID:???
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
0641名前は開発中のものです。02/02/07 19:28ID:???
>>634
あー、ほんの9ページの記事やからあんま期待せんで。
つかみにはなるやろけど。
0642名前は開発中のものです。02/02/07 19:38ID:???
>>639
あなたに指図される筋合いはありません。何の権限があってそのような事を言うのですか?
以上、素朴な疑問。
0643 02/02/07 19:57ID:???

      ∧__∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ∩゚Д゚)< 短い付き合いだったけど、Atiと仲良くするから
□………(つ  |  \___________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
  Kano邸    |
                |

|
| …そ、そんな…(suzunaで我慢しとくか)
\_____ _______
         ∨     
       ∩_∩ D    
       (;´∀`)○     ___
      ( NVdia )D……/◎\
=============================  
0644名前は開発中のものです。02/02/07 20:30ID:???
>>643>>639の言う面白いAAなのか?
意味わからんしどうせ意味わからんなら▼゚Д。▼カフッの方がましだぞ。
0645▼゚Д。▼カフッ02/02/08 00:39ID:???
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
0646 02/02/08 07:19ID:???
ここは何のスレでしたっけ・・・・
0647名前は開発中のものです。02/02/08 14:11ID:???
ゲーム制作技術に特化したDirectXの質問スレだーね。

でもフレームレート問題とかは過去の名スレで解決済みだったりして
話題がないのも事実だな。
0648名前は開発中のものです。02/02/09 02:42ID:???
>>641
Cマガの10月号の記事はここにあったり(w
http://puyon.pns.to/program/directx8-2d/index.html
0649名前は開発中のものです。02/02/10 19:54ID:???
D3DXQuaternionRotationYawPitchRoll

この関数の回転中心座標って、具体的にどこの座標でしょうか。
0650名前は開発中のものです。02/02/10 19:55ID:5x7ia1i5

D3DXMatrixTransformation
の間違いでした
0651名前は開発中のものです。02/02/10 19:58ID:???
原点
0652名前は開発中のものです。02/02/10 20:06ID:5x7ia1i5
ワールドの原点?ローカルの原点?
0653 02/02/10 20:10ID:???
回転の中心は引数で指定する事になってるが?
マニュアル見てる?
0654名前は開発中のものです。02/02/10 20:40ID:???
厨房でスマン。
みてるがわからない。
0655名前は開発中のものです。02/02/10 20:44ID:???
Msc-1 * Msr-1 * Ms * Msr * Msc * Mrc-1 * Mr * Mrc * Mt
0656たけし02/02/11 00:28ID:cNHF/rtU
すみません。ビデオカードのドライバをアップデートしたら、DDrawのBltでからーきーを指定して拡大転送すると、白いフチがまわりについてしまいました。
なぜでしょう。
0657名前は開発中のものです。02/02/11 00:33ID:???
>>656
なんでだろーねー?(w
0658たけし02/02/11 00:53ID:cNHF/rtU
>657
笑い事じゃないですよ!
このプロジェクトがもし失敗したら、したらしたで別にいいんですけどね。
0659たけし02/02/11 01:27ID:cNHF/rtU
わかりました!答えはハードウェアアクセラレーションがONになっていたからですね!
>657
自分で調べなさいという意味だったんですね!どうもありがとうございました!
0660名前は開発中のものです。02/02/11 04:06ID:???
>>659
あまり根本的な解決にはなってないと思うぞ?

老婆心ながら言わせてもらうと、PCの環境は千差万別。
もしキミと同じ環境の人にプレイしてもらうときには「ビデオカードのハードウェア
アクセラレーションを切って下さい」と言うのか?
俺だったら、readmeにそんなこと書かれてたら速攻でごみ箱逝き決定なんだが?
0661たけし02/02/11 15:29ID:cNHF/rtU
>660
たしかにそうですね。
では、BMPをサーフぇスに読み込む前にDC段階でStretchBltで2倍、3倍に拡大しておくというのはどうでしょう。
0662名前は開発中のものです。02/02/12 01:29ID:FpOmGbMe
>>661
いみねぇじゃん。
0663マザボド壊滅から自力生還した男02/02/12 02:36ID:???
久々に来てみたが以前と全く変わってないな。懐かしい雰囲気だぜ。
なんでも答えてやるぞ。遠慮せずに言ってみろ。
0664マザボド壊滅から自力生還した男02/02/12 02:50ID:???
あ、やっぱうそ。眠いから寝るわ。
0665たけし02/02/12 03:16ID:5bXMPf/e
>662
そうですかね。僕の場合、LoadUmageで読み込んだBMPをDCに設定して、それからサーふぇすのDCをゲットしてそれにBitBltしてるんですよ。
そこでそれをはじめからStretchBltで拡大してしまおうというのです。
こうすれば原寸でBltできるので、Bltで拡大転送したときに生じる変化を無くすことができると思うんですよ。
BltFastも使えますし。
0666お前ら教えてみ02/02/12 03:52ID:dP23F80F
隣のスレから来たがMMOってなに?なんの略?
0667お前ら教えてみ02/02/12 03:53ID:dP23F80F
すれま違えた
鬱だ氏のう・・・・・・・・
0668>66002/02/12 04:55ID:???
▼゚Д。▼カフッ
0669名前は開発中のものです。02/02/12 18:52ID:???
DirectX開発者用ランタイムをデバッグ版でインストールすると、
システムファイルチェッカーで”破損しています”ってファイルが
いくつか検出されるんですけど、これは異常なことですか?
スタート→プログラム→アクセサリ→システムツール→システム情報を起動、
ツールボタンで出てきます。>システムファイルチェッカー
0670名前は開発中のものです。02/02/12 21:47ID:???
8.1を入れたらZsnesが正常に動作しなくなりました。どうしたらいいんでしょう・・・
0671名前は開発中のものです。02/02/12 22:30ID:???
プログラマよりパソオタのほうが詳しいはず。
ただし丁寧に教えてくれるか分からんがな。(w
0672名前は開発中のものです。02/02/13 01:18ID:???
>669
DxDiagがマトモに動かないならどこかが破損してんでしょ。
VGAのドライバかDirectX自体のどっちか。
DirectXはアンインスト出来ないからOS入れ替えるしかない。イキロ
0673名前は開発中のものです。02/02/13 04:11ID:NOxt2cqP
>>672
それが出来る。
8.1のアンインストOKだった。
DirectXBuster2.0Beta3で試してみ。
http://www.directxbuster.de/index_e.html
>>670も8.0aにするがよろし。8.1での開発は出来なくなるけど。w
どうも8.1はダメだ、バグバグすぎ。近いうちフィックスバージョンが出るだろ。
0674名前は開発中のものです。02/02/13 05:57ID:???
>673
>8.1のアンインストOKだった。
マジカヨ!!!
漏れは安定動作してるから試さないけど。怖いし。
0675名前は開発中のものです。02/02/13 06:33ID:BHU5XRtA
>>665
だったら解像度落とせ。
メモリがもったいない。

ふと思ったんだが、縁取りされるってアンチアイリアスのバグじゃねえか?
まあ、使ってるのがDirect Drawみたいだから対処の方法がないんだが。
0676たけし02/02/13 07:15ID:vVm8NgVS
>675
DirectGraphicsでの結果を近日アップします。
0677名前は開発中のものです。02/02/13 08:49ID:???
なんだか粘着さんが一人いらっしゃるようで。皆さんお疲れ様です。
0678名前は開発中のものです。02/02/13 10:13ID:???
8.1インストールできないし・・・
開発者用ランタイムだけ入れたけど
0679名前は開発中のものです。02/02/13 11:16ID:Vp4P0yUm
MP3鳴らす最も簡単な方法を教えてください。
やっぱどこぞのDLL使うのが一番てっとり早いかな?
しかしこれだとDirectSoundと共存できるかどうかが不安。

DirectX7の環境で製作しております。
0680名前は開発中のものです。02/02/13 11:41ID:???
DirectSound共存でMP3鳴らすって、DirectShowでもMedia Playerコントロールでも
問題無さそうな気がする。
どこぞのDLLって、うかつにLAMEとか使うと配布できなくなるよ。
0681 02/02/13 13:01ID:???
210.175.13.57
俺のIPだ。ハックノ練習してごらんよ。できねーだろうけどw
0682名前は開発中のものです。02/02/13 14:47ID:???
いまからDirectXのプログラミングを勉強するなら
7と8どっちが良いですか。
0683 02/02/13 15:00ID:???
8。8.1は日本語docがまだだっけ?
ま、もうじき9さ
0684名前は開発中のものです。02/02/13 15:28ID:???
8.1の日本語リファレンスは出さないらしいよ。
0685名前は開発中のものです。02/02/13 17:49ID:???
8と8.1って具体的にどう違うの?
0686名前は開発中のものです。02/02/13 18:40ID:???
>>685
具体的に言うと名前が違う。
あと、バージョンも違う。
0687名前は開発中のものです。02/02/14 01:00ID:???
バグの出方も少し違うな(´ー`)y-~~
0688たけし02/02/14 01:48ID:KtKYF6eX
>675
DirectGraphicsでやってみました。
テクスチャにカラーキー設定してSpriteでDrawしました。
ハードウェアアクセラレータをオンにしても白いふちはできませんでした。これで解決です。ありがとうございました。
0689名前は開発中のものです。02/02/14 02:01ID:/eLzllXU
8.0と8.1の違いって
D3DのPS1.4の追加とD3DXの機能強化ぐらいかな?
D3DXはテクスチャから法線マップを作る関数が追加されたりしたらしい。
0690たけし02/02/14 03:56ID:KtKYF6eX
気づいたのですが、DDrawでDDCREATE_EMULATIONONLYをデバイス作成時に指定してやると、ハードウェアアクセラレーションがオフになって、うまくいくのです。
これは、どうなのでしょう。著しくパフォーマンスが低下するようなことはありますか?
■ このスレッドは過去ログ倉庫に格納されています