[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 04/29 12:35 / Filesize : 247 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【C++】 DirectX初心者質問スレ Part18 【C】



1 名前:デフォルトの名無しさん mailto:ライシンマハケン [2008/07/17(木) 13:50:04 ]
1 名前:デフォルトの名無しさん[sage] 投稿日:2008/04/09(水) 09:55:56
※回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。

【C++】 DirectX初心者質問スレ Part17 【C】
pc11.2ch.net/test/read.cgi/tech/1207702556/

99 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 06:59:29 ]
>dsound.hのコンパイルが通らないので、どうにかしたい
[環境]WinXP(sp2) VC++2005(pro) DirectXSDK(oct 2006) PlatformSDK(?最新)
[設定]ツール>オプション>VC++ディレクトリ>インクルード、ライブラリ、Bin
の設定をPlatform>DirectXの順にして設定。※DirectXSDKのライブラリはx86を指定
[ソース]
#pragma comment(lib, "dxguid.lib")
#pragma comment(lib, "dsound.lib")
#pragma comment(lib, "winmm.lib")
#include <windows.h>
#include <dsound.h>
int _tmain(int argc, _TCHAR* argv[])
{
return 1;
}
[エラー]
c:\program files\microsoft directx sdk (october 2006)\include\dsound.h(230) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
c:\program files\microsoft directx sdk (october 2006)\include\dsound.h(230) : error C2143: 構文エラー : ';' が '*' の前にありません。
以下省略
エラーの場所:typedef const WAVEFORMATEX *LPCWAVEFORMATEX;
[備考]
mmreg.hでWAVEFORMATEXが宣言されていいて、PlatformSDKに含まれている。
PlatformSDKの設定を失敗している??
参考にしたURL:ttp://www.cppdrive.jp/vc/sdk/index1.html

上記、問題解決へのヒントなり参考サイトなり紹介していただければと思います。






100 名前:74 mailto:sage [2008/07/31(木) 07:02:13 ]
>>84 さんとは別人ですが、やりたいことは同じでした。
Win32API を使って文字入力をしているゲームはあんまりないですね。
IME とかを使っていると、変換中の文字が画面の左上にでてきたりするし。

>>85 さんの言うように全部実装するという手もありますが、
IME や右クリックしたときのコンテキストメニュー、
その他もろもろを実装するのはあんまり現実的じゃないかなと。
この辺はユーザビリティにどの程度重きを置くかで選択が変わってくると思います。

101 名前:99 mailto:sage [2008/07/31(木) 08:20:20 ]
>追記 ※半分解決※
新規プロジェクト>Win32プロジェクト>空のプロジェクト
でプロジェクトを作成するとコンパイルが通ります。

通常のWin32のテンプレート(空のプロジェクトではない場合など)
を使ったプロジェクトでは >>99 同様エラーが出ます。

102 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 08:33:07 ]
>>99
プロジェクトのプロパティで、
Configuration Properties→Advanced→Show Includes
を Yes にしてからコンパイルすると、
インクルードしている順番とかがわかるので、
それでなにかわかるかも。


103 名前:99 mailto:sage [2008/07/31(木) 09:02:26 ]
>>102
レスサンクスです。
早速やってみたのですが、、、順番として
dsound.hの前にmmreg.hがあるか確認したのですが、、、
そもそもmmreg.hが読み込まれていません、、、orz



104 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 10:49:49 ]
>>100
チャットの文字とかそういうのもコピペできるようにしたいの?
IMEの制御と入力中の文字のコピペぐらいで良いと思うんだけどね。
コンテキストメニューは無しで。

105 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 11:31:22 ]
>>103
とりあえず、これ入れてみては?
#include <mmsystem.h>

106 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 11:50:17 ]
ちょっとやってみたよ。
stdafx.h の中の↓の行、消すかコメントにしてみ
#define WIN32_LEAN_AND_MEAN // Windows ヘッダーから使用されていない部分を除外します。

107 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 11:52:20 ]
ってプリコンパイルヘッダ使ってないのか。
まあ、WIN32_LEAN_AND_MEAN のdefineがどっかにあると思うけどな。



108 名前:99 mailto:sage [2008/07/31(木) 12:38:34 ]
レスサンクスです。

>>105
>#include <mmsystem.h>
なぜか、大量のエラー(88個)が出ました、、、。
[エラー文]
構文エラー : ';' が、識別子 'MMVERSION' の前に必要です。
以下略
[エラー内容 mmystem.h]
typedef UINT MMVERSION;
以下略

>>106
#define WIN32_LEAN_AND_MEAN
を消してみましたが、
>>99 と同様のエラーが発生してダメでした。

みなさんの助言ありがとうございます。
もう少し自力で調べてみます。


109 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 12:39:26 ]
あったのか、、
消したらリビルドな

110 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 12:41:56 ]
あと空のプロジェクトだとうまくいくって書いてたが、
そのうまくいくやつのwindows.hをincludeする前に
#define WIN32_LEAN_AND_MEAN
してごらん。

111 名前:99 mailto:sage [2008/07/31(木) 12:46:19 ]
>>109

も、申し訳ありません、、、。
コンパイル通りました。
大変失礼いたしました。

#define WIN32_LEAN_AND_MEAN
についてこれより詳細に調べます。



112 名前:99 mailto:sage [2008/07/31(木) 13:26:29 ]
レスサンクスです。
>>110
うまくいかないときと同じ症状になりました、、、。
おっしゃるとおり#define WIN32_LEAN_AND_MEANが原因でした。

追記(同じ過ちを繰り返さぬよう)
#define WIN32_LEAN_AND_MEAN
をはずした後に、今まで組んでいた部分と合体したら、
winsock(winsock2.h)関係でエラーがいっぱいでましたが、
stdafx.hでwinsock2.hを読み込ませることで回避できました。
(windows.hより先にwinsock2.hを読ませないといけない)

諸兄のご尽力により、無事解決となりました。
スレ汚し大変失礼いたしました。

113 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 14:14:09 ]
>>100
DirectX SDKにあんたのやりたいこと全て、ソースコード付きで入ってるよ。
まぁ、そのままだと微妙に使い物にならないから、少し手直しが必要だが。

114 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 14:50:29 ]
>>113
Samples\C++\Direct3D\CustomUI
だね
日本語だと確定するまで違うところに表示されるのはしょうがないのかね

115 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 15:17:38 ]
>>114
そのサンプル触った上で言ってるの?

116 名前:デフォルトの名無しさん [2008/07/31(木) 16:56:43 ]
>>74
コントロールの位置が分かってるなら
マスクかければいいじゃn

117 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 17:23:02 ]
>>115
よく見てなかった



118 名前:64 mailto:sage [2008/07/31(木) 23:59:47 ]
>>65
200Mだと、メモリに置いてもツライ量ですね…
メモリマップドにしても、結局ディスクから読むので変わらないのかな…

>>66
全くもってその通りなのですが、どうしても2Dでやりたいのです。
MPEG1は検討してみます。ありがとうございました。

>>94
色々とありがとうございます。
リングバッファは試してみる価値があると思います。
前半だけメモリにおいておくのは、結局止まってしまうので
メモリも食うし、中途半端になってしまうかも…
圧縮もありかもしれませんね。
ディスクから読み込むのと、展開するのとどっちが重いかにもよりますが…

詳しい仕様は…そうですね、エフェクトに使うと思ってもらえればいいと思います。
1〜2秒のエフェクトが30個ほどあり、どれがいつ必要になるかわからないという状況です。
(実際には少し違いますが)
色々試したところ、どうも重くなるのは初回のみなので、あらかじめ確保→開放して
キャッシュにいれておくなんて手法もありかもしれません。
(問題は人によってキャッシュの大きさがまちまちな点ですが…)

119 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:07:24 ]
家庭用機でもメモリに置いといて解凍してVRAMに展開とかはやると思う
この場合はCPUの速度が固定なのでやりやすいとは思うんだが
それでもPCから比べればかなり貧弱でも十分に出来ると思う
もちろんPCの場合はどんなCPUつんでるかは不明だから間に合わないってケースも出てくるだろうけど
それでも大よそのケースで間に合うと思うけどな
どんな絵かはわからんが、20%ぐらいの圧縮率とかにはなるんじゃね?
エフェクトに使うってことで非可逆でも構わないならそれこそかなり圧縮できると思う

120 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:23:08 ]
エフェクトならそれこそ3Dで作って2Dで描画しろよ、ってレベルだな

121 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:24:31 ]
とりあえず 30fps にするんだ。メモリ消費は半分だ。

122 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:28:23 ]
>>120
2Dエフェクトを作るツールの使い勝手の良さ考えると
それと同じレベルのを3Dで作るにはかなり敷居高いと思うが

123 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:41:26 ]
>>122
似たようなもんだろ
はじめの選択ミスがひきづってるだけの話でしょ?
次はきっと彼もうまくやれるさ

124 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:56:17 ]
>>122
結果的にそれ以上の苦労を実機側でしているのだから意味がない

125 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 01:02:33 ]
エフェクト作ってるのが自分じゃなければ
その苦労は単純に比較できないんでは?

見てる限りだと圧縮で解決する感じがするけど

126 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 01:12:29 ]
いいたくはないけど、仕様のミスだよ、明らかに。
メモリをちゃんと計算しなかったのが原因。

127 名前:94 mailto:sage [2008/08/02(土) 10:09:14 ]
なんていうか、お題だけを考えれば
「大容量のアニメーションをスムーズに再生するには?」
というだけなのに、設計とかを否定するのはどうかと思う。
仕事でゲーム開発してれば、こんな難関はいくらでもやってくる。その度に
プログラマーの強権発動して「仕様的に無理」っていきなり言っちゃうのは
怠慢だと思う。(そして、ある日隣のプログラマーに「○○すれば簡単にできますよ♪」
とか言われて肩身が狭くなっちゃう。)まずは色々考えてみようよ。
どれかで上手くいくかもしれないし。まぁ仕事じゃないけどさw

個人的には>>119の意見を支持。不可逆で圧縮が可能なら楽にいけそう。
ってかこんな展開シェーダー誰かが作ってそう。
キャッシュに頼るなら、事前にその場では使わないヤツを全部解放しておくと
ちょっと親切かも。



128 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:22:14 ]
WMVの7ならXP以降は標準搭載されているし、
DVD並の画質なら展開しつつテクスチャに転送しつつ再生しても、
CeleronM程度の型落ちCPUでも問題なく動くが、
お前らはいったい何を気にしているんだ?

129 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:25:49 ]
アルファ抜きとかかな

130 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:01:33 ]
>>127
でも、会社の職場で
「3Dでやってればもっとたくさん表現できたよね?」
って言われたらどういいわけするの?
いっとくけどデザイナさんにとっては3Dで作ろうが2D作ろうが
あんまり労力は変わらないかもしれないよ
こんなことも提示できないでデザイナさんにひたすら作らせた後
「ごめんなさい、やっぱこの仕様だときついかもしれません」
とかいうの?

こんな不安要素を抱えてしまうぐらいなら安全策をとるべきでしょ
趣味でやってるなら自由にやればいいと思うけど
会社でやったら恨まれますよ〜(みんな表だっては言わないけどねw)

131 名前:94 mailto:sage [2008/08/02(土) 11:32:46 ]
>>130
それはプログラマーとして提言しても決定することはないんじゃない?
表現の仕方や方向性はデザイナーや企画が決めるんではないかと。
会社によって方針(力関係w)が違うだろうから解んないけど。

>>130の言いたいことは良く解る。リスクを抱える開発はプログラマーとしては褒められない。
しかしながら、やりたい事はそれに矛盾する。
「では、できるかどうか検証してみましょう。」
というのが今この場ではないかと、勝手に思ってるんだけども。
もちろん「できない。」と迅速に判断して次にいくのもあり。
「いやいや、方法はあるんでない?」というのが俺の意見。
判断は難しいけどねw

132 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:47:51 ]
>>131
そう?
他のゲームはどうなってんだろ?

って解析できるのもプログラマだけだと思うけどね
エフェクトがいるアクション・イベントを3〜4に絞る仕様だってできるわけじゃない?(テイルズ方式)

こんな無理目なことに時間かけてそれに対するリターンはどれほどよ?
って相談までしたんかどうなんか気になるが
まあ、「やってみるけど時間くれる?」まで言ってるならなにもいうべきことはないな
存分に研究してみろ

ただ、決断はしなきゃいけないな
無理なら無理でしっかりいうんだぜ
(もちろんこの期間でこれこれこんなことを試してみたんですけど
試してみた範囲ではこの仕様は実現できませんでした。的なことが必要だ)

と初心者スレだし言ってみるテスト

133 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:57:14 ]
やる前に、かかる工数を見積もって(難しいだろうけど)
予算と相談しないとな

134 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 13:37:15 ]
今回の内容は見積もりがどうこう言うほど難しい作業じゃないぞ。
どれだけ技能が低いんだよ。

135 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 13:45:21 ]
そういう考えがスケジュールの遅延を招く。
たとえどんなものでも仕事として発生するなら
ちゃんとスケジュールに組み込んで管理するのが基本。

136 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:02:24 ]
能力が低いと見積もりが積もり積もって大変だよな。

137 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:05:15 ]
比較対象で出ている、3Dでエフェクト作るっていうのは具体的にはどうやればいいのでしょうか?
モデルにモーション付けてもらってそれを再生するという感じ?
例えば爆発のエフェクトであれば、炎や火の粉をアニメ付きのモデルで大量に表示とかになるのでしょうか?



138 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:08:52 ]
能力の高さとスケジュール管理は別のスキルだろう。
仕事が溢れそうならマネージャーに相談して溢れる分を他に振るなり増員なりで解決する。

ギリギリになってからやっぱり終わりませんとか言ってきたらマジで回し蹴りだ。

>>137
ビルボード/パーティクル等など
いくらなんでも1個1個モデル表示なんてしないぞ。

139 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:20:54 ]
ビルボードやパーティクルで作るというのは、そういうツールみたいなのがあるのでしょうか?

140 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:32:53 ]
そういうツールを作ればよい

141 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 15:15:10 ]
そのツールを作ってデザイナーに使いこなしてもらう手間考えれば・・
とか思ったけど、もしかしてどこでも当たり前にそういうことやってて今更議論するような程でもないってぐらいのことだったりしますか?

142 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 15:24:12 ]
初心者質問スレという意味合いではそんなツール作れるかよ!

プロと言う意味ではPG的にはその程度のツールもないのかよ!
デザイナー的にはその程度のツールも使えないヤツはいらない。

143 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 16:37:33 ]
そして多くの開発ではコンバータを作成し、
バージョン互換を恐れて古いツールを使い続ける。。。

144 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 17:48:58 ]
>>142
仕様はよく考えられてても、UIがコマンドラインだったり、
フォーマットの変更まで考えました、とかいって、
死ぬほど使いづらいツールを作ってきたりする奴もいるからな。

そして、そういうツールに限って不安定。ちょっとテキストファイルに
ゴミ文字が入ってただけで落ちたりしてな。

145 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 18:02:49 ]
>>144
それはツールを作る人間の技量の問題。
その程度のヤツにツールを作らせる人的リソースの不足も問題。

146 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 18:27:25 ]
とりあえずUndoがないツールは糞

147 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 02:02:44 ]
は?んなツール作らなくてもとりあえず
デザイナさんがモデリングした通りに出してみたらどうよ?
適当にボーン入れてアニメーションさせたモデルを加算半透明ではってみりゃ
立派なエフェクトのできあがりっしょ
何に手間かけようとしてんだ
こういうところからプラグイン使えたら便利かなとかそういう考えが浮かんでくるんだぜ
モデリングツールでできることは極限まで活かせよ
まずは、モデルをアニメーションさせるところから説明しないと駄目なほど馬鹿でもないだろ?

こんなところに手間かけてるからお前等苦労ばっかりしてろくなゲーム作れないんだぞ



148 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 02:18:16 ]
モデルでエフェクト作るのも結構手間だと思うけど
既存の2D系のエフェクト作成ツールでエフェクト作って
それ表示って方のがある程度のレベルまでは時間もかからずに合理的だと思うんだが
個人で作ったショボイツールなんぞよりも何倍も良いものできると思うぞ
最終的に出来ることが3D>2Dだとしても
そこまで行かなければ、使いやすいツールのある環境のがいいものできると思う

それに気の利いたパーティクルツールなんてどこにでもあるようなものとは思えないが
上で出てた爆発みたいなのって爆発のパターン絵描きが書いてプログラマが適当に飛ばして終わりってのが多いんじゃね?
その上で初心者スレってこと踏まえれば
この方法って間違いとかとは全然思えないんだが

>>142
デザイナーにとっては使いこなすに値するツールかどうかだろう
これはプログラマーの次第だと思う

149 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 08:19:52 ]
>>148
3Dで爆発なんてそれっぽいもやもやを拡縮するだけで終わりってのも考えられるんじゃね?
しかもそれはモデリングのアニメーションで設定できる話で
プログラマはそれを再生すれば終わりでしょ?
だからこれはアニメーションモデルの再生でしかないと思うんだけど?
3Dの何が手間なの?
勝手な想像で手間だと思ってるだけじゃない?

150 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 15:51:26 ]
>>149
旧世代のキノコの成長の早回しです、
みたいなドン臭い爆発だったらプログラマーの負荷は少ないけど、
パーティクルを使って云々ってやってると結構めんどくさいよ。

151 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 17:21:22 ]
>>150
そうか?
それもモデリングツールにちょちょっと細工して
モデルのアニメーションで出るようにしたら終いな話でしょ?

3Dで苦しくなるような想定ばっかしててもしょうがないと思うんだけど?

152 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 17:32:14 ]
まぁゲーム内容次第だべ。
CoD4の手榴弾みたいなリアルな爆発が欲しい時と
GCのゼルダみたいなアニメ調のが欲しい時では話が違うんだし。

153 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 17:39:46 ]
大抵モデリングツールからの出力をそのままだしゃいいのに
くっだらないイレギュラー想定して発言を潰す作戦ですか?

154 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 17:58:19 ]
それらのやり方にパーティクルイリュージョンほどの使い勝手があるとは思えないんだけど

155 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 18:26:19 ]
>>151
パーティクルやったこと無いんじゃない?

156 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 19:42:54 ]
>>155
あるある
うちのモデリングツールのプラグインに吐き出す奴あるもん

テクスチャアニメーションで粒子を表現するタイプと
頂点シェーダで吐き出してくれるタイプがあるよ

どっちもモデルのアニメーション扱いでいけるようになってる

157 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 19:47:42 ]
手間がかからず実装できるとかじゃなくて会社にあるツール自慢を初心者スレでされても・・・



158 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 19:57:35 ]
市販のツールを使うのが一番簡単なわけだが

159 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 19:58:00 ]
それぞれの環境を試したこと無い人達が自分達の方が楽とかいうのはどうなの?
2Dやってる人は、モデルデータからエフェクト作ってみなよ
3Dやってる人は、パーティクルイリュージョンとか使ってみなよ

160 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 20:02:56 ]
>>159
ないならないで仕様を固定すればやりようはいかようにもある
ただ、その方法を挙げても別のイレギュラー的例を挙げて
そういう案を潰すことばっかりさっきからしてるじゃん

それじゃなんにも進まんと思うのよね
だから2Dで全部アニメーション・・・みたいな馬鹿な選択肢を選んじゃうわけでさ

もっと現実的な話を考えたらぶっちゃけ3Dしか道はないのは誰の目にも明らかで
2Dゲーがなくなっちゃった理由はまさにメモリ使用量に対する表現力の貧弱さなので
あってこんなところ問題じゃないように思うんだけどどう?

161 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 20:08:54 ]
だからこういう問題にぶち当たる前にするべきなのは技術的な話じゃなくて
あくまでも仕様の固定化なんだよね

ってのはもうずいぶん前に学習した
どんな開発であっても汎用ツールを作ってはならない

まずこういう問題にぶちあたってしまったら
その時点ですでにゲームオーバーな状態にあるわけで手遅れなんだよね
プログラマとしての腕を見せる前にこういう問題を起こしてしまうプログラマってのは
社会人としてすでに駄目な場合が多い

作るときにたくさん疑問がでて細かい警告をいくつも見つけてたのにも関わらず
誰にも相談しないで勝手に想定して勝手に自爆してしまっているんだよね

って初心者スレで過去の自分を振り返って語ってるテスト

162 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 20:13:17 ]
>>160
いや勝手に色々と決め付けてその案を潰そうとしてるのはお前の方だと思うんだ
それに対して2Dって選択肢は間違いでもないだろって話であって
今回のだって圧縮のやりようで許容範囲でしょ

163 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 20:16:37 ]
時間も金も無限にあるわけじゃないんだから、必ずしも毎回ベスト目指せるような環境とは限らん
あーこれ駄目だよな、とか思いながら騙し騙しやっていくもんじゃないだろうか?

164 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 20:22:47 ]
今時ならGPGPUでデータのリアルタイム解凍しながら描画とか出来るしな。

165 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 22:10:27 ]
>>156
テクスチャアニメーションで粒子を表現って普通のパラパラアニメじゃないの?
頂点シェーダではき出すって、頂点シェーダのプログラムをはき出すの?


166 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 22:12:12 ]
>>164
GPU 周りが GPGPU を使えるほど余裕があるようなシチュエーションってそんなにあるか?

167 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:08:26 ]
>>166
3Dゲームだとぶっちゃけない。
ただ2Dでパラパラアニメするって言ってるんだから
殆どGPU使わないような2Dゲーなのかと思っただけ。



168 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 01:30:50 ]
>>162
>今回のだって圧縮のやりようで許容範囲でしょ
じゃ、やれば?
ただ、3Dだったらもっとよくなったかもねw

169 名前:64 mailto:sage [2008/08/04(月) 03:41:04 ]
ものすごい議論が進んでしまっているようで
なんだか割り込んでしまう形になってしまうのですが、一応報告を…

あ、ちなみに今回のは学校の友達と一緒に作っているようなレベルで
高価な機材やソフトとかも全然無い状況なのです。
なので締切りも無く、時間が限られてるわけでもなかったりします。

なので、とりあえず3Dでやってみることにしました。
今までDirectDrawしか触ってなかったもので、3Dには正直疎いのですが
これを機に勉強してみることにしました。

圧縮やフレーム数の削減なども考えたのですが、
これを機に3Dにも手を出してみることにします。
(アニメ調のものもあるので、表現しきれるかはわかりませんが…)

相談に乗ってくださってありがとうございました!

170 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 14:37:05 ]
お互い相手の良い所が見えてない生き物が自己主張してるだけなので
この話題はこの後もグダグダ続く。
適当に教わったことにして話題を切り上げた>>64は優秀。

171 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:20:29 ]
切り上げたのに余計な蛇足つけんでも(笑)

172 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 14:56:26 ]
directXで背景が3Dの2DSTGを作ろうと思ってるんですが。

DXライブラリの様にクライアント領域左上が(0,0)で座標の管理がしたいんですが
どういった関数郡を使えば良いんでしょうか。

DXライブラリとdirectXの両方で使おうとおもってDXライブラリの設定にしたら
directXでプログラムしたところがエラー吐いてどうすればいいのか。

DXライブラリで出来るということは元のdirectXで出来ると考えて良いんですよね?

どなたか助言頂けると幸いです。

173 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 15:15:01 ]
3D描画も左上(0,0)にしたいのか?
2D描画のみでいいなら楽だが

174 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 15:19:47 ]
レスありがとうございます。

3Dの部分を描画した後2D部分を描画すれば問題なさそうなので
2D部分のみでも良い方法があったら是非教えて頂きたいです。

175 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 15:28:45 ]
関数群ってよりかカメラの設定かな。
DirectXならD3DXMatrixOrthoOffCenterLHを使うと、
物体を遠くに置いても小さくならない。座標を2D画面の様に使える。
詳しく知らないけどDXライブラリで出来ることはDirectXでできると考えて問題いと思うよ。
ただ、共存はどうだろう?俺がライブラリ作者なら勝手に内部数値変えといて後でバグ報告されるとたまらんから、
非推奨、自己責任でってするけど。

176 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 15:29:33 ]
射影行列変換に
D3DXMatrixOrthoLHを使う(引数wとhはウインドウサイズ)
座標変換済み頂点の板ポリで2D描画する

177 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 15:31:09 ]
DXライブラリは使ったことがないので知らんが、
3D座標上の特定の奥行きをスクリーン座標に合わせるのであれば、
奥行きと視野角から行列を逆算すればいい。



178 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 15:57:53 ]
おお、こんなにレスが、、ありがとうございます。

カメラの
D3DXMatrixLookAtLH を D3DXMatrixOrthoOffCenterLHに

射影変換の
D3DXMatrixPerspectiveFovLH を D3DXMatrixOrthoLHにでいいんでしょうか?

とりあえずやってみたら板ポリゴンも何も表示されなくなってしまいました。

179 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 16:01:55 ]
とりあえず該当箇所は現状こんな感じでプログラムしてました。

//ビューマトリックスの設定
VOID ViewMatrix(LPDIRECT3DDEVICE9 theDevice) {
D3DVIEWPORT9 vp;
if(FAILED(theDevice->GetViewport(&vp))) {
return;
}

// アスペクト比の計算
float aspect;
aspect = (float)vp.Width / (float)vp.Height;

// 初期化
D3DXMatrixIdentity(&m_proj);
// 射影マトリックスを作成
D3DXMatrixPerspectiveFovLH(&m_proj,
D3DXToRadian(45.0f), // カメラの画角
aspect, // アスペクト比
1.0f, // nearプレーン
1000.0f); // farプレーン
//ここにD3DXMatrixOrthoLH(&m_proj,640,480,0,0);?
// マトリックスをレンダリングパイプラインに設定
theDevice->SetTransform(D3DTS_PROJECTION, &m_proj);
}

180 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 16:02:26 ]
//カメラの設定
VOID Camera(LPDIRECT3DDEVICE9 theDevice) {
D3DXMatrixIdentity(&m_view);
D3DXMatrixLookAtLH(&m_view, &D3DXVECTOR3(0.0f, 0.0f, -50.0f),
&D3DXVECTOR3(0.0f, 0.0f, 0.0f),
&D3DXVECTOR3(0.0f, 1.0f, 0.0f));
//ここにD3DXMatrixOrthoOffCenterLH(&m_view,0,640,0,480,0,0);?
theDevice->SetTransform(D3DTS_VIEW, &m_view);
}

181 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 16:22:53 ]
D3DXMatrixLookAtLHは変えなくていい
D3DXMatrixOrthoLHにnearプレーンとfarプレーンが設定されてない
D3DXMatrixOrthoLH(&m_proj,640,480,1,1000);

182 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 16:42:05 ]
出来ました、この場合だと中心が0.0になるんですね。
でもこれでかなり理想に近い状態になりました。

本当にありがとうございました、皆様に追いつけるよう頑張ります、、、

183 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 16:51:47 ]
だから座標変換済み頂点を使えと
D3DFVF_XYZRHWか
D3DDECLUSAGE_POSITIONTでぐぐれ


184 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 15:13:11 ]
WinXPで(D3D10を使用しないで)、最新GPUのリソースをフルに使うには
どういう選択肢がある?
nVidiaならCUDA?
ATiは?

185 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 16:16:13 ]
directXのカメラの原点を一時的に移動するにはどうしたらいいでしょうか。
(0,0,0)にある原点を(30,0,0)に移動して描画した後また(0,0,0)に戻したりしたいのですが。

186 名前:185 mailto:sage [2008/08/06(水) 16:23:08 ]
言葉で上手く表せないので絵にしてみました。
ttp://hishou.ddo.jp/~bbs/up/img/up084.jpg

187 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 20:08:10 ]
文字通りカメラの原点を移動して戻せばいいんじゃね?



188 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 20:41:47 ]
そのやり方がわからなかったんですけど、うんこしてる間に自己解決しました。

189 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:19:27 ]
>>184
ビデオカード毎に全部作る気概があるの?
そうでないならシェーダーでよくね?

190 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 07:08:44 ]
GPUの性能をフルに引き出すのが目的なのか、
何らかの目的のためにGPU性能を引き出したいのか・・

191 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 07:42:46 ]
GPUの性能なんて、フルに引き出したら発熱量が増えるだけじゃん。

192 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 00:55:42 ]
ちょっと疑問なんですが。

winapiのタイマーで10mscに1回WM_TIMERを送ってrenderを呼んでるんですが
10mscの間にrenderの処理が終わらなかったら処理はどうなるんでしょうか?

処理ののコマ抜けみたいなのが起きたりするんじゃないかと不安なんですが。
変数ループで1から100の間の50ループ目だけ飛んだり。

ちなみにリフレッシュレートはD3DPRESENT_RATE_DEFAULTで固定してます。
これってリフレッシュレートに合わせて描画してると考えて良いんですよね?

だとすると尚更メッセージループとの誤差が生じるんでは内科と心配なのです。

193 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 01:07:52 ]
処理し終わってから次のWM_TIMERが来る

194 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 02:32:27 ]
タイマーが10msに一度やってくるとでも思ってるのだろうか

195 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 10:00:49 ]
サンタが街にやってきた

196 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 12:25:47 ]
CとC++の勉強が一通り終わったのでDirectXのグラフィックについて勉強しようと思うのですが
WIN32APIを極めないで勉強するのは無謀ですか?
少しだけ勉強したのでWIN32APIの基礎ならわかります。

197 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 12:29:35 ]
>>196
極めてる人はそういないと思うよ
いつまでたってもヘルプ見ながら書いている俺




198 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 12:31:02 ]
窓開いてHelloWorld出せる程度でとりあえずは十分

199 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 12:37:35 ]
>>197 >>198
なるほど〜。
C言語に比べて覚えることが多すぎてちょっとびっくりしていましたw
アドバイスありがとうございました!






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<247KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef