【C++】 DirectX初心者質問スレ Part35 【C】at TECH
【C++】 DirectX初心者質問スレ Part35 【C】 - 暇つぶし2ch117:デフォルトの名無しさん
11/06/06 13:09:01.58
>>115
チェックするかどうかは自分次第の話なのに、なんで他人事なんだ?
まさかD3DXに頼りっきりでごねているとか低レベルな話じゃないだろうな。

118:デフォルトの名無しさん
11/06/06 13:14:13.77
そもそもデータに付いているGUIDを振り分ける程度の単純作業で、
負荷が起こっていると勘違いしている時点で、
フォーマットを全く理解していないのが丸わかりだ。

119:デフォルトの名無しさん
11/06/06 13:21:02.88
低脳な煽りが住み着いてるな

120:デフォルトの名無しさん
11/06/06 13:31:28.50
適当なことを言えば煽られる
毎度の流れ

121:デフォルトの名無しさん
11/06/06 14:42:56.52
>>117
「Xファイルのロードとは聞かされていたが、D3DXでロードしているとは思わなかった(キリッ」

「Xファイル使ってD3DX使わずにロードする」ことのメリットを教えて欲しいわw

122:デフォルトの名無しさん
11/06/06 14:48:24.28
>>118
Xファイルのローダーの仕様分かってないんだな…
知らないなら知らないって言えばいいじゃん。普通はそんなこと調べるくらいなら独自フォーマット使うから、知らないのは恥じゃないよ?

GUIDを振り分ける作業とか意味不明。
Xファイルで「ヘッダでの配列長の指定と、実際のデータの長さが異なるデータ」をつくってロードさせてごらん
頂点配列あたりがいいかな
きちんと「適切なエラー情報」を返してくれるから。

つまりこのローダー、律儀にもValidateチェックしてくれてるんだよ
当然激遅なわけ。わかった?

適当な事って簡単に言ってくれるけど、こっちは実際に自分でテストしたんだぜ?
想像だけでケチつけるなよ
気持ちはわかるが…(俺だって、MSがこんなまぬけな実装してるなんて最初は思ってなかったからな)

123:デフォルトの名無しさん
11/06/06 14:52:29.86
横からマジレス
フォーマットの理解と、ローダーの仕組みってまったく関係なくね?
そしてXファイルのフォーマットって化石の生えた黎明期なりのもんだろ?
実際に自分でロードしたことないのが丸分かりだ
10000頂点で100アニメーションくらい入れたスキニングモデルでもロードさせてみろ
30秒はかかるぜ(苦笑)

124:デフォルトの名無しさん
11/06/06 15:06:24.86
>>122
>GUIDを振り分ける作業とか意味不明。
拡張できるようにするために、
データのテンプレートごとにGUIDが設定されているんだが、
意味不明とはどれだけ仕様を理解していないんだよ。

125:118
11/06/06 15:07:25.46
ごめんなさい
2chは煽って嘘かけば情報もらえるって聞いてたのでやってしまいました
マジごめんなさい

126:デフォルトの名無しさん
11/06/06 15:07:29.21
Xファイル使ってた人は今どんなフォーマット使ってるんだろう?

127:デフォルトの名無しさん
11/06/06 15:09:51.80
>>124
「GUIDを振り分ける程度の単純作業」だから負荷が無いって言ってるのが意味不明なんだよ
単純なダンプができなくなることが超絶痛いってのに。アホかと
はぁ・・・まじで一回自分で実測してこい。実測結果貼り付けるまで相手にせんからな

128:デフォルトの名無しさん
11/06/06 15:11:39.94
>>126
ゲーム作るのなら自作フォーマットお勧め
ってかそれ以外選択肢はまずない
製作途中の中間フォーマットは一般的な3Dツールのデータだけど、ゲームEXEが読み込むファイルのは独自フォーマットに限る

129:デフォルトの名無しさん
11/06/06 15:15:32.35
>>124
あのー、カスタムテンプレートをXファイルローダーがどう処理してるか本当に理解してますー?
なんかGUIDでの指定によって、それに対応したローダーが呼ばれるみたいな言い回しに聞こえるんですがww

130:デフォルトの名無しさん
11/06/06 15:23:00.54
D3DXの実装が腐っているのと、Xファイルのフォーマットの問題が混同して語られているのは何とかならんのか?

131:デフォルトの名無しさん
11/06/06 15:27:34.68
Xファイルの読み出しでもっとも負荷がかかるのは、
マテリアルごとに頂点とスキンウエイトを並び替える作業のところ。
これが腐っていると時間がかかる。

アニメーションは普通なら重くなることは考えにくいが、
データはキーフレームではなく、ベタの行列が大量に入っているような腐ったデータを利用していると極端に重くなる。

前者は実装の問題で、後者はデータ生成時の問題。

132:デフォルトの名無しさん
11/06/06 15:54:53.43
>>122
>Xファイルで「ヘッダでの配列長の指定と、実際のデータの長さが異なるデータ」をつくってロードさせてごらん

ロードの流れは、GUIDでタイプを判別して、個数分データを読み込んだ後、
次のブロックでまたGUIDを判別してデータを読み込む作業を繰り返しているんだよ。
だからサイズが間違っていたら、登録されているIDと一致しなくなってエラーになるだけの話。
その程度の処理のどこに重くなる要因があるんだよ?

133:デフォルトの名無しさん
11/06/06 16:43:18.51
まだやってんの?

134:デフォルトの名無しさん
11/06/06 16:55:45.09
>>128
自作フォーマットって
カリングとか考慮するレンダラーも自作することを考ると
オープンソースなフォーマット採用するより
自分でフォーマット定めたほうがやりやすい?

135:デフォルトの名無しさん
11/06/06 17:16:33.50
XNAはFBXも使えるよ!

136:デフォルトの名無しさん
11/06/06 17:28:24.08
Xファイル無しでアニメーションって作れるの?


137:デフォルトの名無しさん
11/06/06 17:33:46.45
もちろん作れる。
自作フォーマット内にアニメーションの情報も格納できるようにしておいて、
プログラムの描画時とかにそのアニメーション情報に応じて動かせばOK。

138:デフォルトの名無しさん
11/06/06 18:16:12.82
D3DXにはHierarchy・・・関数とかあって最適化とかしてもらえるけど、自前でアニメーション機能を
実装しようとしたら難しそう

139:デフォルトの名無しさん
11/06/06 19:20:26.67
アニメーションといったって、フレームの行列を差し替えるだけなのに、
何が難しいのかさっぱり分からん。

140:デフォルトの名無しさん
11/06/06 19:23:08.63
>>139
難しいのはクラス設計じゃないかな


141:デフォルトの名無しさん
11/06/06 19:30:25.96
難しい所は、例えばこのサイトに載ってる内容です。
URLリンク(marupeke296.com)
URLリンク(marupeke296.com)

Xファイルを使わないとなると、ID3DXSkinInfo::ConvertToBlendedMeshで実装されてる機能を
自前で準備しないといけないの?

142:デフォルトの名無しさん
11/06/06 19:43:47.54
インデックスで渡されている通りに、ウエイトを1.0からさっ引きながら展開していくだけの簡単なお仕事です。

143:デフォルトの名無しさん
11/06/06 19:54:58.00
アニメーションコントローラーみたいなクラスを綺麗に設計するのが難しいんじゃないかな

144:デフォルトの名無しさん
11/06/06 20:08:48.75
>>141
そのサイトって、作者自身がいまいちよく分かっていないと思う
だから初心者がみると余計に混乱するんじゃないの?

145:デフォルトの名無しさん
11/06/06 20:16:23.48
プログラムより、モデリングと適切なモーションを付ける作業の方が遙かに面倒で難しい。

146:デフォルトの名無しさん
11/06/06 20:57:52.02
>>131
>データはキーフレームではなく、ベタの行列が大量に入っているような腐ったデータを利用していると極端に重くなる。
Xファイルで、ベタの行列を大量に入れないでまともなアニメーションを作る方法教えてほしいなーw
独自フォーマットならスプライン曲線による補間とかでデータ省けるけど、Xファイルでは知らないなーw

ま、さ、か。キーフレームで等速運動してるしょっぼいアニメーションしか扱ったことないんですかあ?
ここで「AnimationControllerのAdvanceTimeに渡す値をスプラインなりで緩急つけてやればいい」とか言いだしたらもっと笑う

147:デフォルトの名無しさん
11/06/06 21:21:50.92
いやもういじめてやるなよ
なんかこのスレ、無知なまま噛みついてフルボッコにされる奴しばしば現れるよな
何なんだろうな

初心者スレなんだから、噛みつくんじゃなくてきっちりした情報出せばいいのに
もしくは初心者として質問する側に回ればいいのに

148:デフォルトの名無しさん
11/06/06 21:31:56.72
>>146
>独自フォーマットならスプライン曲線による補間とかでデータ省けるけど、Xファイルでは知らないなーw
知らないのはあまりにも酷すぎる。
Xファイルも標準仕様でポジション、スケール、クオータニオンでデータが持てるんだが。
クオータニオンできっちり補完も効くし、無知にも程があるよ。

149:デフォルトの名無しさん
11/06/06 21:36:23.25
結局、行列で大量にサンプリングされた無駄なデータを自分ではき出しておきながら、
読み込みが遅いと言っていただけかよ。
そりゃ当たり前だ、馬鹿すぎる。

150:デフォルトの名無しさん
11/06/06 21:56:23.70
IPOキーフレーム と BVHの違いみたいな話か
つか、Xファイルとか捨てろ。自前で実装しとけ。簡単だから


151:デフォルトの名無しさん
11/06/06 21:58:07.29
>>112
たしかDX9はマルチスレッドの対応がかなり甘いとか
DX10か11は完全に対応していると聞いたので
移行しかないと思われる

152:デフォルトの名無しさん
11/06/06 22:04:22.44
>>148
・・・呆れたorz 心底呆れた
論点そこかよ…行列じゃなくてTranslate, scale, rotateで持てってだけの話かよ・・・

論点をそこだとどう勘違いできるんだよ…「スプライン曲線による補間」がどうそれに関わるんだよ・・・
駄目だこいつ・・・はやくこの板ID出るようにしてもらわないと

153:デフォルトの名無しさん
11/06/06 22:05:17.55
>>148
>Xファイルで、ベタの行列を大量に入れないでまともなアニメーションを作る方法教えてほしいなーw
>独自フォーマットならスプライン曲線による補間とかでデータ省けるけど、Xファイルでは知らないなーw

 ↑これは時間方向のデータ量についての話で、

>Xファイルも標準仕様でポジション、スケール、クオータニオンでデータが持てるんだが

 ↑これはただの単位データ(移動拡縮回転)の話で、

なんて言うか、恥ずかしいくらい話見えてないなお前はよ。
俺は >>146 じゃないが、頼むから勉強しよう。本当に。 あなたは確実に素人だ。



154:デフォルトの名無しさん
11/06/06 22:13:06.74
>>148 が酷すぎる。
サイトの受け売りでわかったつもりでいたのかもしれないが、
その受け売りでさえ、まるで意味を理解してないって事

>クオータニオンできっちり補完も効くし

上の文脈で、「クォータニオンで補間がきっちり効く」 とか、知ったかぶりもいい加減にしろよ。
クォータニオンってのは単にある軸に対する傾きを現してるだけの回転行列の代替であって、
それが補間を効かしてくれる訳じゃないんだよ。 自分で計算するならば、補間処理を し や す い 
ってだけの値。

大方ゲーム製作系の素人が書いた解説サイトの話を、詳細曖昧なままうのみにしてるだけの
知ったかぶり高校生とかだろうけど、 ちょっとは考えて発言しろ。 恥ずかしいから



155:デフォルトの名無しさん
11/06/06 22:13:33.60
行列で持つのから、ポジション、スケール、クオータニオンで持つように変えれば
データ量が3/4になるね
やったね!たえちゃん

156:デフォルトの名無しさん
11/06/06 22:16:05.65
>>155
相変わらずXファイルを理解していないようだが、
行列と違って3要素はばらばらのキーフレームとして持てるの。
だからポジションが曲線を描くのなら1/4。
そのぐらいは理解してから語ってくれ。

157:デフォルトの名無しさん
11/06/06 22:17:17.14
Xファイルごときが独自フォーマットとそん色ないロード速度って主張してる段階で、お子様の妄想だと分かってただろ

158:デフォルトの名無しさん
11/06/06 22:19:56.37
>>156
ああ、うん、そうだね
場合によっては1/4に減らせるね。うん。


で?

159:デフォルトの名無しさん
11/06/06 22:21:53.27
ちなみに行列でデータを吐いたら、モーションブレンドが使い物にならなくなるので、
普通の思考力があるのなら絶対に使わない。

160:デフォルトの名無しさん
11/06/06 22:22:56.10
まだ続くの?

161:デフォルトの名無しさん
11/06/06 22:24:20.76
2Dの場合は回転って角度だけ持てばいいんですか?クオータニオン持つ必要ない?


162:デフォルトの名無しさん
11/06/06 22:24:25.72
(行列データだとモーションブレンドが使い物にならなくなる…?)

(ああ・・・多分、行列データをD3DXAnimationControllerが内部でSTRに分解してくれるってこと知らないんだろうなぁ・・・)

163:デフォルトの名無しさん
11/06/06 22:25:16.97
FBXとかアニメーションデータが残念過ぎる
絶対座標でやってしまってるために走ってるキャラの腕だけアニメーション適用とかできない
なんでここ相対にしなかったの?って担当者ボコボコにしたい
この一点で仕事じゃ蹴られた

164:デフォルトの名無しさん
11/06/06 22:26:10.83
元に戻る保証がないけどね。

165:デフォルトの名無しさん
11/06/06 22:26:32.60
>>161
回転の方向による。車のハンドルをまわすような回転(Z軸回転)しかやらないなら、角度1つでOKっしょ

でも最近だと、2Dであっても3D的な演出を入れることもあるよね
だからそういう意味だと、XYZ軸で回転情報持つと、かっこいい演出つくれるかも

クオータニオンを使うほどのことじゃないと思うな

166:デフォルトの名無しさん
11/06/06 22:28:56.20
>>163
腕のアニメーションを、原点中心で制作すればよくね?
相対にすると「ボーンの向き(とかねじれ)」っていう、非常に厄介なものが入ってくるからなー…

167:デフォルトの名無しさん
11/06/06 22:35:00.39
X-File理解度チェック1
URLリンク(msdn.microsoft.com)
このページの致命的な間違いを指摘せよ

X-Fileについて議論しているなら当然知っている話

168:デフォルトの名無しさん
11/06/06 22:35:46.73
>>166
超面倒臭いだろ
実質使えないだろ
そこに労力使っちゃうぐらいならプラグインでもっとまともなデータ出したほうが速いよ
2行目はいまいち何言ってるのかわからない
単に腕のアニメーションを適用してほしいだけなんだけど絶対座標だからそれができない

169:デフォルトの名無しさん
11/06/06 22:38:39.20
SRTに分解できない可能性があり、
TranslateとScaleに情報が無くRotateだけの行列を
キーフレでの線形補間ができる場面でただただ無駄に格納し
XFile使っておきながら、何故かD3DXのXFileロード関数をなぜか使わない馬鹿

という妄想の産物相手にいばりちらすのってムナしくね?


170:デフォルトの名無しさん
11/06/06 22:39:25.58
>>167
たしか3がねぇ

171:デフォルトの名無しさん
11/06/06 22:40:49.97
>>170
正解

172:デフォルトの名無しさん
11/06/06 22:42:11.31
>>168
どういうシチュエーションだかちょっとわからんのだが…

じゃんけんしてるアニメが入ってるAというFBX
踊っているアニメが入ってるBというFBX

Aのデータから「腕から先のアニメ」だけ抜き取って、Bに適用することにより
「踊りながら、腕から先がジャンケンしてる」アニメを作りたい
とかそういうことだよね?

173:デフォルトの名無しさん
11/06/06 22:43:07.53
マテリアルごとメッシュわけて出力してよ・・・
お前、マテリアルごとわけて描画できんの?
って描画してみたら見事に描画できないしなw
だったらこんなフォーマットにすんなよw

174:デフォルトの名無しさん
11/06/06 22:43:38.08
>>161
その角度から回転の計算をするプロセスが抜け落ちてないか?
クォータニオンはただの行列の代替だよ。 乗算順序によるジンバルロックを回避出来る計算方法ってだけ。
てか、回転ってどういう事だかわかってから言え

あるベクトルを軸にして回転、って言う計算をする場合に有利になるってだけだから、
使うのも使わないのもご自由にどうぞ。

>>159
まともな数学の知識ある人なら、そういう訳わからん事言わないと思う


175:デフォルトの名無しさん
11/06/06 22:45:07.48
MSDNって、致命的な誤訳をほっぽらかしにするよね(´・ω・`)
って、英語でも0123ってなってるわw

176:デフォルトの名無しさん
11/06/06 22:45:11.48
>>172
そうそう多分そんな感じ
ロックマンを走らせながらロックバスター撃たせたいみたいな感じのがわかりいいかもしんない
ってか担当者マジでいまからでも相対データにしてほしい
なんで絶対にしたんだろか?
多くのモデリングソフトとなんでここで違うことしちゃうんだろか?
よくわかってなかったんだろうか?
すげー残念だ

177:デフォルトの名無しさん
11/06/06 22:47:42.06
洋ゲーはアニメーションしてるキャラに瞬きさせないの?
FBX作った奴の感性はそんな臭いがする感じだ

178:デフォルトの名無しさん
11/06/06 22:48:35.53
>>168
>超面倒臭いだろ
>実質使えないだろ
お前が何も知らないだけなのを棚に上げてるだけ。「面倒くさい」んじゃなく「わかんない」と言え。
オフセットして回転したらいいだろ。

ボーンデフォームなんて単に再帰で、ボーン位置をオフセットしてから、それぞれのローカルで回転、
を積み重ねるだけ。
その時、座標空間をきちんと理解してない奴は混乱するが、回転するのは、親のボーンベクトルから見た
自分自身の座標系であって、「各々のローカルで回転」 ではあっても、実際には 「親からの回転の積み重ね」 になればいいだけ
こんなの3D扱ってたら常識っていうか、普通の話。 面倒でもなんでもないっていうか、そのぐらいわかれ


179:デフォルトの名無しさん
11/06/06 22:49:47.31
>>178
無理じゃない?
絶対で作ってあるから足が動いてたら腕のデータは全部無駄のはずよ

180:デフォルトの名無しさん
11/06/06 22:51:56.49
>>174
その計算を含めて何を持てばいいのか、、、
ローカルのz軸中心の回転なら一個在ればいいと思うし

181:デフォルトの名無しさん
11/06/06 22:52:19.96
データ量が増える、回転に問題が生じる、分解にコストが生じると問題だらけなのに、
わざわざX-Fileで行列を使うことを主張する理由はなんなんだろう?

182:デフォルトの名無しさん
11/06/06 22:53:23.22
こっからはフルーツジュースからアップルジュースとオレンジジュースを取り出すみたいな
話になっから不可能だと思うよ
やっぱり絶対座標ってのが致命的
瞬きも口パクもボーンでできないからマジ使えないと思う

183:デフォルトの名無しさん
11/06/06 22:53:40.82
>>176
んー、じゃんけんアニメの腕アニメーションに、
原点から腕までのワールド変換行列の逆行列をかければよくね?

まあ逆行列かけて純粋な「ジャンケン腕アニメ」を作りだす手間自体はあるか…
BVHってボーンはねじれ情報持ってないんだが、おかげでデータが直観的でいじりやすい
ツール間の互換性も保ちやすいしね

184:デフォルトの名無しさん
11/06/06 22:55:46.50
>>181
もともとが「行列を使うのか、SRTを使うのか」ではなく

「毎フレーム、ポーズ情報を持ってるからロードが重いんだろ。線形補間使え。この低能」
「線形補間で済むようなしょぼいアニメなんてさせるかアホ」
という会話が発端でやす

185:デフォルトの名無しさん
11/06/06 22:57:57.11
>>180
データとして保持 「しないといけない」 情報は Z中心の XY平面の回転角だけど、
実際にXY平面上の二軸位置を決定する計算の為に、行列でもクォータニオンでも好きに持てばいいって事
データの性質として must な物と、実際のプログラミングの上で 「使うはずのもの」。

つか、その辺の詳細な計算方法やアルゴリズムとか、スレチだけど OpenGL で
メッシュアニメーション処理とか書いてる人なら、普通に理解してると思う。

186:デフォルトの名無しさん
11/06/06 23:00:15.94
>>180
なんか小難しい話になってるけど、とりあえずZ軸回転1個でいいと思うよ
X軸回転で場面転換!とかかっこいいから、分かるようになったら追加してけばいい

幸い2Dなら「Z軸で回転アニメと、X軸回転アニメを組み合わせて複雑な挙動を」みたいな「回転の合成」は不要だろうし

187:デフォルトの名無しさん
11/06/06 23:01:27.36
>>183
いや、腕から先のアニメーションデータはどうやって相対のを作り直すの?

188:デフォルトの名無しさん
11/06/06 23:03:34.82
>>184
回転でも拡縮でも移動でも、それらは結局、頂点が移動するだけって事を計算処理上、
理解出来てる人じゃないと感覚的に理解出来ないかもしれないが、

俺、OpenGLでボーンデフォーム処理書いた時、キーフレーム間の頂点位置変化は、4点ベジエ計算で補間して変化付けてたので、
データ量軽い、動きも統合3DCGソフトと同じになりました。 DirectX でも同じような処理書いたけど、
X-File とか正直いらない。 あれは簡単なデモを作りたい人向け。 俺はリアルタイムでアクションな物を作ってたので、あの形式は色々都合が悪かった

189:デフォルトの名無しさん
11/06/06 23:08:22.39
一応、簡単にだけ補足しておくと、
>キーフレーム間の頂点位置変化は、4点ベジエ計算で補間して変化付け
って言うのは、(わかってる人には蛇足でしかない話だけど)、
あるフレームからあるフレームまでの変化量 0.0 ~ 1.0 の範囲について、等速直線でなく、放物線のような変化を付けているって事
偏りをもたせた周期関数のような楕円運動に似た計算

190:デフォルトの名無しさん
11/06/06 23:11:13.35
>>188
こんな話の流れ。馬鹿に返答してるのは俺だけでなく、何人かだが・・・。

Xファイルはロードも重いことだし、独自フォーマット使おうぜ

>Xファイルロード重いとかお前が馬鹿なだけ。バイナリなら軽い。テキスト使ってるだろww
いや、バイナリだが…
整合性チェックやら、カスタムテンプレートやら丁寧すぎて遅いんだぜ
独自ならダンプで済むから速いぜ

>GUIDで分岐(意味不明)してるだけなのに遅いわけねーだろwww
意味わからん。アニメデータ100個くらい入ってるXファイル作って実際に試してみろ

>どうせアニメデータにベタの行列が大量に入っているような腐ったデータ利用してるんだろwww
いや、ベタにいれないとまともなアニメにならんだろ
補間関数を使うくらいなら独自フォーマットでやるわ

>行列使ってるんだww馬鹿じゃねwwwSRT使えよwww
いや、SRTか行列かって話じゃなくて、補間の話なんだが。線形補間じゃあまりにしょぼいだろ

>行列は欠点だらけだし、アニメーションブレンドも使えなくなる。お前馬鹿ww
いや、アニメーションブレンドできるし。というかD3DXが勝手にSRTに置き換えるし

>・・・(逃走)

191:デフォルトの名無しさん
11/06/06 23:13:06.52
市販のフォーマットはロクなのがねーな
結局、プラグインで出すしかないのか・・・
同人開発はまだまだメタセコから離れられないな

192:デフォルトの名無しさん
11/06/06 23:15:51.23
共通フォーマットでリアルタイム向けで一番ましなのがXファイルだからな
マジでこんな10年以上前のフォーマットからいまだに進歩ねぇとか笑うよね

193:デフォルトの名無しさん
11/06/06 23:16:08.22
同人開発w
だからXファイルとか使っちゃうのか
プロなら絶対使わないし、Xファイルの仕組みくらいわかってるわな

194:デフォルトの名無しさん
11/06/06 23:19:36.12
だれか「もう休め!」ってやってるAA張ってやってくれ

195:デフォルトの名無しさん
11/06/06 23:26:16.41
>>187
腕までのアニメーション行列の乗算結果の逆行列をかければ、原点を中心とした腕(から先)のみのアニメーションがとりだせるっしょ?
それを踊りアニメーション側に適用してやればいい

196:デフォルトの名無しさん
11/06/06 23:32:10.57
>>190
そうだったか・・・ なんか凄いな。

俺の場合、Blender上で作成したメッシュの頂点とそのインデクス(面構成用)とマテリアル、
あとボーンの再帰的なオフセットと位置と回転行列(実際はクォータニオン)とをセットで吐き出す
Pythonスクリプトを書いて、俺の都合で階層化させて加工した内容を吐かせた

ついでにアニメーションキーフレーム単位で、各アニメーション対象オブジェクト(主にボーン)の位置と回転を
吐かせる Pythonスクリプトを書いて、

これら両者の情報を合体した物を自前のモジュールで読んで更新と描画してる。
元々リアルタイムアクション向けと割り切った物なので、時間当たりの計算量を減らす為、ストレートな処理をしてないが
自前で実装するとぶっちゃけ、なんでも自由に自分の都合で実装出来るから気が楽。

197:デフォルトの名無しさん
11/06/06 23:37:08.52
>>195
丁度それ、俺が上で書いてるアニメーション情報の書き出しの段階で、予めやってる計算と同じ。
自前フォーマットだとこういう事前加工が自由に出来るから気が楽。

インバースした行列で各間接単位のローカル位置と回転情報を、事前にそうやって整理して吐き出してしまえば
あとの実行時に余計な計算しなくて済むから、便利

198:デフォルトの名無しさん
11/06/06 23:38:43.00
>>196
やっぱ自前で出力プラグイン書くしかないかー

>>192
むしろ、完成度が高いと考えるんだ
必須なのに無い機能っていったら、マルチテクスチャくらい
Xファイル完成度高い

199:デフォルトの名無しさん
11/06/06 23:39:08.93
公開もしてない自前フォーマットの方が断然優れてるとか熱弁されても
ここで聞いてる人間はふーんとしか言いようがない

200:デフォルトの名無しさん
11/06/06 23:42:33.69
>>199
なあ、148さ。そろそろいい加減にしとこうや
独自フォーマットなら色々できるんだぜって教えてくれてるんだぞ?
スレの結構な人数が、お前のために色々レスうってくれたんだぞ?

そろそろお礼いってしめようや

201:デフォルトの名無しさん
11/06/06 23:44:11.05
どの書き込みか見るのが面倒だから安価にしてくれw

202:デフォルトの名無しさん
11/06/06 23:45:14.68
まだ続きますか?

203:148
11/06/06 23:48:11.99
ごめんなさい・・・
ほんとはXファイルのこと調べてても全然わかんなくて
先輩に2chは嘘情報でもいいから自信満々で書けば訂正レスの形で情報くれるって聞いてたもので・・・
今度からはちゃんと質問するようにします

204:デフォルトの名無しさん
11/06/06 23:52:52.19
>>199
公開するとかしないとかじゃなくて、また断然優れてるとか優れてないとかそういう話じゃなくて、
俺は、 「俺の都合で書き出して、俺の都合で読み込んで、俺の都合に合わせた」 と話しただけだよ
そして多分、多くの人が 「自分の都合で何かをしたい」 はずだから、既存のフォーマットで満足いかない案件なら
自分で実装した方がいいと、言ってるだけ。 文意の理解もそうだけど、処理を理解しよう


205:デフォルトの名無しさん
11/06/07 00:38:23.01
>>193
プロはスレタイも読めないのか。

206:デフォルトの名無しさん
11/06/07 00:42:46.60
先輩「2ちゃんで聞け・・・!」
悲しくなってくるな

207:デフォルトの名無しさん
11/06/07 01:05:57.16
ID出ないから>>148が本物であるという証拠もないという

208:デフォルトの名無しさん
11/06/07 06:41:41.99
>>195
それだと行列キーのアニメーションしかできないじゃん
上で言われてるXファイルのクソアニメーションといっしょじゃん
0→180みたいなのいちいち気を配ってないといけない

209:デフォルトの名無しさん
11/06/07 07:57:17.81
unity最強


210:デフォルトの名無しさん
11/06/07 09:09:28.16
>>208
いやー、そんな後から後から条件追加されても困るわ^^;
別にSRTでやればいいじゃないか
処理速度がというなら「原点に移動させた腕のSRTによるアニメーション」データを持つ別FBXを生成しておけばいいじゃないか

FBXで「可能」なんだから、何に焦点あわせたデータ設計にするかは思想によるんじゃね?
FBXは絶対座標で扱うおかげで、ボーンのZ軸回転に非対応なBVHと互換性をもてるわけだし
プロの世界じゃBVHとの互換性はかなり重要なんじゃね?
(プロじゃないから分からんけど)

211:デフォルトの名無しさん
11/06/07 11:37:43.05
FBXでも出すツールによって中身違うじゃん、MAYA使っててモーションブレンドとかレイヤーモションとか困ったことないよ。Lightwaveん時は
割りと困った。

212:デフォルトの名無し
11/06/07 12:42:49.66
質問です。
URLリンク(rina.jpn.ph)
このサイトを見ながら練習していて、いま
URLリンク(rina.jpn.ph)
このページの上から3/4ほどの「プログラムの無駄を省く」の直前のところまでやったのですが、ついに以下のエラーが出てしまいました。

1>------ ビルド開始: プロジェクト: ddrawsamp01, 構成: Debug Win32 ------
1>2011/06/07 にビルドを開始しました。
1>InitializeBuildStatus:
1> "Debug\ddrawsamp01.unsuccessfulbuild" のタッチ タスクを実行しています。
1>ClCompile:
1> WinMain_04_01.cpp
1>c:\users\takahiro\documents\visual studio 2010\projects2\ddrawsamp01\ddrawsamp01\winmain_04_01.cpp(373):
error C2664: 'IDirect3DDevice9::SetVertexShader' : 1 番目の引数を 'int' から 'IDirect3DVertexShader9 *' に変換できません。(新しい機能 ; ヘルプを参照)
1> 整数型からポインター型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。
1>
1>ビルドに失敗しました。
1>
1>経過時間 00:00:02.25
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========


まぁページタイトルにあるようにDirectx8用のコードだとは分かっているのですが、
初心者の自分にも分かる良いサンプルが無かったため、このサイトで練習しています。
ヘッダファイルのインクルードなどは8から9に書き換えてあります。

ちなみに今現在のcppファイルはこんな感じです。
URLリンク(www1.axfc.net)

初心者で申し訳ないのですが、どうすればいいでしょうか?
どうぞよろしくおねがいします

213:デフォルトの名無しさん
11/06/07 13:00:35.63
>>212
SetVertexShaderの引数はIDirect3DVertexShader9*だよ
9で変わったんだよ

214:デフォルトの名無し
11/06/07 13:16:33.07
>>213
すいません初心者なもので、具体的にどこを変更すればいいのかわかりません・・・
問題となってるのが
// 頂点フォーマットを設定
gl_lpD3ddev->SetVertexShader(FVF_TLVERTEX);
なので、21~22行目の
/* 頂点フォーマット(基本形)*/
#define FVF_TLVERTEX (D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1)
あたりを変更すればいいのでしょうか?

よろしければ教えて下さい。。

215:デフォルトの名無しさん
11/06/07 14:04:49.76
>>214
gl_lpD3ddev->SetFVF(FVF_TLVERTEX);

216:デフォルトの名無しさん
11/06/07 16:07:22.96
>>214
そのサイトはDirectX8の解説なのにDirectX9でやってないかい?

DirectX8のSetVertexShader()は単純に頂点フォーマットを指定する機能だけど、
DirectX9のSetVertexShader()はプログラマブルシェーダをセットするという
全然違う機能に変わってるんだよ。

で、DirectX8のSetVertexShader()に相当する機能は DirectX9では
>>215 の書いているSetFVF()になったというわけ。

217:デフォルトの名無しさん
11/06/07 23:42:56.56
>>210
後付けじゃねーじゃん
こんなの昔からあって必要なフォーマットも割りと仕様が決まってるんだから
FBX1人で変なデータ作って使いにくくなってんじゃん
(しかも、アニメーションデータに関してだけミスりやがった・・・なぜだー(泣))

218:デフォルトの名無しさん
11/06/08 08:39:29.85
絶対座標って何がぜったいなんだ?
腕のアニメーションは普通に肩からのローカルで入ってるから普通に階層計算したら再生されるが。

219:デフォルトの名無しさん
11/06/08 09:15:46.62
>>217-218
だから、出力するツールによって好きにできんのよ、FBXは。
217のは「基点(多分キャラの足元?)となるボーンからの差分行列が、それぞれのボーンに入っている」タイプ
218のは「基点となるボーンではなく、それぞれのボーンにその親からの差分行列が入っている」タイプ。Xファイルとかと同じ

FBXはファイルフォーマットを定義しただけなんだから、フォーマット内でどうデータを格納しようが自由だろ

217タイプのにも利点があって、217タイプのなら階層計算せずに、全てに同じ行列をかければアニメーションを合体させられる

220:デフォルトの名無しさん
11/06/08 09:37:19.35
独自フォーマットっていったってモデリングソフトが
Xファイル出せてアニメーション作れるんだからそれ使うほうがいいだろ

221:デフォルトの名無しさん
11/06/08 09:40:17.16
頂点ブレンディングって使いにくくない?
XXfpsで何コマ目を表示とかのほうがやりやすいんだが

222:デフォルトの名無しさん
11/06/08 18:38:21.45
directx10でもデバイスってロストするん?

223:デフォルトの名無しさん
11/06/08 18:41:34.61
する
しかし長時間フリーズしたり物理的に引っこ抜けてたりしない限り、早々しない

224:デフォルトの名無しさん
11/06/08 19:05:48.25
なるほど
ども

225:デフォルトの名無しさん
11/06/08 23:22:07.19
>>219
そうか?
俺にはボーンの親子関係のデータが発見できなかったが・・・
相対データで入ってるFBXのデータってボーンの親子関係の情報はどこに格納されてんの?

226:デフォルトの名無しさん
11/06/09 00:23:29.61
>>225
いやいやいや普通にnodeをトラバースするだけじゃん、、、
ボーン変換用のオフセット行列もnodeにちゃんとはいってるし。

227:デフォルトの名無しさん
11/06/09 08:38:14.89
>>220
お前上の方の話何にも見てないのな

228:デフォルトの名無しさん
11/06/09 21:20:57.88
>>226
具体的にどこに入ってるのか家よ

229:デフォルトの名無しさん
11/06/11 08:28:15.54
なんでこんなに上から目線なんだよw

230:デフォルトの名無しさん
11/06/11 08:33:14.38
GetChildNode()するだけだろう。
NodeType()がSKELTONなら骨だ。
あとはそのまま掘っていけばツリーができる。
オフセットの行列はSkeltonNodeからGetしろ、実際には2種類の行列が入っていていい感じに加工することで求まる、あとはサンプルとヘッダファイル全部見ればわかる。

231:デフォルトの名無しさん
11/06/11 08:47:41.95
そんなこと聞いても>>228の使ってるモデリングソフトが相対で出してなきゃその時点で終りじゃね?

232:デフォルトの名無しさん
11/06/11 11:07:23.34
そりゃプラグインに文句言え。
オレはmayaしかつかわねーし、フリーならToyStudioだってあるじゃねーか

233:デフォルトの名無しさん
11/06/13 11:46:34.54
DirectX11で三角ポリゴンをだすサンプルは多数みつけて
実現できたのですが、線を描画するサンプルはなく、
線だけ描画したいのですがどうすればいいのでしょうか?

IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);を

D3D11_PRIMITIVE_TOPOLOGY_LINELIST
D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP
やかえるとおもうのですが検索してもサンプルがでてこなくてorz

234:デフォルトの名無しさん
11/06/13 11:52:13.35
>>233
サンプルもクソも、
それ変えて頂点バッファを適切に設定すればいいだけじゃないか
それが分からないならopenglとか使えよ
拍子抜けするくらい簡単に線がかけるぞ

235:デフォルトの名無しさん
11/06/13 12:01:00.34
>>234
そうするとかけたポリゴンがでてきたりして
頂点バッファを適切に設定ってとこがだめだとおもうのですがw

236:デフォルトの名無しさん
11/06/13 12:16:01.44
DirectX10とか関係ねぇ。
マニュアル読めって。

237:デフォルトの名無しさん
11/06/13 17:55:52.52
>>235
ポリゴンは3頂点で一枚だが、線は3頂点で2本

とか下らないことでポリゴンが欠けるとか言ってる訳じゃ無かろうな

238:デフォルトの名無しさん
11/06/13 23:59:56.12
>>233
もしかしてワイヤフレーム表示したいって意味?
そうだとしたらラスタライザ・ステートのFillModeをD3D11_FILL_WIREFRAMEにするだけだけど・・・
単純に線を描画したいなら、線リストとか線ストリップについて勉強しなおした方がいい

239:235
11/06/14 08:37:17.66
うまくいきました。
ありがとうございます。

240:デフォルトの名無しさん
11/06/14 22:06:59.11
XAudio2で質問です
IXAudio2SourceVoiceのStartで再生が終わったあと
ループではなく、数秒後に再び再生させるにはどうすればいいんですか?
再生位置をコントロールする方法がないみたいなんですが・・・

再度、SubmitSourceBufferを呼んで初期化するしかないんですか?

241:デフォルトの名無しさん
11/06/18 09:35:27.74
60FPSまではポリゴンがかけずに
100FPSあたりまでいくとテクスチャがかけたようなかんじに
チカチカするのは、プログラムのほうのミスですか?
それともグラボのメモリとかのもんだいもあります?


242:デフォルトの名無しさん
11/06/18 12:16:54.80
>>240
あらかじめ無音をsubmitしておけばいんでね?

243:デフォルトの名無しさん
11/06/18 18:32:54.42
>>241
垂直同期とかじゃねえの?

244:デフォルトの名無しさん
11/06/18 19:52:04.62
>>241
BeginScene()とかを一回のループに二回以上挟んでるとかじゃね。
っていうか心当たりがあるんなら、それをまず潰してから質問しにこいや。

245:デフォルトの名無しさん
11/06/18 21:24:38.12
関係ないけどDirectX9が一番いいし、一番普及してるよな
Directx10と11は実質使うとせばまり過ぎるしなぁ
XPが完全になくなるまでDirectX8か9で自作ゲームつくるよ


246:デフォルトの名無しさん
11/06/18 21:45:50.36
おまえの意見なんてきいてない

247:デフォルトの名無しさん
11/06/18 21:59:50.47
>>246
で、10とか11で日曜ゲームプログラマーしてる奴っている?


248:デフォルトの名無しさん
11/06/18 22:05:51.72
わりとどうでもいい
してるやつはしてるだろう
ライブラリ使って9,10,11とか気にせずやってるやつもいるだろうし

249:デフォルトの名無しさん
11/06/18 22:07:56.96
>>247
10使ってる奴がここにいますがなにか?

250:デフォルトの名無しさん
11/06/18 22:09:45.82
>10とか11で日曜ゲームプログラマーしてる奴っている?

むしろ海外以外でぐぐって出てくるのはそんなのしか居ないと思うが

251:デフォルトの名無しさん
11/06/18 22:14:08.69
もうunityやってる

252:デフォルトの名無しさん
11/06/18 22:35:42.02
>>249
ホームページアドレス教えてくれよ
Vista以降でしか出来ない物配布してるのか?


253:デフォルトの名無しさん
11/06/18 22:44:42.56
妙な食いつき方してんなあw

254:デフォルトの名無しさん
11/06/18 22:58:03.09
>>253
言うだけだったら誰でもかけるからな
シェーダー使わないとポリゴンすら出ない物を無理に使う必要あるのかなとも思うし


255:デフォルトの名無しさん
11/06/18 23:21:09.84
>>254
>シェーダー使わないとポリゴンすら出ない物を無理に使う必要あるのかなとも思うし

スマフォやWebGLはGLES2を当然のように受け入れてるけどねえ
つーか今時固定機能のステート設定をダラダラ並べる方が苦痛だわ

ぶっちゃけプラットフォームの制限なけりゃD3D9なんてとっくに捨てられてると思うよ?
まあシェーダ云々は別としてD3D1xの手続きがめんどくせえのは否定しない

256:デフォルトの名無しさん
11/06/18 23:42:02.13
まあ、もうゲームエンジンの時代だと思うなぁ
複数ライト使ったときのシェーダとかもうまったく前へ進めないっしょ?
固定とかそういうの使うのもやめなよ
あれ、実は開発進んでくると1描画に関係するステートが頭に全部入ってないと
妙な挙動したときに解決できないよ
たどたどしいシェーダ使うよりやばい状況になる

もうあきらめてunity


これ

257:デフォルトの名無しさん
11/06/19 00:18:58.46
>>256
同意
もはや低レベルAPIは学習用かコア開発者向けへとシフトしていくのかな、
アセンブラやC言語みたく

258:デフォルトの名無しさん
11/06/19 11:31:55.16
日曜プログラマだとゲームエンジン使うのが一番いいと思う
やりたいことに労力をさけるし
描画やダイナミクス、スキンメッシュ自作すると、
ゲームをつくりたいとはじめたのが、なんちゃって自作ゲームエンジン
あたりで力尽きてしまう

ただゲームエンジンつかうと、グラはちがうけど挙動や
ライティングの関係でなんか似てるっていうか
個性というか味が同じに感じる気がするw


259:デフォルトの名無しさん
11/06/19 13:35:44.01
>>258
ツクール系で作られたゲーム・・・みたいな事になるって事だね。

260:デフォルトの名無しさん
11/06/19 23:04:08.64
やりたい事が基礎処理とその応用とその成果物としての
エンジンとか言う物だった場合、真逆です


261:デフォルトの名無しさん
11/06/19 23:06:04.62
>>256 >>257
てかスレタイのライブラリやコアな処理に興味無いなら
とっとと DxLib() でも UDK のスレにでも行けよ

262:デフォルトの名無しさん
11/06/19 23:23:24.73
ゲームエンジンっつったってそんなたいしたことやってないでしょ

263:デフォルトの名無しさん
11/06/20 09:10:23.72
ゲームエンジンって物体の移動とか当たり判定くらいが主な仕事なの?

264:デフォルトの名無しさん
11/06/20 09:24:26.09
ゲームエンジンって、ゲーム作る時に使う関数のセットだろ?
何が主な仕事なのかは設計の仕様によるけど、ゲームに必要なもんは全部関数化してんじゃないの?

265:デフォルトの名無しさん
11/06/20 09:48:16.68
入力の受け取りとか?

266:デフォルトの名無しさん
11/06/20 11:13:43.38
>>260
そういうのはもう学習用や
情報科のレポート程度になってるんじゃね

267:デフォルトの名無しさん
11/06/20 11:42:58.78
Video for Windowsが廃止なのは分かったんですが、
次の、
Direct Show
も廃止ですか?

ネットの説明にあるサンプルが消えてる。。。

268:267
11/06/20 13:30:21.96
それと、ネットから落したプログラムが結構コンパイル通らないんだけど、
Direct ShowがDirectXからPlatform SDKに移動したとき(ググったらそういう経緯があるみたいでつね)に、
インクルードするファイルが変わったのでしょうか?

269:267
11/06/20 14:21:07.65
もしかしてSDK側が、さらに、
Windows SDK
って名前変わったんですか?

270:267
11/06/20 19:03:37.86
Visual C++ 6.0でDirectShowを使いたいだけなんですが、簡単には使えないんですか?

qedit.hは頑張って書き換えましたが、DirectX8.1を入手できないのが痛い(><)

271:267
11/06/20 19:04:29.31
どなたか、VC++6.0と今のDDKで簡単にコンパイルできるサンプル下さいorz

272:デフォルトの名無しさん
11/06/20 19:27:15.60
不可能な事に労力割くなよ。
vc6で使える最終のsdkはFEB 2003だから。
ググればダウンロード可能なリンクが見つかる。

273:デフォルトの名無しさん
11/06/20 22:46:19.63
DDKってドライバ書こうとしてるのか

274:267
11/06/21 10:12:46.45
SDK の間違いでしたorz

上記教えて頂いた内容をググってみたら、やはり、新しいSDKだとVC++6.0とリンクできないみたいです。
URLリンク(d.hatena.ne.jp)

DirectXの旧いのは入手難しそうですね。

>sdkはFEB 2003
を何とか手に入れたいのですが、アップロードされてるものはセキュリティ上難しいし。。。

275:デフォルトの名無しさん
11/06/21 10:13:54.21
ってかあたらしいのでやろうよw
Vc2010だってただなんだし

276:267
11/06/21 10:29:22.25
VC++2010をやる気持はあります。

でも、仕事は環境に合わせないといけないものであってOTL
・改造元プログラムがVC++6ベース。プロジェクトファイルのアップコンバートも怪しいし。
・expressエディションにはMFCが付いてなくてコンパイルできない


277:267
11/06/21 11:09:50.19
URLリンク(mssdk.orderport.net)

あれ?これって正規サイトなのかな?
ここで$0.00で買えるの???

278:デフォルトの名無しさん
11/06/21 11:20:51.69
Windows7にVisualC++6.0をインストール
URLリンク(www9.plala.or.jp)

俺は VirtualPCが良いとおもう

279:267
11/06/21 11:30:46.00


・ Platform SDK February 2003
・ DirectX 9.0 SDK Summer2004
 ↑
現在入手できないのが痛いorz

280:デフォルトの名無しさん
11/06/21 11:44:10.05
DirectShowが使いたい仕事で
Visual C++ 6.0ってどんな環境かよくわからないけどw
MFCを使わないで、VC2010でDLLか静的ライブラリでDirectShowをつくって
VC6で呼び出したらいいんじゃない

281:267
11/06/21 11:56:22.04
DLLでも出来るならOKなのです。
2010のExpressのインストロールから始めるとして、それは簡単にできそうですか?

282:デフォルトの名無しさん
11/06/21 11:57:56.14
ちょっとまて、仕事でやってんのにDLLをつくってアクセスできんってことはないだろうw

283:267
11/06/21 12:01:07.70
そういう意味じゃなくて、
DirectShowって、最新コンパイラでも標準ヘッダーでさえ書き変えないと使えなかったり、
落とし穴多すぎで、
結局走ってコケたらやだな、と。

284:267
11/06/21 12:10:22.95
>DirectShowが使いたい仕事で Visual C++ 6.0ってどんな環境

こちらもお答えしておくと(って、誰得w)、
VC++ 6.0でVideo for Windowsのアプリが作られていました。
今度、新しいカメラになったところ、DirectShowじゃないと繋がらない、と。
アプリのVfWの部分をDirectShowに変更したいんです、アプリの機能を生かしたまま。

285:267
11/06/21 14:59:19.74
DirectX9はX8に追加って情報を見つけました。
また、公式からX9をダウソしました。

しかし、
>\microsoft directx 9.0 sdk (summer 2004)\include\strmif.h(1018) : error C2146: 構文エラー : ';' が、識別子 'HSEMAPHORE' の前に必要です。
>\microsoft directx 9.0 sdk (summer 2004)\include\strmif.h(1018) : fatal error C1004: 予期せぬ EOF が検出されました。
と、エラー。

MSコンパイラにSDKの組み合わせなのに。。。
バカにされてるんだろうか?

286:デフォルトの名無しさん
11/06/21 15:07:24.61
基礎的な知識もないくせに5世代も前の環境を使おうとする時点でry

287:デフォルトの名無しさん
11/06/21 15:14:08.18
それたんにdefineかinclude足りないだけじゃね

288:267
11/06/21 15:21:46.96
include足りないだけってのはその通りだと思います。
同SDKのsanpleフォルダのソースですが。

しかし、サンプル落としまくり、ライブラリを入れたり出したり、
コンパイルエラーをググりまくったり、フォルダ検索しまくったり、、、
もうそろそろ力尽きて倒れそうです。

289:デフォルトの名無しさん
11/06/21 15:45:34.74
もう VC++2010 と最新のSDKで1から作り直した方が早いんじゃね?

290:267
11/06/21 15:57:01.64
VC++2010の選択肢もゼロではないです。

ググってエラー回避見つけましたが、これやっても別のヘッダーエラーが出るorz
URLリンク(ameblo.jp)

291:267
11/06/21 16:38:46.49
URLリンク(blogs.yahoo.co.jp)

この通りヘッダー書き換えやってもダメだorz

>\microsoft directx 9.0 sdk (summer 2004)\include\strmif.h(1020) : error C2144: 構文エラー : ';' が型 'long' の前に必要です。
>\microsoft directx 9.0 sdk (summer 2004)\include\strmif.h(1020) : fatal error C1004: 予期せぬ EOF が検出されました。

イミフメ(><)

292:267
11/06/21 17:10:01.85
ヘッダーファイルのエラーはファイルIDE編集じゃなくてファイル保存したら通りました。

>\PlayCap\playcap.cpp(491) : error C2065: 'CoInitializeEx' : 定義されていない識別子です。

またエラーどこまでも続いて終わりがないorz

293:267
11/06/21 17:36:23.98
また別のサンプルもコンパイルしてるんですが、そちらはそちらでエラー。

: error C2440: 'initializing' : 'long' から 'long *' に変換することはできません。(新しい動作 ; ヘルプを参照)
整数型からポインタ型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。
: error C2664: 'DialogBoxParamA' : 4 番目の引数を 'long (struct HWND__ *,unsigned int,unsigned int,long)' から 'int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' に変換できません。 (新しい機能
; ヘルプを参照)
スコープ内でこの名前を持つ関数でターゲット型に一致するものはありません。


294:267
11/06/21 17:53:57.78
293のエラーはキャストだけで通りますた。

しかし、このキチャナイMFCコードから必要部分を切り出すなんて超ムネヤケ

295:267
11/06/21 18:49:52.16
292は、
>#define _WIN32_DCOM
でコンパイル通りマスタ。

どうも有難うございました。

296:デフォルトの名無しさん
11/06/21 20:49:29.06
【レス抽出】
対象スレ:【C++】 DirectX初心者質問スレ Part35 【C】
キーワード:267

抽出レス数:21


頼むからもうブログでやってくれ


297:デフォルトの名無しさん
11/06/21 21:48:05.01
趣味ならともかく仕事をこの調子でやってるのか・・・

298:デフォルトの名無しさん
11/06/21 21:49:33.83
ワケもわからず、キャストかな

299:デフォルトの名無しさん
11/06/22 07:50:20.46
もしかしてこれやったのか?
クビになるぞ

long* ptr= ...;
long value;

value = (long)ptr;



300:デフォルトの名無しさん
11/06/22 08:17:25.83
&つけたらいいだけちゃうん?

301:デフォルトの名無しさん
11/06/22 08:39:40.08
(type)* value と宣言したものは、
*valueが(type)の変数値を返して、valueがアドレス値を返すとか、
未だに参考書見直さないと混乱するレベル。

(type) value と宣言した場合は &valueでアドレス値返すとかさらに混乱する。

302:デフォルトの名無しさん
11/06/22 09:52:42.52
俺はこんな風に使ってるぜ

class Hoge
{
// 実装クラス
__Type objType;
// インターフェース
__IType* pType;

__Hoge()
__{
____pType = &objType;
__}
};

303:デフォルトの名無しさん
11/06/22 16:00:23.85
>>299
喩えが下手w

304:デフォルトの名無しさん
11/06/22 21:02:24.85
directplayの代わりって何ですか?

305:デフォルトの名無しさん
11/06/22 21:09:53.93
winsocket2

306:デフォルトの名無しさん
11/06/22 22:47:32.49
directshowの代わりって何ですか?

307:デフォルトの名無しさん
11/06/22 23:03:13.95
media foundation

308:デフォルトの名無しさん
11/06/22 23:44:24.44
directmusicの代わりって何ですか?

309:デフォルトの名無しさん
11/06/22 23:57:13.55
midiのことはもう忘れろ

310:デフォルトの名無しさん
11/06/23 06:23:24.87
>>302
メモリ領域を直列にしてデカオブジェクトにするとヒープ効率が悪い

311:デフォルトの名無しさん
11/06/23 11:45:48.15
URLリンク(jp.techcrunch.com)
silverlightの代わりって何ですか?

312:デフォルトの名無しさん
11/06/23 12:14:25.46
flash

313:デフォルトの名無しさん
11/06/24 08:57:11.75
複数ウィンドウ使うときってウィンドウの数だけ
Direct3DDevice::Present()呼ぶんですか?
良い方法あったら教えてください

314:デフォルトの名無しさん
11/06/27 00:29:57.50
水素原子の波動関数を3Dであらゆる角度から見ることのできるアプリを作成したいです
もちろんWindows上で動かしたいので
Win32API + DirectX で作成しようと思っているのですが比較的容易で適当な選択でしょうか?
まだWin32APIを少しかじった程度なのでよくわからないのです…
また、DirectXに関しては無知なのでよい説明サイトや書籍がありましたら紹介してください
よろしくお願いします

315:デフォルトの名無しさん
11/06/27 00:55:23.28
>>314

サンプルコードです。こんなので良いですか?
URLリンク(www1.axfc.net)


316:デフォルトの名無しさん
11/06/27 01:11:49.44
ryanさんよー。テクスチャが絶対パスなのはよろしくないとおもうよ。
あと、ダークベーシックはやったこと無いからわからん。

317:デフォルトの名無しさん
11/06/27 01:33:09.31
>>314
簡単に言うと Win32APIを C言語かC++言語で呼び出して何かする、
程度をかじった事があるくらいの状態で、かつDirectX については全然わからない、って事だよな?
で、関数プロットを3Dで行いたいと。 そして質問が、「その選択は(何かと)比較して、容易で適当な選択か」 だと。

答えはあなた次第です。まず言語そのものには慣れているのか、とか
プロットした結果を三次元で描画したいだけなら、別にDirectXなんか無くてもおkなはず。
容易かどうかはあなたのスキル次第。適当かどうかは上に書いた通り。 てか、ややスレチ気味

318:デフォルトの名無しさん
11/06/27 01:42:18.12
学術方面だったらOpenGLのほうが根強いイメージだな。GLUTとかあるしな!

319:デフォルトの名無しさん
11/06/27 01:50:49.60
関数の結果プロットしたいだけなら、GDIで普通に座標変換して描画してもいいよな
大した手間じゃないし、欲しい内容の本筋と離れた多くの設定群も書かなくて済むし。
昔から三次元グラフとか、普通に計算して描画してた訳で、ただそれだけの事

320:デフォルトの名無しさん
11/06/27 06:47:23.48
OpenGLってなんか不安定なイメージあんだよな。

321:デフォルトの名無しさん
11/06/27 08:49:24.27
OpenGLって、DirectXだったりGDIだったり、中の人は実装依存なんだおね?

DirectXの平面にGDIアクセスって出来るんだっけか?


322:デフォルトの名無しさん
11/06/27 11:27:47.86
OpenGLとDirectXを比べると
一般ユーザーは資料のの多いDirectXに
学術ユーザーはVerUPや互換につよいOpenGLだろうな

323:デフォルトの名無しさん
11/06/27 11:59:22.17
OpenGLとDirectXは、
単にプラットフォームに依存するだけ

324:デフォルトの名無しさん
11/06/27 12:54:22.47
>>314
gnuplotじゃだめなんですか?

リアルタイムに動くものでないとダメなら
gnuplotの描画を何枚が用意してコマ送りして
アニメを作成するとか。

gnuplotはCやC++中からも呼び出せるから、
これで十分だと思うけど

325:デフォルトの名無しさん
11/06/27 16:03:15.70
ダメだろww

326:デフォルトの名無しさん
11/06/27 22:40:10.50
>>314
そうです、こんな感じです
後いろいろな角度から見れるようになれば、完璧です

>>314
ちなみに、C言語には結構なじんでいてWin32APIはウィンドウプロージャの動作や描画ツールとか
リソースを入れてツールバーやダイアログボックスなんかもそれなりにはやりました
でも未だにまともなプログラムを完成させたことはありません
DirectXは全くの素人です、その程度の能力だと思ってもらえればいいかと…
レス迷ったんですがこちらにしました、迷惑でしたらすみません

色々なアドバイス頂いているのですが、いまいちよくわかってないみたいで…
DirectXなんか使わなくても、Win32API関数だけ、あるいは何らかのライブラリ
をインクルードして使えば実現できるということなのでしょうか?
今一度お願いします…

327:デフォルトの名無しさん
11/06/27 22:43:34.68
DirectXでできる

328:デフォルトの名無しさん
11/06/28 00:13:10.31
>>315 の操作は、
マウスの左右クリック、右ドラッグ
キーボードのスペースとRETURN、その他

マウス右クリックで全部名称表示
マウスカーソルを当てると、名称表示で
マウス左クリックで選択、中央表示
そして、マウス右クリックのままグリグリ。

329:デフォルトの名無しさん
11/06/28 00:18:58.64
未だにDirectX7のDirect3Dの機能使ってるんだけど(主に2Dベースのゲームで)
何か大きな弊害とかありますかね?

時々、DxLibの作者が、DirectX7ベースのDxLibだと
Win7で動作不良が起こる場合があるとか書いてたので
ちょっと不安になって。

330:デフォルトの名無しさん
11/06/28 00:24:58.60
>>329
問題ない

331:デフォルトの名無しさん
11/06/28 00:27:09.04
手段は、
1)2Dグラフィックが出来るなら、
3D→2Dの変換をプログラムで行う。
単純な画像なら容易

2)3Dライブラリを使う。
C言語からなら、DXライブラリを使ってみる。
類似した3Dライブラリが多数ある。

3)DirectXをC言語で直接駆動する、
難易度高い、というか時間の浪費

4)ツールを使う、多数ある


332:デフォルトの名無しさん
11/06/28 01:06:43.77
DirectX9でSprite->Draw使ってるんですが
S_OKが返ってくるのに描画されてないのは
どうゆう部分に問題があるのでしょうか?

sprite->Drawの引数に使用している変数に関係してる?関数
CreateTexture
GetSurfaceLevel
CreateOffscreenPlainSurface
GetFrontBufferData
UpdataSurface

この情報だけでわかるでしょうか?
DX初心者です、理由が推測できません。

やりたいのは、フロントバッファをコピって
自分のウィンドウに表示させたいのですが。

333:デフォルトの名無しさん
11/06/28 04:41:50.16
自己解決しました。

フロントバッファからサーフェイス取得したのを
バックバッファにコピーするだけ。

と言う事にまったくきずきませんでした。

すみませんでしたー。


334:デフォルトの名無しさん
11/06/29 00:27:10.27
>>331
>難易度高い、というか時間の浪費

自分を基準に語るなよ。DxLibとかおもちゃだろ。あとスレタイ100回読み返せ


335:デフォルトの名無しさん
11/06/29 00:29:35.41
VC#+DxLibを薦める奴は、大抵無能


336:デフォルトの名無しさん
11/06/29 00:36:15.55
難易度が高い方が偉いっていうのが日本人の悪いところだね

337:デフォルトの名無しさん
11/06/29 03:10:22.31
>>330
まぁ要はあれですかね、自分のプログラムの出来と
あとはビデオチップメーカのドライバがどこまで対応してるかって
ところでしょうか。

338:デフォルトの名無しさん
11/06/29 08:19:25.35
>>336
日本人に限らないっての

339:デフォルトの名無しさん
11/06/29 08:47:25.03
ネットで調べてみると、意外と
DirectX7から新しいバージョンに移行してない人多いね。
8でかなり変わったし、2Dゲーとか作るなら
そんな新しい機能いらないって人も多いだろうしね。

そこそこの3D機能使いたいなら、DxLibでもいいね。

340:デフォルトの名無しさん
11/06/29 16:50:02.26
すみません、ポリゴンにテクスチャを貼るプログラムでビルドが正常終了しているのに
ウィンドウが表示されないのですが何が考えられますか?
DirectX 9 シェーダプログラミングブックという本を見ながら
少しづつ勉強しているんですが、アプリケーションウィザードが使えないので
テクスチャを貼る部分のプログラムをいろいろ見ながら変更して
エラーを吐かないとこまでは来たのですが。

341:デフォルトの名無しさん
11/06/29 16:56:08.24
プログラムスタート→全処理が終わって閉じる

どこかでwhileとかでループしてるか?

342:デフォルトの名無しさん
11/06/29 20:28:17.02
>>340
色々原因が考えられるが、
DirectXSDKチュートリアルは見た?動くサンプルだから参考になるはず
しかしまぁwinapiは歴史的遺物のせいで驚異的に分かりにくいからなぁ

343:デフォルトの名無しさん
11/06/29 23:20:53.63
DX9からDX11に移行中。どうにかソースは書き換えたけど、
PresentするとPIXがエラー出したり謎現象おおくて、困った困った。

344:デフォルトの名無しさん
11/06/30 14:24:00.35
340です
以前チュートリアルのサンプル動かそうとして何故か失敗してたのですが
今回やってみたら動いたのでそれ見ながら、もちょっといじってみます。


345:デフォルトの名無しさん
11/07/02 00:27:30.47
>>331
どうもありがとう
まずはDxライブラリあたりをあたってみます

346:デフォルトの名無しさん
11/07/02 23:03:45.65
DXライブラリはこういう初心者用に作ったDirectXラッパーなんだし、とりあえず動くの作りたいってんならさっさと誘導したほうが良かったな

347:デフォルトの名無しさん
11/07/03 12:39:44.63
なんでDXライブラリってGCAとかいう一般的じゃない形式で圧縮してるの?
そんなだからexeにしないと解凍できないし
exeは怖いんだけど

348:デフォルトの名無しさん
11/07/03 12:42:02.99
>>347
公式の掲示板で文句いってくだしあ

349:デフォルトの名無しさん
11/07/04 23:27:33.90
右手座標系の3DCGソフトで作ったデータを左手座標系に変換してレンダリングしたのですが
表示が異なります。
具体的には、カメラは+Z方向から-Z方向を見ています。
3Dソフトだとメッシュがカメラの方向を向いているのですが、プログラムだとメッシュの背後から見た感じになってしまいます。

350:デフォルトの名無しさん
11/07/04 23:33:52.37
対象性の破れキターーーーーーーーーーー

351:デフォルトの名無しさん
11/07/05 11:42:34.39
>>349
ファイルを出力するときになんらかの設定できるのでは?

352:デフォルトの名無しさん
11/07/05 14:05:35.55
もう読み込んだ後で頂点情報を直接いじってZ座標の符号を逆にすれば
いいんで内科医?

353:デフォルトの名無しさん
11/07/05 15:01:18.45
>>351,352
ありがとうございます。
もしかしてカメラのワールド座標もZ値を反転しないとダメなんでしょうか?

354:デフォルトの名無しさん
11/07/05 22:34:41.40
メッシュだけでいいだろ

355:デフォルトの名無しさん
11/07/06 00:16:36.36
法線とあと何反転するんだっけ?
なんか色々大変だったよなぁ?
カリングは逆になっちゃったっけ?

356:デフォルトの名無しさん
11/07/06 00:52:24.96
>データを左手座標系に変換してレンダリングした
と言いつつ、

>表示が異なります

という事は、つまりその自分で書いた変換処理の考慮漏れってだけの話
それなのに、

>プログラムだとメッシュの背後から見た感じに

>なってしまいます
とはこれいかに

357:デフォルトの名無しさん
11/07/07 12:18:05.56
DirectX9で簡単なゲームを作ってみているのですが
MessageBox等のダイアログを出そうとするとウィンドウモード時でもフリーズしてしまいます。
IDIRECT3DDEVICE9::SetDialogBoxModeをTRUEにしたりしたのですがどうにもうまく行かず。
尚WM_CREATEに書いたものはちゃんと出ます。
初歩的ですみませんが、何が考えられるでしょうか

358:デフォルトの名無しさん
11/07/07 13:33:44.45
指定するウィンドウハンドル間違えてるよ

359:デフォルトの名無しさん
11/07/07 14:45:22.90
>>358
最初にCreateWindowで作ったハンドルではなく、新たにウィンドウを作成すれば良いのでしょうか

360:デフォルトの名無しさん
11/07/07 18:55:30.72
あげ

361:デフォルトの名無しさん
11/07/07 19:20:23.45
>>359
メッセージボックスはウインドウハンドルにNULLを渡しても動作する。

362:デフォルトの名無しさん
11/07/07 20:20:44.02
>>361
NULLを渡すとフリーズはしないもののダイアログボックスは依然出てこないみたいです・・。
ブレークポイント置いてみると、ウィンドウを破棄したところでMessageBoxから制御が帰るような挙動になっているので
DirectXの親ウィンドウの描画に隠れてしまっているような気が何となくするのですが、そういうことはあるのでしょうか。

363:デフォルトの名無しさん
11/07/07 20:27:01.71
>>362
GetForegroundWindow()のウィンドウハンドルは?
ってかこういう面倒なわずらわしいコーディングが嫌になったら
glutとopenglやってもええんやで、ええんやで

364:デフォルトの名無しさん
11/07/07 21:03:12.05
>>363
GetForegroundWindow()もNULL時と同じ挙動のようです。openglにも手出してみたい・・

ChooseFont()等ダイアログボックスが出てくるものは尽くダメなようで、
またMB_TOPMOST等指定しても出てきませんでした。
デバグで使えると良かったのですが、とりあえずはゲームなのでメッセージボックスは使わない方針で行こうと思います。
ありがとうございました。

365:デフォルトの名無しさん
11/07/08 00:42:18.66
URLリンク(ideone.com)

366:365
11/07/08 00:43:07.16
間違って送信しちゃった
普通に出るけどなぁ VC2010

367:デフォルトの名無しさん
11/07/08 00:45:06.39
ま、OpenGL&GLUTなら楽だけどな実際
DirectX でも DXUT 使えば似たようなもんじゃね?

368:デフォルトの名無しさん
11/07/08 06:34:43.44
出来上がったものを配布するときに同封するランタイムってどんな形でくっつければ良いですか?

369:デフォルトの名無しさん
11/07/08 08:22:58.47
CD-Rに焼いて封筒にいれてガムテで固定すればいいんじゃね?

370:デフォルトの名無しさん
11/07/08 08:23:30.98
DirectX11つかえばいいだけじゃないかな

371:357
11/07/08 17:44:47.78
>>366
普通に出ますね・・。
週末にでも確認してみます。ありがとうございます。

372:デフォルトの名無しさん
11/07/08 21:35:03.64
VC2010を閉じると勝手に再起動して困る
(その再起動を閉じると再起動はしない)
再インストールして直ったと思っても時間経つと元に戻るし
どうすればいい?

373:デフォルトの名無しさん
11/07/08 23:14:11.96
電源を新換えする。

374:デフォルトの名無しさん
11/07/09 13:02:57.46
やはりDirectX10以降で開発となるとXP等は捨てることになってしまうんでしょうか。
テセレータとか無くてもいいという場合はDirectX9を選択して広範なOSを選択するとかそういう
選び方しかできないんでしょうか?

375:デフォルトの名無しさん
11/07/09 22:52:24.86
できません

376:デフォルトの名無しさん
11/07/10 11:02:04.14
布教が最重要目的ならDitectX9、それ以外なら11以外ないわ。

377:デフォルトの名無しさん
11/07/10 11:15:10.10
なんで布教なんだよ

378:デフォルトの名無しさん
11/07/10 11:19:02.47
配布って言葉を知らないんだろ。

379:デフォルトの名無しさん
11/07/10 11:23:50.38
なんでも"信者"とか"布教"って言葉で表そうとする人間は、凝り固まったネット脳
語彙の少ない若輩、怠惰なヲタク、ニコ厨に多い

380:デフォルトの名無しさん
11/07/10 12:00:32.14
なんでも煽るやつは、煽ることで自分が優位に立っていると
勘違いしているかわいそうな人が多い

381:デフォルトの名無しさん
11/07/10 12:02:33.83
>>380
お前か

382:デフォルトの名無しさん
11/07/10 12:04:21.84
>>380
お前しか煽ってない件

383:デフォルトの名無しさん
11/07/10 12:22:08.78
>>376がボケる
>>377が突っ込む
>>378がフォローする
>>379が解説する
>>380が煽る

384:デフォルトの名無しさん
11/07/10 13:21:31.31
よく見ろ >>376 のは Ditect だぞディテクト

385:380
11/07/10 15:17:55.82
スマン俺が変なこと言ったな
空気を悪くして済まなかった

386:デフォルトの名無しさん
11/07/10 17:49:43.58
煽ってると思うのが一人の場合って自分が煽られてる時だけだよな
つまり配布を知らなかったことから全てが始まるわけで
さらに他は全員第三者感情でレスしてるのに謝罪とか・・・
まあ教えてる俺も俺だけど人によってここまで次元が違うものなのかなと改めて思ったよ

387:デフォルトの名無しさん
11/07/10 18:46:51.60
どうでもいい

388:デフォルトの名無しさん
11/07/11 08:44:10.85
>>374
大きく言えば
DirectX9はXPが使えるというメリットがある
DirectX11はジオメトリシェーダやテッセレーションつかえるメリットがある
逆に考えて、XPユーザーは気にしないならDirectX11でいいし
ジオメトリシェーダつかわないならDirectX9でいい

389:デフォルトの名無しさん
11/07/11 11:31:21.90
定数バッファのサイズやレンダーターゲットの複数設定でフォーマット一緒にしなくてもいいとか色々あると思うが、、、

390:デフォルトの名無しさん
11/07/12 10:57:33.87
ジオメトリシェーダはともかく、テッセレーションって使い道あるかねえ?
DirectX初心者スレにくる、日曜プログラマとか、学生にとってって意味で。

391:デフォルトの名無しさん
11/07/12 22:47:38.92
初心者とか日曜プログラマとか学生の為のライブラリじゃないですから


392:デフォルトの名無しさん
11/07/13 12:45:55.44
3次元空間で、ある物体の座標がカメラ(視点)の後方にいるかどうかを調べるにはどうしたらいいのですか?

393:デフォルトの名無しさん
11/07/13 13:06:50.68
>>392
カメラからある物体までのベクトルとカメラの正面方向のベクトルで内積をとる。

394:デフォルトの名無しさん
11/07/13 13:08:08.70
内せき

395:392
11/07/13 14:36:33.19
内積で解決しました。
ありがとうございました。

396:デフォルトの名無しさん
11/07/14 20:46:18.06
DirectPlay便利なのになんでなくなったの?

397:デフォルトの名無しさん
11/07/14 22:10:24.36
C#か.netのほうでもっと楽なのなかったか?

398:デフォルトの名無しさん
11/07/14 23:39:18.80
WinSock叩くのに比べてそんなに簡単だとは思えないなぁ。
自由度も低いし。

399:デフォルトの名無しさん
11/07/15 04:11:06.89
DirectPlayは危険度の高いセキュリティホールが発見されたので使わないでください
みたいなアナウンスがされて、そのまま放置されたような

400:デフォルトの名無しさん
11/07/15 04:26:35.77
ロビー機能だけでも、なんとかして欲しいねぇ。
MS以外が用意しても、あんまり採用されないだろうし。

401:デフォルトの名無しさん
11/07/16 00:50:13.58
>>397
C#よりも、C++ で boost::asio の方が下手すると相当に楽


402:デフォルトの名無しさん
11/07/16 09:51:47.76
>>391
お前は2行あるうちの1行しか読めない病気か何かなのかw

403:デフォルトの名無しさん
11/07/16 09:52:48.05
ゲームを作りたいのですが
DXライブラリを使うかAPIを使って全部書いていくか悩んでいます

完成形のクオリティや使いやすさが上なのはどちらでしょうか
DXライブラリで作ったものは動作性能が良くない様な感じもするのですが...


404:デフォルトの名無しさん
11/07/16 10:04:00.54
>>403
どっちも同じことができるが、到達する距離が違う。
API系を使うほうが自由度はそりゃ多い。
DXライブラリはフレームワークなんで、出来ることを制約しつつ何らかの形を作りやすいようになってる。

405:デフォルトの名無しさん
11/07/16 10:06:58.40
>>403
DXライブラリってのは、単にどこかの個人が、DirectXAPIの定型な処理をいくつか
まとめて予め書いただけの、いわばサブルーチン集のような物なので、

あなたの質問は、
「直接APIを使うか、ブラックボックスを経由して遠まわしにAPIを使うか」 という話に過ぎません。

なので、どちらが良いですか?なんて、他人が決める事じゃなくてあなた次第です。
ちなみに、そんな訳ですから、『完成系のクォリティ』 なんて、あなたが書くコード次第で、違いはありません。

※ただし 『違いは無い』 と言うのは、表示される内容の話であって、例えばラッパライブラリだけを使って何か書いて、
 直接API を使わない場合、当然 『出来ない事』 が沢山登場するでしょう。 用意してもらった範囲でしか書かないのならば。


406:デフォルトの名無しさん
11/07/16 10:10:58.96
>>403
ちなみに、DXライブラリは初心者向けの触れ込みで出回ってるから、
それに、製品クオリティを望むのは酷な話。(作者のスキル的な意味で。

407:403
11/07/16 10:40:42.38
クオリティと書いた為にいろいろゴチャゴチャしたみたいですが
どんなアプリでも操作性が大事だろうと思っていますので
動作に限界があるようなので普通にAPIを使いたいと思います

沢山の回答ありがとうございました。

408:デフォルトの名無しさん
11/07/16 14:14:04.42
DirectX API 自体が既にライブラリで自由に扱いたいならハードから直接叩くんじゃないの?
っていう突っ込みはNG?・・・

409:デフォルトの名無しさん
11/07/16 14:37:14.78
ある程度の汎用性はほしいだろうし、ハード叩ける器量があるならそんな質問しないだろうね。

410:デフォルトの名無しさん
11/07/18 07:38:10.32
DirectXのバージョンの事も考慮するべきかなと。DXライブラリって確か9だろ?
今の所11は9扱えるようにしてくれてるけど、次の世代がどうなるのか判らんよな。
で、ライブラリ作者がその対応をどうするのか、またライブラリのインターフェイスはそのままでいけるのかって話もでてくるし。

411:デフォルトの名無しさん
11/07/18 11:48:01.75
>>408
NGってか、話の要点見えてない人が言う、何も考えていないただの揚げ足取りだと思うそれ

上の話の要点は、「直接APIを使うか、ブラックボックスを経由して遠まわしにAPIを使うか」 であって、
さらにそのブラックボックスが、(当然)大本のAPI(DirectX)の全てのエントリを持っている訳じゃないんだから、
出来る範囲が狭まるのは自明 = 「出来ない事が沢山登場する」 のくだり

あと、>>407
>どんなアプリでも操作性が大事だろうと思っていますので
>動作に限界があるようなので普通にAPIを使いたいと思います

とあるアプリケーションの操作性、っていう話は、それこそあなたが書く内容次第なので、
全然関係無い。 あなたが書く、ロジックの話だよそれ

412:デフォルトの名無しさん
11/07/19 15:42:38.18
質問の内容のレベルから察すると2DならDXLIBつかったほうがいい
3Dなら直接かいていくほうがいいとおもうが
こういう質問してる時点で難しいかもしれん

413:デフォルトの名無しさん
11/07/20 04:31:24.95
DxLibは初心者用ライブラリとかフレームワーク以前に
DxLib作者のレベルがかなり低いのが問題だと思う

414:デフォルトの名無しさん
11/07/20 05:58:10.92
ライブラリ作者としての情熱は逸品だと思う

415:デフォルトの名無しさん
11/07/20 08:09:44.72
レベルの低いユーザーにはレベルの低い作者が合ってるんじゃないかと思う
ハイレベルな作者がUDKやUnityみたいなのを作ったって、
低レベルなユーザーにはレベルデザイン?なにそれわかんないあたまいたいやめてってなるだけだし

416:デフォルトの名無しさん
11/07/20 08:14:59.49
>なにそれわかんないあたまいたいやめて
低燃費少女ハイジのおんじ思い出した


417:デフォルトの名無しさん
11/07/21 03:12:53.52
>>415
とりあえずお前はバファリン飲んどけよ

418:デフォルトの名無しさん
11/07/24 05:35:34.30
SetFVF(D3DFVF_NORMAL | D3DFVF_DIFFUSE);
DrawPrimitiveUP(D3DPT_LINELIST, 3, pt, sizeof(D3DVERTEX_XYZ));
などの表記で3Dの座標軸のようなものを表示してたのですが気が付くと表示できなくなりました
同時に表示していたXファイルやDrawPrimitiveUPで2Dポリゴンなどは表示できます
環境はWin7pro64bitのSP1でDirectXに関係ありそうなのは順にDirectX9.0_SDK_dec2004をインストール
デバッグの表示用にDXSDK_Feb10をインストール

419:デフォルトの名無しさん
11/07/24 05:38:15.60
つづき
その後別のソフトを動かすために
URLリンク(www.microsoft.com)
のDirectX9エンドユーザーランタイムが必要だったため入れています
最後のエンドユーザーランタイムを入れてからのような気がするのですがはっきりとわかりません
プログラム一式をそのままWinXP+DirectX9.0_SDK_dec2004の環境で実行するとちゃんと表示されます
DX9エンドユーザーランタイムを消す方法もわかりません
原因と解決法わかれば教えてください、お願いします

420:デフォルトの名無しさん
11/07/24 09:47:15.68
>>418
>SetFVF(D3DFVF_NORMAL | D3DFVF_DIFFUSE);
FVFに位置座標が含まれてない。
これで描画できてる方が不思議なんだが。

421:デフォルトの名無しさん
11/07/24 10:35:45.25
XNAのEffectクラスってID3DXEffectのラッパみたいなもんだったと思うんだけど、
XNAってEffectクラスのインスタンスの複製を大量に作ってるよね。
でもDirectX SDKに付属するサンプル見ると、たいていグローバルなエフェクトを一つだけ作って、それを使いまわしてる。

これって結局、どちらもそんなに悪くないってこと?
こっちにしとけっていうのがあったら教えて。

422:デフォルトの名無しさん
11/07/24 11:01:01.65
>>420
ありがとうございます、指摘の点を修正することで意図してた描画が出来ました

表示できてたのはなんでしょうね?上記の設定でもXP環境は今でも描画できますし
Win7の方はスクリーンショットを何枚か撮っているのを思い出してそちらを確認したら
DXSDK_Feb10を入れた段階だと表示できていますね、とはいえ
表示が出来る=正しい というわけではないのでちゃんとできるように勉強します

423:デフォルトの名無しさん
11/07/24 14:07:48.97
そういうときはラデオン使え。
ゲフォはドライバが空気読んで勝手に補完してくれたりする。

424:418
11/07/24 17:05:13.80
>>423
グラフィック環境は書くべきでしたね、ランタイムが原因と思ったので書き漏らしました
XPはオンボのRadeon Xpress1250でwin7はRadeon HD 5450です
NVIDIAの8500GTもありますがそっちは使ってないです(Xpress1250より速度は速いですが)
ただ、たしかにXpress1250は勝手にアンチエイリアスかかったりかからなかったり挙動が妙ではあります
今回Win7のハードはずっと同じなので直近の原因ではないと思いますが表示できることの方が変だそうなので
Win7の環境はそのままある程度まともに作れるようになったらゲフォ等他のグラボでも確認してみます

425:sage
11/07/27 00:42:36.28
プロパティで
追加の依存ファイル dinput8.lib;dxguid.lib;%(AdditionalDependencies)
追加のライブラリディレクトリ $(DXSDK_DIR)\Lib\x86;%(AdditionalLibraryDirectories)

と設定してコンパイルするんですが
1>LINK : fatal error LNK1181: 入力ファイル 'Input.lib' を開けません。というエラーが発生します

どうやったら解決できますか



426:デフォルトの名無しさん
11/07/27 09:04:28.36
Input.libなんてファイルどこにもねーよ!ってエラー。
勝手にリンクされるものじゃないから、どっかしらで自分で指定してるはず。

427:デフォルトの名無しさん
11/07/27 09:40:10.85
#pragmaかな?

428:デフォルトの名無しさん
11/07/27 09:45:30.20
そいつ他スレでもマルチポストしてるぞ

429:デフォルトの名無しさん
11/07/27 12:16:19.22
425ですが どうか教えてください

430:デフォルトの名無しさん
11/07/27 12:28:58.06
>>429
一式うpするといいんでね

431:デフォルトの名無しさん
11/07/27 12:46:30.44
426で答え出てるじゃん。

432:デフォルトの名無しさん
11/07/27 14:06:18.95
そもそもInput.libとやらはDirectXとは関係ないのでスレ違い

433:デフォルトの名無しさん
11/07/28 01:21:29.57
>>429

>>426 を見ても意味がわからないなら、もっと基礎からやり直せ
ヒントは、パス


434:デフォルトの名無しさん
11/07/30 11:26:14.56
エフェクトステートのアルファテストが廃止されたようで、
これまでのシェーダファイルが使えなくなりました。
みなさんは、手書きで修正されるのでしょうか?
自動的に変換するツールなどはないでしょうか?

435:デフォルトの名無しさん
11/08/01 16:01:55.55
回転行列から、例えばX軸回転で何度、Y軸回転で何度かを知るにはどうしたらいいのですか?


436:デフォルトの名無しさん
11/08/01 18:12:20.48
直感だけど、軸回転する順番決めなきゃ一意に決まらないのじゃないだろうか。

437:デフォルトの名無しさん
11/08/01 22:28:15.78
>>435
不可能

438:デフォルトの名無しさん
11/08/01 22:39:31.44
まあ3つの積に分ければいいだけのことだけどね

439:デフォルトの名無しさん
11/08/02 00:07:24.28
回転順が決まってれば求まる。

440:デフォルトの名無しさん
11/08/02 03:03:36.19
Lost due to display uniqueness change
このエラーの解消法はどうすればいい?

441:デフォルトの名無しさん
11/08/02 07:06:03.39
>>440
URLリンク(www.gamedev.net)
ググって1行目に出た内容

442:デフォルトの名無しさん
11/08/02 17:25:26.21
要は解像度の問題だった。

443:デフォルトの名無しさん
11/08/04 00:07:24.48
複数の板ポリゴンを描画するにあたって、それぞれの座標を別々に移動してみたいと思ったのですが、
考え方としては
ワールド座標を移動→DrawPrimitive();
これを何度も繰り返すというので正しいのでしょうか?

444:デフォルトの名無しさん
11/08/04 00:22:06.43
はい。

445:デフォルトの名無しさん
11/08/04 00:23:28.05
ありがとうございました。

446:デフォルトの名無しさん
11/08/04 00:24:44.00
正しいも間違ってるもないけど、一度のDrawPrimitive()で描画する量が少なく
大量のDrawPrimitive()を繰り返す場合はかなり遅くなるかもしれない。
一度のDrawPrimitive系命令自体がかなり重い。

447:デフォルトの名無しさん
11/08/04 00:43:55.72
その都度転送するもんな。drawと関数名にはあるが、実際転送&描画処理だしな


448:デフォルトの名無しさん
11/08/04 00:48:07.10
>>446
今は大きいポリゴンに小さいポリゴンを乗せるような感じで描画しているのですが、
テクスチャステージステートを駆使して一枚のテクスチャを一枚のポリゴンで描画する
というのが最良ですか?
どちらの方が処理が早いのでしょうか

449:デフォルトの名無しさん
11/08/04 00:54:05.93
単純に一回のdrawで、描画の切り替えは全部HLSL内で


450:デフォルトの名無しさん
11/08/04 00:58:30.66
あう、盲点でした。
弄ってきます。ありがとうございました


451:デフォルトの名無しさん
11/08/04 14:57:49.41
D3DPRESENT_PARAMETERSを使ってフルスクリーンにすると
SetWindowPosやCreateWindowで幅や高さを0にしてもフルスクリーンになるんだが、
これは別に0でいいものなの?それとも自分の環境だけ?

452:デフォルトの名無しさん
11/08/04 17:35:46.90
キャラクターの向きをある物体に合わせるにはどうしたらいいのですか?
現状は、D3DXMatrixLookAtLHを使ってみたのですが正常に向いてくれませんでした。


453:デフォルトの名無しさん
11/08/04 18:38:26.30
>>452
目標の方向をZ軸として、Y軸が一定である場合、
この二つの軸の情報からX軸を法線として求める事が出来る。

454:デフォルトの名無しさん
11/08/04 18:48:08.43
>>451
D3DPRESENT_PARAMETERSでフルスクリーン化すると、ウィンドウ側の設定は
無視して問答無用でフルスクリーンになる。
このとき、ウィンドウモードよりもGPUがパフォーマンスを発揮できるので、
フルスクリーン化はこれでOK。

ウィンドウのタイトルバー取り去ってウィンドウサイズをスクリーンと同じにする
フルスクリーン化だと、GPUのパワーが完全には発揮できない。

455:デフォルトの名無しさん
11/08/04 18:53:14.73
>>452
キャラクターとある物体の間の距離から、向きたい方向ベクトルを取得。
キャラクターがデフォルトで(回転行列を掛けていない状態で)向いている
方向ベクトルと、向きたい方向ベクトルの2つのベクトルを使って
2つに垂直な方向ベクトルと2つのベクトルのなす角度を算出。
あとは、その垂直な方向ベクトルを回転軸としてなす角の角度分回転する
行列を、任意軸回転行列を使って求める。

みたいな話ですか?

456:455
11/08/04 18:54:29.22
ごめん、一行目は距離じゃなくて正確には位置の差、です。

457:デフォルトの名無しさん
11/08/05 00:55:16.38
それ、DirectXと言うより、普通に数学の話よね

458:デフォルトの名無しさん
11/08/05 04:50:57.91
DirectXとかDirectShowとかでプログラムしたいんですけど。
開発環境はWindowsXP(ターゲットもXP)、VisualStudio2008Express editionです。
むかーしは(VS2003位の頃)DirectShowやるんだったらPlatform SDKを入れたと記憶しております。
当時はWindows Server 2003 R2 Platform SDKというリビジョンだったのですが、
今の最新のDirectShowが提供されているSDKって相変わらずこれなんですか?

459:デフォルトの名無しさん
11/08/05 04:53:10.72
あ、ごめん。解決しちゃった。
Windows SDKか。

#あってる?

460:デフォルトの名無しさん
11/08/05 08:08:10.15
あってる。

461:デフォルトの名無しさん
11/08/05 08:24:13.53
サンクス。
ダウンロードしてみたがなんだかんだで3回くらい失敗した。。

462:デフォルトの名無しさん
11/08/06 14:53:35.73
DirectX9でシェーダーのサンプラステートでAddressU、AddressVをBorderに設定し、BorderColor = float4( 1, 1, 1, 1 );
とやったんですが、ボーダー色が反映されていません。どうすればシェーダーからボーダーの色を設定できますか?

463:デフォルトの名無しさん
11/08/07 06:37:34.48
こんにちは、C++でDirectXプログラムをしているものです。

URLリンク(image.blog.livedoor.jp)
こちらとかテクスチャマッピング(字の描画)が非常に滑らかでシャギが一切といっていい程出ていません。

自分は「DirectXグラフィック入門」という本を見ながらSetTextureでテクスチャを張っていて
それなりに滑らかなのですが上の域までとはいかずシャギや荒がオブジェクトの角度によっては出ます。
テクスチャを上のような域まで滑らかにするには何かコツとかあるのでしょうか?

一応オプションで以下のことはやっております。
pD3DDevice->SetRenderState( D3DRS_DITHERENABLE, TRUE);//ディザリングを行なう

464:デフォルトの名無しさん
11/08/07 06:47:37.69
α画像なんじゃねーの?

465:デフォルトの名無しさん
11/08/07 11:05:51.40
もっとAAの効いた画像を用意すれば解決すると思う

466:デフォルトの名無しさん
11/08/07 11:12:39.52
角度によって、ってことはミップマップが足りてないということも

467:デフォルトの名無しさん
11/08/07 19:01:42.73
テクスチャの内容も関係するが
単にスクリーンサイズやフレームバッファサイズに対する
ポリゴンやテクスチャの解像度の問題なんじゃねーの

468:デフォルトの名無しさん
11/08/07 19:11:24.65
例えば、300x500のピクセルに
DotByDot相当になるようにテクスチャを使ってレンダリングしてる物に対して

それを同じ見た目を、同じテクスチャ使った所で
半分の150x250のピクセルで実現できるわけないよ

スクリーンショットの解像度と、自分がやってる解像度くらいは分かるよね?
比べてみなよ

469:デフォルトの名無しさん
11/08/07 19:26:28.04
>>463
まずは自分のソフトのサンプル画像を見せるといいと思うよ

470:463
11/08/07 19:48:08.55
ありがとう。
自分のでもそれなりに綺麗に表示できてるんですが
サンプルが今まで見たことないほど滑らかなので
テクスチャにもっとアンチエイリアスをかける方法とかあるのかなと思って質問した
のですが元の画像で工夫するしかなさそうですね。
同じような画面で牌字ひとつあたりに64X64のBMPを使用しているのですが
もっと大きなサイズとかで色々試してみます。

471:デフォルトの名無しさん
11/08/07 20:05:46.34
DirectX9でシェーダーのサンプラステートでAddressU、AddressVをBorderに設定し、BorderColor = float4( 1, 1, 1, 1 );
とやったんですが、ボーダー色が反映されていません。どうすればシェーダーからボーダーの色を設定できますか?

472:デフォルトの名無しさん
11/08/07 20:09:29.99
>>470
あのリンク先の牌を見て64x64は無いよ

テクスチャもスクリーンサイズも、とんでもなくリッチだろ
適当な目算算出だけど、テクスチャは一文字で256x256程度で
スクリーンもフルHD(1920x1080)画面って所でしょ

473:デフォルトの名無しさん
11/08/07 22:10:31.89
>>472
スクリーンサイズがリンクの画像サイズの1024x768より大きいってどうしてわかるの?

474:デフォルトの名無しさん
11/08/09 20:54:34.35
以下のようにして、CPUでテクスチャに直接ピクセル値を書き込んでいます。


pTex->LockRect( 0, &( LockedRect ), NULL, 0 );

DWORD* pPixel = ( DWORD* )( LockedRect.pBits );
DWORD dwPitch = LockedRect.Pitch / sizeof( DWORD );

*( pPixel + dwPitch * Y + X ) = D3DCOLOR_ARGB( 255, 255, 255, 255 );


同様な感じで、浮動小数点フォーマットのテクスチャに直接書き込むのは
どのようにすれば良いでしょうか??
D3DFMT_A16B16G16R16FやD3DFMT_R16F何かを使います。

よろしくお願いします。 m(_ _)m

475:474
11/08/09 22:20:44.83
D3DFMT_R32Fの場合は以下のようにして書き込むことができました。


float* pPixel = ( float* )( LockedRect.pBits );
DWORD dwPitch = LockedRect.Pitch / sizeof( float );

*( pPixel + dwPitch * Y + X ) = 0.5f;


16bit浮動小数点数を扱えればD3DFMT_A16B16G16R16FやD3DFMT_R16Fでも同様に書き込めそうですが、
C++記述上で半精度浮動小数点数の型はどのように記述するんでしょうか??

476:デフォルトの名無しさん
11/08/09 22:44:56.10
自分でビット操作して変換する

477:474
11/08/09 22:50:17.41
>>476
そうなりますか(x_x)

ありがとうございました!

478:デフォルトの名無しさん
11/08/09 23:16:30.32
ぐぐったらD3DXFLOAT16って出るんだけど
C++だったらこれでいいんじゃないの?

479:474
11/08/09 23:21:41.12
>>478
おお!できました!
普通のfloatからキャストしてもOKでした。

ありがとうございました!

480:デフォルトの名無しさん
11/08/10 11:20:44.99
Win32API C++ DirectX9で、DirectX3Dを使って2Dゲーム作りたいのですが、
DirectXは、まったく触ったことがないので、いい入門書とかありますか?
おそらくないと思いますがDirectX9で2Dゲームの解説している本もあればお願いします。
若干スレ違いな気がしますが、回答お願いします><

481:デフォルトの名無しさん
11/08/10 11:38:59.51
9までなら解説しているサイトも本もいっぱいある
まずはここ見ながらやるといい
URLリンク(db.tak2ch.jp)あとはここらへんで入門から応用までURLリンク(sky.geocities.jp)
URLリンク(marupeke296.com)

482:デフォルトの名無しさん
11/08/10 11:53:25.70
>>480
回答ありがとうございます!
DirectXを始めるのに、とりあえず本が一冊あれば、と思ってるのですが
「DirectX 9 シェーダプログラミングブック」などでよろしいでしょうか。
それとも「DirectX9必携」などがよろしいでしょうか。重ね重ね質問すみません。

483:河内
11/08/10 12:06:06.26
はじめまして、VB6のDirectx7 Type Libraryを使っているのですが、
RealTek HD Audio OutputというオンボードのサウンドだとCreateSoundBufferメソッドが
失敗しないのに、
BenQのE2220HDをHDMI接続したときに使用可能なインテル(R)ディスプレイ用オーディオ出力
というサウンドデバイスをコントロールパネルで選択すると、CreateSoundBufferメソッドが
失敗してしまいます。
DirectX診断ツールで両方DirectSoundのテストを行っても、両方同じ結果になるのですが、
VB6で違いが出てしまう原因が良くわかりません。
なにか明快な理由があるのでしょうか?

484:デフォルトの名無しさん
11/08/10 12:51:31.76
482です。
>>481 さんのpdfは本だったのをpdf化したものなんですね!
とりあえずこれで勉強してから、自分にあった本を探したいと思います。
改めてありがとうございます!

485:デフォルトの名無しさん
11/08/10 14:07:41.94
DirectX9でテクスチャを繰り返しでマッピングしたいんですが
有る程度古いハードウェアでも動作させたいと考えています。
CapsのMaxTextureRepeatは一昔前のオンボードでは、どのくらいの数値が一般的ですか?

486:デフォルトの名無しさん
11/08/10 14:29:28.61
今で言う一昔はDirect3D9完全対応だ。
何一つ気にする必要など無い。

487:デフォルトの名無しさん
11/08/10 16:45:19.27
XPの時代なら大丈夫

488:デフォルトの名無しさん
11/08/10 16:56:30.22
>>485
SDKに色んな環境のCapsの一覧表あるから、それで確認する。

489:デフォルトの名無しさん
11/08/10 19:26:32.84
>>484
おお、登さんの本、pdf化されてたのか。

490:デフォルトの名無しさん
11/08/13 21:26:32.98
ニンテンドー64のコントローラをコンバータでつなぎ、
入力を受け付けたいと思うのですが、可能でしょうか?
また、もし可能な場合、64コンの入力は、
ジョイパッドの入力としてとして扱えばいいのでしょうか?

491:デフォルトの名無しさん
11/08/13 22:41:16.99
>>490
それはOSがHIDクラスかジョイパッドとして認識すればそういうふうに使えるように便宜を計ってくれるんじゃないか?
DXはそういう認識の部分には一切手を出さないはず。

要するにコンバータの性能次第。ってかんじだと思うんだが・・・。

492:デフォルトの名無しさん
11/08/14 00:30:12.35
ドライバを用意すればいい

493:デフォルトの名無しさん
11/08/14 03:34:38.92
質問があります。

512*512のjpeg(ディスクサイズ189kbyte)で圧縮されたテクスチャでも
「D3DXCreateTextureFromFile(D3DFMT_A8R8G8B8)」で読み込んだ際、
VRAMに展開される大きさは「512*512*4≒1Mbyte」というサイズになるのでしょうか?

494:デフォルトの名無しさん
11/08/14 04:16:52.24
>>493
当たり前じゃねーか
符号化されたデータをどうやってGPUが解釈するんだ

495:デフォルトの名無しさん
11/08/14 08:36:58.49
圧縮したままVRAMに持てるのはDXTだけ

496:デフォルトの名無しさん
11/08/14 14:24:09.62
圧縮出来る出来ないはともかく、テクスチャって1秒間に何十回も何百回も
参照される訳で、展開の計算がものすごい負担になりそうだな

497:デフォルトの名無しさん
11/08/14 15:31:25.77
展開のロジックはハードワイヤードで持ってるから演算器の負担は無いんじゃなかったっけ?

498:デフォルトの名無しさん
11/08/14 20:23:00.51
展開してVRAMにのせるからjpegファイルサイズではなく
512x512の縦横ピクセルサイズになるって話だろ?

展開は最初の1回だけでしょ

499:デフォルトの名無しさん
11/08/14 21:26:23.58
DXT使うとファイルサイズのままVRAMに乗るのか
もの凄いメモリの節約になるな

500:デフォルトの名無しさん
11/08/14 23:36:51.45
>>498
jpegに関しては一度の展開で
DXTCに関してはハードワイヤードロジックで処理されるから実質コストはかからない





はず

501:デフォルトの名無しさん
11/08/15 09:55:45.41
3d全般の話なのですが他に相談できる所がないのでお願いします。
モーションの移動量を適用したいんですが・・・一般的には
どのようにやるのでしょうか?
移動後ルートボーン変換行列*Invert(移動前ルートボーン変換行列)を
モデル全体の変換行列に掛けてみました。これで概ね移動の適用が
できたのですが、モデル全体の変換行列が回転しているとき、
その進行方向に移動量が適用されません。

502:デフォルトの名無しさん
11/08/15 12:16:38.97
ルートの移動の話のはずなのに、モーションの移動とか意味不明。
自分の脳みそを整理すれば解決する話。

503:デフォルトの名無しさん
11/08/17 10:11:43.66
すみません。Xファイルを読み込んでソフトウェアスキニングしたいのですが、うまくいきません。
Xファイルのデータを読み込んでポリゴンを表示すると正常に表示されますが、
頂点をアニメーションさせると逆さまになったり、ポリゴンがねじれたりしてしまいます。
MSのMeshViewerで見ると正常にアニメートされるので、行列の掛け算の仕方が間違っているのでしょうか。

void Bone::Animate( MeshVertex* vertex , MeshVertex *original, int frame ){ /*vertexは表示用バーテックスバッファ。x=y=z=0に初期化済み。*/
     D3DXMATRIX mat;D3DXMatrixIdentity(&mat);
     multParentMatrix( mat,frame );
     mat = bindMatrix * mat; /*bindMatrixはXファイル→SkinWeightsデータの一番下にある行列*/
     for(int i=0;i<num_influence_point;i++)
     {
         int n = influence_points[i];//影響する頂点取得
         D3DXVECTOR3 vec(original[ n ].x , original[n].y , original[n].z);
         D3DXVECTOR4 result;
         D3DXVec3Transform( &vec4,&vec,&mat );
         vertex[n].x += result.x * weights[i];
         vertex[n].y += result.y * weights[i];
         vertex[n].z += result.z * weights[i];
     }
     for(int i=0;i<children.size();i++){
         children[i]->Animate( vertex , original, frame ); //childrenは子ボーンを格納するBone型のvector配列
    }
}

文字数が足りないので下に続きます。

504:デフォルトの名無しさん
11/08/17 10:19:52.18
class Bone
{
public:
int num_influence_point;
string joint_name;
D3DXMATRIX boneOffsetMatrix;//SkinWeightsの下にある行列//bind matrix
D3DXMATRIX inverseBoneOffsetmMatrix;//pose matrix
D3DXMATRIX *keys_local;
D3DXQUATERNION* quaternions;
Vector3* key_scales;
       Vector3* key_translates;
float *weights;//ウェイト
int *influence_points;//影響する頂点インデックス
vector<Bone*> children;
Bone* parent;
RDXBone(){parent = NULL;}
void multParentMatrix( D3DXMATRIX &mat ,int frame);
void Animate( MeshVertex* vertex , MeshVertex *original, int frame );
};
void Bone::multParentMatrix( D3DXMATRIX &mat , int frame ){
     if( parent )
          parent->mult_parent_matrix( mat,frame );
     D3DXMATRIX trans,scale,rot;
     D3DXMatrixRotationQuaternion( &rot, &key_quaternions[frame] ); //key_xxxはアニメーションデータ
     D3DXMatrixTranslation( &trans , key_translates[frame].v[0], key_translates[frame].v[1],key_translates[frame].v[2]);
     D3DXMatrixScaling( &scale , key_scales[frame].v[0],key_scales[frame].v[1],key_scales[frame].v[2]);
     mat = rot * scale * trans * mat;
}

Xファイルの読み込み部分は省いていますが、デバッグではアニメーション情報等全て正常に読み込まれているようでした。
よろしくお願いします。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch