したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

MMD関連プログラミングスレ

79名無しさん@お腹いっぱい。:2010/10/16(土) 07:06:52 ID:L6iPnSI20
あるオブジェにて生成したテクスチャを他オブジェで読み込みたいのですが、
どうも上手く読み込めず困っております…
解決方は何かないでしょうか…?
http://www1.axfc.net/uploader/Sc/so/163390
pass:mme

80名無しさん@お腹いっぱい。:2010/10/16(土) 09:33:27 ID:POpcqSjI0
レンダリングターゲットをクリアする
ただ、CreateCube.fxを使うCreateCube.xが複数のSubSetになっている場合、常にクリアすると最後に描画したのしか残らないから、
SubSet番号"0"の時だけクリアする(MainTecテクニックを2つ作る)とうまくいく。もっといいやり方があるかもしれないけど。

81名無しさん@お腹いっぱい。:2010/10/16(土) 12:05:55 ID:miCe2UmQ0
そもそも、複数に分けてやるなら
shared 指定のテクスチャをプリエフェクトでクリア
とかでもいいんでないかの

82名無しさん@お腹いっぱい。:2010/10/16(土) 13:22:42 ID:POpcqSjI0
思い出した。それやったら調整中に初期化エフェクトも再読み込みしないとエラーが出るという現象がおきてウザくてやめたんだった
CubeMapみたいに複数のオブジェクトに適用する予定のエフェクトなら、その方法しか無いですね

8379:2010/10/16(土) 22:57:00 ID:yLb/wJog0
>>80-82
ありがとうございます!やってみます!

84舞力介入P:2010/10/20(水) 01:35:48 ID:Rzq.9q4s0
>>樋口M
どうもです。
最新のMMD ver7.12にて、MMDExportの動作がおかしかったので、報告します。

PMDモデルをロードした状態で、
ExpGetPmdOrder()の値と、DrawIndexedPrimitive時のExpGetCurrentObject()の値が一致しません。

起動直後にPMDモデルを1つだけロードした状態では、
ExpGetPmdOrder(0)の値が3であるのに対して、
ExpGetCurrentObject()の値は、処理中のテクニックによって、2になったり1になったりしました。
また、この影響か、PMD描画時のExpGetCurrentMaterial()の値が常に-1になってしまうようです。

85:2010/10/21(木) 22:27:26 ID:359kNCPI0
>>舞力介入Pさん
こんばんは。
したらばは一応チェックしているのですが、埋もれたスレは見てませんでした><
ですので、今後はプログラミングスレに関してはageで進行しましょう。

確認したところ、バグでした。
ttp://www.geocities.jp/higuchuu4/MikuMikuDance_v712a.zip

一応直したつもりですが、デバッグ環境がないためこちらでは確認ができません。
もしまだおかしかったり、他のバグがありましたら遠慮なく指摘して下さい。
それでは。

86舞力介入P:2010/10/22(金) 03:22:17 ID:yAqibPQM0
>>85
修正ありがとうございます。
ExpGetCurrentObject()の返り値が、正しい値になることを確認しました。
ただ、ExpGetCurrentMaterial()については、常に-1が返る状態のままのようです。


デバッグ方法につきましては、
エクスポートされた関数でもMMD側から呼ぶことは出来るはずなので、
各関数を、MMD内から、以下のタイミングで呼び出したときの値を確認していただければと思います。

・GetCurrent系の関数:DrawIndexedPrimitive()またはID3DXMesh::DrawSubset()を呼び出す直前
・それ以外の関数  :BeginScene()を呼び出す直前

このタイミングならば、MME側から呼び出す場合と同じ結果になるはずです。

87:2010/10/22(金) 21:39:57 ID:9tii5OtA0
>>86
すみません、バグでした。
ttp://www.geocities.jp/higuchuu4/MikuMikuDance_v712b.zip

デバッグできるようになりました。多分これで大丈夫なはず…

88名無しさん@お腹いっぱい。:2010/10/22(金) 23:15:53 ID:ZwHH2bxk0
MME入った状態でMMDを二重起動すると落ちることがあるの
何とかならないですかね?
別のpmmのポーズを流用するのに、二重起動してポーズ保存して
最初のに読み込むことが多いので。

89名無しさん@お腹いっぱい。:2010/10/22(金) 23:49:09 ID:guUM14kk0
>>88
おっと、そういうのはこっちだよ
MMDへの要望・妄想スレ
http://jbbs.livedoor.jp/bbs/read.cgi/music/23040/1271303321/

>■MMDへの要望・妄想スレ
>基本的にみんながMMDへの要望的な妄想をメモしておくスレです。
>MMDの作者様は基本的に回答しません。
>時々どこかの物好きでドMな妖精さんが
>きまぐれに質問やツッコミなどのレスを付けてくれるかもしれません。

90:2010/10/23(土) 00:24:09 ID:yyVyQBpU0
バグ報告でもそうなんだけど、そのバグをこちらで再現できない限りは、まず修正できないと思って下さい。

なので、バグの再現方法はできるだけ詳しく、手順をMMD立ち上げからバグが発生するまでを箇条書きで
書いてもらうか、pmmファイルやpmdファイルをアップロードして実行すれば即バグが起こる状態にでも
してもらわないと、バグが発生する状況すらこちらでは確認できません。

とりあえず>>88に関しては、MME挿入状態のMMDを3つ立ち上げてみましたが、うちの環境では
落ちませんでした。
いくつか落ちそうな状況を試してはみましたが(diffusionフィルタ等)、再現できませんでした。

91名無しさん@お腹いっぱい。:2010/10/23(土) 06:55:06 ID:cb.k6O8.0
>89
あ、必ず落ちるorエラーメッセージ窓が出るのが現時点の仕様だと思ってたもので…。
確かに起動しただけの状態で、もう1つ起動しても平気でした。
条件絞り込めたら向こうのスレに書いてみます。

92名無しさん@お腹いっぱい。:2010/10/23(土) 22:42:47 ID:FUiZC6/M0
仕事でテスト中のPGにバグ見つけて、バグ管理票切ったのに
「再現せず」とか印されてたら、イラッとするんだよね・・
こっちはPGのソース持ってないんだから
詳しく調べられるのはそっちしかないだろ・・

なーんてねw
いやいや再現しないバグを直せなんて無茶無茶w分かってますw
ただ、とあるやんごとなきプログラマ様の言葉の選び方が、ちょっと、気品高すぎてアレだったからw

PGできる人に限ってほとんど理解できてないみたいなんだけど、
PGのユーザーって、人間なんだよねw
言葉の選び方ひとつでイラッとしたりしなかったりっていう、不便な人間w
こんな人間でサーセンw

93名無しさん@お腹いっぱい。:2010/10/23(土) 23:05:01 ID:xXcUiE.20
荒らしネタ投下おつかれさまです

94名無しさん@お腹いっぱい。:2010/10/23(土) 23:05:11 ID:N/tnE0B20
文書で心の機微を伝えるのは難しい。
が、仕事中にわざわざ波風立てようとする人はあまりいない。
相手の言葉にカチンと来たとしてもだいたい自分の勘違いか相手の書き間違い。

95名無しさん@お腹いっぱい。:2010/10/23(土) 23:09:22 ID:l9N.4/lw0
どこかの個人が作って配布しているだけのフリーウェアなのに
仕事場での例出してくるとか頭悪すぎw

96名無しさん@お腹いっぱい。:2010/10/23(土) 23:15:27 ID:GCw/hpy.0
はい、相手するのここまでー
----8<----------8<-----

97舞力介入P:2010/10/23(土) 23:24:43 ID:onmrEePQ0
>>87
修正されていることを確認しました。ありがとうございました。

98:2010/10/24(日) 00:54:42 ID:k2C1euqA0
>>92
イラッとさせたなら申し訳ない。
88のバグ修正しようとして、再現させようとかなりの時間を費やした上に
結局できず、ソースを見ても原因を特定できなかったのでかなりムカつき
ながら書いた文章なので、ぶっきら棒になってしまいました。
まぁ、私も人間だってことでw

でもこの手のバグ報告メールってすごく多いんですよ。
ためしに88のバグ再現させて、発見までに何分掛かるか確認すれば
少しは気持ちも判ると思う。
最近はそういうメールが週に2〜3通くるんだぜ?
返事書かないと92みたいな文章送ってくる奴もいるし。

99阿部高和:2010/10/24(日) 01:13:47 ID:ZuqSUGwM0
ケツの穴の小さいやつは俺の前に並びな。拡げてやるぜ。

100名無しさん@お腹いっぱい。:2010/10/24(日) 01:38:53 ID:KANPB9iE0
昔、3DCGツールで不具合が起きて報告したんだけど、あちらで再現しないって
言われたことがある。
こうやればその現象が起こる、こうすると起こらないというパターンを検証して
テキストにまとめて、不具合が起こったデータファイルに添付して送ったら、
感謝されたよ。

大量に同じ報告がくるようなら明らかにバグだけど、特定の人でしか起こらない
現象って、特殊なバグで、再現しづらいんだよね。
開発者は人数も限られてるし、仕組みが分かってるからこそ余計にねw
ユーザーはたくさんいるし、無茶な使い方するから、ある意味優秀なデバッガー
なのよね。
好きで使ってるツールなんだし、そういう特殊な現象が発生したらしっかり報告して、
直せるように協力できるといいよね〜。

>>99
優しくしてね///

101名無しさん@お腹いっぱい。:2010/10/24(日) 12:30:19 ID:155wNnz.0
樋口とかって奴、何偉そうにしてんの?こいつwwww
大体てめぇが質の悪いクソツール公開してるせいで、六角大王とかDxMとか商売してる企業やゲーム業界がどれだけ迷惑してると思ってんだよ。
MMDモデルとか動画だって著作権違反で溢れかえってるじゃねぇか。
そんなに大変だったらとっとと開発中止してHP消せよww
みんなタダだから使ってるだけで、消えればBlenderとかC4Dとかずっと高品質な3D動画が増えるんだよ。
いい加減健全な3D業界の発展の阻害になってる事に気づけよ、馬鹿wwww

102名無しさん@お腹いっぱい。:2010/10/24(日) 12:55:06 ID:nDCrcEQ60
また質の低い燃料が・・・

103:2010/10/24(日) 13:40:50 ID:k2C1euqA0
>>101
メールの返信遅れてすまんかった。
似てるとは思ったけどバグ管理票とか言ってるから別人だと思ったよ。
今後はちゃんと返信するから、こっちでもやるのは勘弁してくれ。

104名無しさん@お腹いっぱい。:2010/10/24(日) 14:23:51 ID:4xCxT0MU0
素人がエフェクト弄るための質問なんですが、ここで訊いて大丈夫かな?
Furia氏が公開してる波エフェクトfull.fx ver1.2+なんですけど、
テクスチャのループする方向を90度横に向けたいんですけど何処を弄ればいいんですかね?

105名無しさん@お腹いっぱい。:2010/10/24(日) 14:31:08 ID:yY4EPI8E0
M、こういうのはまともに相手しちゃ駄目ですよ。
自分を「お客様」か何かと勘違いしてる、構って欲しいだけの屑なんだから。
メールも着信拒否とか出来ないんですか?
もう一度言いますが、「相手しちゃ駄目」です。
下手に出るから調子こくんですよ、こういう馬鹿は。
中国や朝鮮なんかと一緒です。

106名無しさん@お腹いっぱい。:2010/10/24(日) 14:45:42 ID:PICQPpbc0
>>105

>>103
> こっちでもやるのは勘弁してくれ。

107Furia:2010/10/24(日) 14:46:41 ID:baQX3q5A0
>>104
波エフェクトというと、lobeliaさんのでない?
記憶が定かではないけど、
私のーであれば、zipとfxファイルの名前あたりを教えてほしい

108名無しさん@お腹いっぱい。:2010/10/24(日) 15:29:06 ID:EyLXNicA0
初心者スレとどちらか迷ったんですが質問させてもらいます。
そぼろ氏のWarer(http://www.nicovideo.jp/watch/sm12429408)をMMDで読み込ませると
「エフェクトファイルの読み込みに失敗しました。(エフェクトのアドレス)
some techiques cannot run on this hardware:Techique_Sample」
とエラーが出ます。
同様にMikuMikuEffect用 降雨エフェクト ver.1.1でも
「エフェクトファイルの読み込みに失敗しました。(エフェクトのアドレス)
some techiques cannot run on this hardware:Main Tec」
とエラーが出て何も表示されません。

取り扱い説明にあった頂点シェーダ3.0に対応したビデオカードも搭載してるんですが
解決法が分からず困っていますのでお知恵をお貸しください。

環境はOSはXP sp3 ビデオカードはGeForse 7900GS です。
よろしくお願いします。

109名無しさん@お腹いっぱい。:2010/10/24(日) 15:33:44 ID:vVfTQOvc0
warez

に見えた

110名無しさん@お腹いっぱい。:2010/10/24(日) 15:35:11 ID:yY4EPI8E0
>>106
ぶっちゃけ、かんなさんに頼んでアク禁で良いと思うんですけどねぇ。
出来ない訳じゃないはずですし。
メール着信拒否+アクセス禁止で万事解決だと思いません?こういう手合いのは。

111かんな ◆LROMJ4PcOQ:2010/10/24(日) 16:16:08 ID:0iwoLhMw0
>>1 のテンプレ再読推奨
■このスレでの注意事項(暫定)
・人を誹謗中傷しない
・荒らしはスルー
・実装を期待しない
・開発者を無駄に神扱いしない
・否定する場合は代替案などを提示する事
・議論は前向きに
・age進行推奨

スレチだから繰り返したり相手するのが継続し、酷い場合であると判断すれば
双方一時アク禁にはする。
というか、MMEやMMD側の問題ではなく環境依存問題の方が遥かに多いので
OS/グラボ/ドライババージョン/DirextXバージョンくらいは書かないと調べようもない。
ここはバグ報告スレではありまちぇん
あと「age進行」だ!

112名無しさん@お腹いっぱい。:2010/10/24(日) 17:29:40 ID:E7AqNPLk0
このスレ立ったとき、テンプレ完璧すぎワロタと思った理由は、
>>111 にもある通り注意事項が よくわかってる 内容だったからです

ここはプログラミング関連のスレなので、誰かへの文句とか愚痴とか >>108 みたいな質問もスレチ
ついでにいうと、今書いてるこのレスすら資源の無駄。 そういう理解って難しいのかなと

113名無しさん@お腹いっぱい。:2010/10/24(日) 18:11:09 ID:baQX3q5A0
>>108
使ってる内部テクスチャも、DXCapsViewr見る限りサポートしてるようだし
サポートシェーダモデルも確かに3.0以上なようだけど

Water読んだくらいでは、GPUメモリも50MB強奪われるだけのようだし
足りないことはなさそうね。

ただ、テクニック中で使えるテクスチャが4枚までとか制限があるみたいなGPUもあるらしいので
確かなことはいえないけど、とりあえず
ドライバは最新かどうかチェックしてみては

114名無しさん@お腹いっぱい。:2010/10/24(日) 20:02:45 ID:arS4r0BQ0
MME製作側の環境というか、動作確認しているスペックを添付して欲しい
それ未満の環境なら動かない可能性があるって事で
正直、普通の人間にはサポートしている細かい機能なんて解ってないのよ

115名無しさん@お腹いっぱい。:2010/10/24(日) 21:34:07 ID:4xCxT0MU0
>>107
バトーキン島用の動くエフェクトです。他マップに転用した際、テクスチャがスクロールする方向
マップと合ってなかったのでお訊ねしようと思ったのですが・・・スミマセン、自己解決しました。
メタセコでUVの向きを変えるだけでよかったんですね・・・お騒がせしました。

116名無しさん@お腹いっぱい。:2010/10/24(日) 22:02:46 ID:baQX3q5A0
>>115
なるほど、そういえばバトーキン島用の海用意してましたね

解決したようなので蛇足になりますけど
 Out.Tex.y += time_0_X * animSpeed;
の部分がどこかにあるはずなのですが
Out.Tex.y を Out.Tex.x に変えても大体同じことができます。
UV座標で見たとすると xが横 yが縦の位置なので

117舞力介入P:2010/10/24(日) 22:04:41 ID:TdGF76us0
こちらでの、MMEの動作確認環境は以下の通りです。(RadeonHD3200は最近用意しました)

・Win7(64bit)+Geforce9600GT
・WinXPsp3(32bit)+Geforce9600GT
・Win7(64bit)+AMD780G(RadeonHD3200)
・WinVista(32bit)+AMD780G(RadeonHD3200)

Radeon使用時の既知の不具合:
・一部のエフェクトを使用すると、セルフシャドウONでモデルが真っ黒になる
 対処方法:ttp://v-nyappon.net/?m=diary&a=page_detail&target_c_diary_id=887390

118舞力介入P:2010/10/24(日) 22:05:40 ID:TdGF76us0
MMEを使用するには、最低限 SM2.0に対応したビデオカードが必要です。
また、MMEの機能をフルに使用するためには、SM3.0に対応したビデオカードが必要です。

ただし、2chスレによれば、RadeonX1000シリーズはSM3.0対応ですが、VTF(Vertex Texture Fetch)に対応していないらしく、
一部のエフェクトが使用できない可能性があるようです。
(具体的には、FireParticleSystemEx.fxなど、頂点シェーダ内でtex2Dlod関数を使用しているエフェクト)


まとめますと、

○必須環境(MMEに最低限必要な環境)
 SM2.0(DirectX9.0)対応ビデオカード
 (RADEONなら9500〜X850、GeForceなら5シリーズ以降)

○推奨環境(MMEの機能をフルに使用できる(はずの)環境。処理速度は無考慮)
 SM3.0(DirectX9.0c)対応ビデオカード(要VTF対応)
 (RADEONならHD2000以降、GeForceなら6シリーズ以降)


ただし、Geforceの7シリーズで、VTFが完全には動作しないという報告もあるようです。
ttp://forums.create.msdn.com/forums/t/54846.aspx
(もしかしたら、ドライバの更新で改善する問題かもしれませんが)

119名無しさん@お腹いっぱい。:2010/10/24(日) 22:32:50 ID:j/x9UGpg0
そうそう、こういうテンプレが欲しかった
何よりグラボ購入の目安になるし

贅沢を言うなら、Radeon用MMEも別途用意して欲しいです
GeForceユーザーとRadeonユーザーは半々だと思われますが、
GeForceに最適化されている部分で、半数のユーザーが不具合抱える事になってしまっています
対処方法は素人には判りません
かといって現在のGeForceへの買い替えはおすすめしかねる状況のようですので

120舞力介入P:2010/10/24(日) 22:39:45 ID:TdGF76us0
>>119
別段、GeForceに最適化するようなことはしてないです。
バグ取りをGeForce環境でやっていたために、
Radeon使用時の不具合が見過ごされやすくなっていた、というのはありますが。

121名無しさん@お腹いっぱい。:2010/10/24(日) 23:05:24 ID:w5BC8RZA0
>>119
MMEというよりはエフェクトの問題ですよね。RADEONが手に入ったら調べてみたいので、
RADEONのどのカードかと、ドライバで、どのエフェクトがどういうエラーで落ちるとかいう具体的な情報あります?

122名無しさん@お腹いっぱい。:2010/10/24(日) 23:06:28 ID:j/x9UGpg0
>>120
実はMMD自体がGeForceに最適化されているという話を聞きまして
AVI出力時にGeForceとRadeonで10倍近くの速度差が出るとか
なんというか、頭では仕方ないと判っているけど、不公平感というか・・・
こういう事を他でも続けられると、いよいよユーザーの半数が泣きを見る事態に・・・

123名無しさん@お腹いっぱい。:2010/10/24(日) 23:15:58 ID:/QtC1t/Q0
いやそれもMMD関係ないべ。

124名無しさん@お腹いっぱい。:2010/10/24(日) 23:22:06 ID:j/x9UGpg0
>>121

694 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日: 2010/10/21(木) 22:45:14 ID:lIxF49+E0
うーん、家の環境だと霧とか被写界深度とか上手く動かないエフェクトがあるんだけど
radeonHD5xxx辺りだとどうなんでしょうかねぇ。

適当に昔間に合わせに買った3450じゃキツイのかね…。

125名無しさん@お腹いっぱい。:2010/10/24(日) 23:23:50 ID:wXnQO1AY0
RADEONは省電力&低価格化のために機能削ってるからなー。

ゲーム機に例えるならGeForceがPS2ゲームもプレイできる初期型PS3で
RADEONがPS2互換を切り捨てた新型PS3で
MMDがPS2ゲーム。みたいな。

126名無しさん@お腹いっぱい。:2010/10/24(日) 23:25:36 ID:E7AqNPLk0
>実はMMD自体がGeForceに最適化されているという話を聞きまして
それどこ情報?どこ情報よ

127名無しさん@お腹いっぱい。:2010/10/24(日) 23:28:17 ID:w5BC8RZA0
>>124
それは>>117のリンク先とは違うの?
あしたGeForceをRADEONに差し替えてテストしてみようかなと思ってるので
ドライバとか具体的なエフェクト(できたら動画とかリンク先とか)教えてもらえると嬉しいかな

128名無しさん@お腹いっぱい。:2010/10/24(日) 23:33:23 ID:j/x9UGpg0
>>126
994 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日: 2010/10/24(日) 22:13:37 ID:uOp/phbFP
avi出力はゲフォがラデの10倍近くの速度が出ます
996 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日: 2010/10/24(日) 22:16:24 ID:VNuWjdDp0
>>994
マジか
ラデでいつも1時間以上かかってるんだ
GPGPUってやつか

ゲフォはエンコ用か・・・
997 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日: 2010/10/24(日) 22:19:48 ID:uOp/phbFP
>>996
GPGPUは関係ないと思う。おそらくレンダ処理がゲフォでチューニングされてるから(Mがゲフォだからラデについてはわからないかと)。
ゲフォの470、480は爆熱爆音でありえないからMMD最適化ならGTX460かGTS450を選んでもいいかと。
普通に選ぶならそれ買うならラデのHD5770にするけどね。

129名無しさん@お腹いっぱい。:2010/10/24(日) 23:48:38 ID:0iwoLhMw0
グラボのメーカや性能差によるものは本来DirectX側の問題ではなくハードウェアやサポート
もしくはドライバ関係の問題だから、その辺りまでのサポートを求めるのは酷かと。
あと求めてる情報提示してもらったら、礼くらい書いても罰は当たらないかと。

あくまでもMMEはMMDの機能に横やりを無理やり入れつつグラボへの直接命令を加えるもの
という事をお忘れなく。
各効果についてハード側と関連するようであれば、

【コマ送り】MMDハードウェア関連スレ【もう増やせない】
http://jbbs.livedoor.jp/bbs/read.cgi/music/23040/1266385818/

こっちで情報収集してみるもよし。
場合によっては自力でDirectXないしメーカの情報を漁るしかない場合も。

>>117-118
情報㌧です。
両刀使いだったのねw

130名無しさん@お腹いっぱい。:2010/10/24(日) 23:53:56 ID:j/x9UGpg0
無茶言ってすみませんでした

131名無しさん@お腹いっぱい。:2010/10/25(月) 00:48:58 ID:IebWeoN.0
>おそらくレンダ処理がゲフォでチューニングされてるから
チューニングもクソも、普通にただ BeginScene してDrawPrimitiveしてるだけだと思う
特にGeforce云々は無いと思う

132名無しさん@お腹いっぱい。:2010/10/25(月) 05:08:32 ID:G/P6QJSA0
>>116
情報ありがとう御座います。
オブジェクトのUVを変形させるより遙かに楽なので助かります。

133名無しさん@お腹いっぱい。:2010/10/25(月) 12:19:15 ID:cn7ZQrm60
うちのWinXPsp3+Athlon64X2-4600++GF8800GTSでも特にMMEで問題が出た事ないです。
一部ちょっと重いと感じるエフェクトもありますけど。
一応、参考までに。

13432:2010/10/29(金) 00:33:39 ID:AjXm4Zdk0
>>33
参考にして作り直してみた
http://u7.getuploader.com/Yjo_oi_Neg/download/76/Test3.zip

こんな感じでいいのかな?

135名無しさん@お腹いっぱい。:2010/10/29(金) 00:55:45 ID:aty9/j9s0
あら・・・、そのままコード使って見たほうが簡単なのだけど
とりあえず上手く出来ていないようなので解説を少し。

あのサンプルは、compute_tangent_frame関数と下記の部分が重要で
下記のコードのnormal(法線)に入る値は接空間とか考えずに
何時もどおりのワールド座標系で得られるので、深く考えずに扱えるよー
※PS内
float3x3 tangentFrame = compute_tangent_frame(In.Normal, In.Eye, In.Tex);
float3 normal = normalize(mul(2.0f * tex2D(normalSamp, In.Tex) - 1.0f, tangentFrame));

ちなみに、compute_tangent_frameの引数だけれど、VSの方を見てもらえば分かることでもあるけど
In.Normalは、何時もどおりワールド変換したものを
(Test1.fxでは、単純に正規化のみされてますね、ワールド変換してあげると良いかと)
In.Eyeは、正規化しないで視線ベクトルそのままを渡してあげる必要があるです。
(正規化されてると角度によって凹凸が反転しちゃうので注意です。Test1.fxでは、正規化されてますね。)

でー、無粋かもですが、もしすっ飛ばして使えるものが即ほしければ
同じところに下記があるので、ノーマルマップとか視差マップを
テクスチャさえ用意すれば使えるレベルで実装してみたものがあるのでどうぞです。
advancedTextureMapping.zip
advancedTextureMapping2.zip

136名無しさん@お腹いっぱい。:2010/11/11(木) 20:20:21 ID:rXztGgFY0
一時ageついでに有用レス晒しw
>>118
MMEを使用するのに必要なグラボのスペック

ちなみに初期MMEであったRadeon系グラボでの不具合はfxの記述ミスの為で、最初に諦めたRade使いはもう一度試してみるヨロシw
>>117

137名無しさん@お腹いっぱい。:2010/11/11(木) 20:20:54 ID:rXztGgFY0
しまった、age損なったorz

138名無しさん@お腹いっぱい。:2010/11/12(金) 18:25:21 ID:WgGMaL460
http://internet.watch.impress.co.jp/docs/news/20101112_406488.html

DLL検索順を利用した脆弱性が問題になっていますが
これはMMEを統合するか現在とは別の形で動作させるかの選択を迫られているのではないでしょうか。

MMEの場合は悪意のあるソフトウェアではなかったのでよいのですが
今後、MMEよりも高機能を謳うような、悪意のあるDLLが配布された場合
 ・現在の動画編集技術をもってすればあたかもMMD上で動作しているように(動画上で)見せることも可能
 ・そのような攻撃的なプログラムがMMD界隈で配布されることがなかった事による不注意
 ・事前に動作内容を確認する術がない(もしくは、一般の利用者が知りそうにない)

などの点を考えると
その悪意あるDLLをダウンロード、使用してしまうユーザーが出ることが十分に考えられます。
(ただ、まだまだローカルな物である点、情報の伝達が早めで被害は最小限になるかもしれない)

あくまで個人的な意見ですが
ランキングに上がるMMD系動画数が増えたことや、MMD杯等のイベントの大規模化から察するに
MMDは、PCにそれほど詳しくないユーザーも、興味本位で触れるものになりつつあると思います。
そのようなユーザーにもある程度安全に利用してもらう為、
プログラマー側の負担を考えないような意見で申し訳ありませんが
「MMDの脆弱性を利用したMMDの拡張機能」という立ち位置ではない、もっとクリーンな立ち位置のMMEにすべきだと思います。

長文失礼しました。
参考程度にでもなれば幸いです。

139名無しさん@お腹いっぱい。:2010/11/12(金) 21:08:39 ID:FhZFuVFs0
使わないって選択肢もあるよ

140名無しさん@お腹いっぱい。:2010/11/12(金) 21:46:17 ID:I0XVxfdU0
>>138
的外れだとは言わないけど過剰な危惧という感はあるかな
何もDLLプリロードによる攻撃という手段を取らなくても
何らかのMMD補助ツールを装った悪意あるプログラムを
直接的に実行させることだって可能なんだし

MMEが将来的に統合されること自体は望ましいけどね

141名無しさん@お腹いっぱい。:2010/11/12(金) 22:56:26 ID:nkcSBbR20
>>138
>DLL検索順を利用した脆弱性が問題になっていますが
>これはMMEを統合するか現在とは別の形で動作させるかの選択を迫られているのではないでしょうか。

特に迫られてはないです。何故ならMMD/MMEだけの話じゃないからです。無駄な長文乙

142名無しさん@お腹いっぱい。:2010/11/12(金) 23:07:28 ID:I0XVxfdU0
仮に何らかの対処をするとしたら
今後はこの脆弱性を解決したexeを基本にした上で
MMEのようなツールを利用したい人は
それが悪意あるDLLでないか十分に配慮した上で使用すべき旨を明記して
未対処verも同梱しておくというのが労力的に妥当な線かな?

別にこの問題を放置した結果
危惧されるような事案が実際に発生したとしても
樋口Mが道義的な責を負うとは思わないけどね

143名無しさん@お腹いっぱい。:2010/11/12(金) 23:09:20 ID:bmMnGGHA0
それより、Microsoftがとち狂ってシステム配下のDLLやEXEと同じファイル名のプログラムを使用できなくする方が怖い
MMEとか動かなくなっちゃう

144名無しさん@お腹いっぱい。:2010/11/12(金) 23:59:17 ID:I0XVxfdU0
>>143
さすがにそんな対処はしないと思うけど…

しかしMMEの改造版と称した悪意あるDLLが
アップロードされるという事案は結構現実的かもしれないという気もしてきた
低スペックの人でも使えるとか
Geforce/Radeon向けにチューニングしたとかいう
文言に釣られてしまう人って結構多いかもしれない

145名無しさん@お腹いっぱい。:2010/11/13(土) 00:04:58 ID:/61tmMeY0
>>143
それは無理。MMDどころの話じゃないし、OS的に有り得ないてかやれないしやらない

>>144
事案もクソもそれは巷に溢れるウィルス。MMD/MMEの話じゃない

146名無しさん@お腹いっぱい。:2010/11/13(土) 00:57:20 ID:.ceMivs.0
>>145
事案もクソも〜って本当にこれがどういう問題なのか分かってる?
MMEはMMDの実行ファイルと同じディレクトリにDLLを置かせることで
MMDが本来呼び出そうとしているDLLではなく自身を呼び出させている
それは呼び出すDLLのパスが明示的に指定されていない場合
カレントディレクトリから検索するという仕様を利用しているのであり
それが悪意あるDLLであった場合に問題が生じるという話だよ?
悪意ある人物がMMEの改造版を作ってみましたと言って問題のあるDLLを配布し
それに騙された人が実際にそのDLLをMMDと同じディレクトリに置いてMMDを実行してしまう
ということは現実的に起こってしまうかもしれない
巷に溢れるウィルスとかではなくそういうことをやる奴がいるかもしれないよという話

147名無しさん@お腹いっぱい。:2010/11/13(土) 01:00:43 ID:vR/DAkCs0
いやいや、解凍ソフトの不具合はexplorer.exeの参照順を変えるだけで回避出来るし、UNIX系OSだとカレントディレクトリは検索対象じゃ無いのが基本
参照順を変える可能性は0では無いかと。
そもそもMMEの様なDLLのフック系以外でMicrosoftが用意しているファイルと同名のファイルを用意するソフトって聞いたこと無いし、明らかにセキュアになる。
実施したら、そこらじゅうのSEが悲鳴を上げるのも事実なんだけどねw

148名無しさん@お腹いっぱい。:2010/11/13(土) 01:07:44 ID:/61tmMeY0
>>146
いや、わかってる?ってだからそれはMMD/MMEに限った話じゃないって事だって

149名無しさん@お腹いっぱい。:2010/11/13(土) 01:22:28 ID:.ceMivs.0
>>148
MMD/MMEに固有の問題ではないのに
殊更そのリスクを取り上げる必要はないってことでしょ?
セキュリティは基本的に個々のユーザーの責任だ、と
その考え方も分かるんだけど
やっぱりMMDってセキュリティに疎い"情弱"な人たちも使ってるし
何か知らんけどMMDを叩いてやろうみたいな変な輩もいる感じだから
そういう注意喚起ぐらいはしてもいいかなーと俺は思うんだけど
>>138みたいにMMDとMMEが速やかに統合されることによって
解決されるべきだというのは行き過ぎた主張だと思うけどね

150名無しさん@お腹いっぱい。:2010/11/13(土) 01:47:33 ID:/61tmMeY0
#どうでもいいけどもうちょっと簡潔にまとめてスレの迷惑にならないようにしようぜ

ってのは置いといて、セキュリティに疎い情弱な人も使ってるソフトなんて他にも山ほどある訳で
別にMMDもMMEも特別な存在な訳じゃなくて、どこかの誰かが作ったただのフリーウェアの一つな訳で、
何か話しが出た所で場当たり対処しても意味無いだろって。 ちょっと反応異常過ぎ

元からの解決ならOSベンダが何かの対策を取った後に、  各人開発がそれを受けて手を回すって順番にしないと
目先の問題で動いてもキリが無いんだよ。 ましてフリーウェアならそもそも利用者の自己責任。
対処自体、してもしなくてもどうでもいい訳だから、自己責任が原則。 なんか勘違いしてないか?

151名無しさん@お腹いっぱい。:2010/11/13(土) 02:20:49 ID:.ceMivs.0
>>150
場当たり対処しても意味無いって……
やっぱりあんまりこの問題のこと分かってないじゃん
マイクロソフトは既にDLLのプリロードによる攻撃を回避するための
ガイドラインを提示してるし
Windows Updateによる速やかな解決が必ずしも期待できない性質の問題なんだが

樋口Mに余計な労力を費やすことを要求したくはないし
この程度のリスクは別に放置しておいてもいいと思うけど
この脆弱性の修正に要するコストはMMD開発全体からすれば微々たるものであるのも事実

ともあれこれ以上この件に関してゴチャゴチャ言うのは止めとくわ

152名無しさん@お腹いっぱい。:2010/11/13(土) 02:27:49 ID:.ceMivs.0
ってアレ?
よく見りゃ>>145の上段では>>143に対して
そんな処置は無理って自分で言ってるじゃん
何なんだコイツ……その場その場でさも分かってるようなフリして
偉そうにもの言ってるだけじゃないか
真面目に相手して損した

今度こそもう何も言いません
スレ汚し失礼しました

153名無しさん@お腹いっぱい。:2010/11/13(土) 03:30:02 ID:/61tmMeY0
>>152
むしろ俺が損だよ。文盲乙

154舞力介入P:2010/11/14(日) 04:23:56 ID:rghRjJDA0
微妙に誤解があるようですが、
最近騒がれている脆弱性と、
MMEをMMDに読み込ませている方法は、正確には別物です。

どちらも、DLLを検索する際の、参照ディレクトリの優先順位を利用するものではありますが、
前者は、アプリケーションがDLLを読み込む際の、API呼び出しの不備を利用して、
ユーザが意識していないディレクトリに置かれたDLLを読み込ませるものであり、
後者は、OSがアプリケーションを起動する際の、仕様を利用して、
EXEファイルと同じディレクトリに配置したDLLを読み込ませるものです。

後者についても、前者と同種の脆弱性と考えることもできなくはないのですが、
前者は、アプリ開発者が実装を修正すれば対処できるものであるのに対して、
後者は、OSのプロセス起動ルーチンの問題であって、アプリ開発者には対処できないという違いがあります。

というわけで、MMEをMMDに読み込ませている方法を脆弱性と考えても、
それを樋口Mに対処をお願いするのはお門違いであり、
また、たとえMMDとMMEが統合されたとしても無くなるものではありません。


結局のところ、
DLLファイルもEXEファイルと同じ実行ファイルの一種であり、
ダウンロードしてきたDLLファイルを言われるままにインストールするのは、
ダウンロードしてきたEXEファイルを何も考えずに実行してしまうのと
同じ危険性があるということを知ってもらうしかないですね。

155名無しさん@お腹いっぱい。:2010/11/14(日) 08:21:33 ID:d07MitJ.0
>>154
普通に考えて、一般的なDLL(どこかに入っていれば動く)に
対しての脆弱性ですよね。
カレントに無くて、Windows配下に有ればとか、アプリケーションの
どこかのディレクトリーにあれば動くという事で、普段ユーザーが意識していない
ようなDLLと同じ名前のものをカレントに仕掛ければという脆弱性で、
MMDEのようにディレクトリを意識して配置して使うようなものは、
普通の実行ファイルと同じ(危ない場所からは取ってこない)
注意をすれば良いものです。
ここで、大騒ぎをしていないのは、皆それを判っているからでしょう。

>>138
が、文章は丁寧だけれどもなんくせつけているだけにしか見えていないので。

156名無しさん@お腹いっぱい。:2010/11/14(日) 15:21:31 ID:D3l/qfNU0
喧嘩は売られても買わなければ取引は成立しません
安い値段で買うと、買った人間の程度が知れます
損して得とれ、試合に負けて勝負に勝ちましょう

ともあれ、何かに偽装した悪意のあるDLLがこの先配布されないとも限りませんので、注意喚起にはなったのではと思います
杞憂も過ぎれば害ですが、無防備過ぎるのも確かに考えものですね

157名無しさん@お腹いっぱい。:2010/11/14(日) 15:23:28 ID:D3.TcgTg0
では開発に関係しない雑談はここまでで

158名無しさん@お腹いっぱい。:2010/11/15(月) 20:34:32 ID:yjp/B5Is0
本スレでkinectの事が話題になっていたので、

Kinect Viewer
http://www.youtube.com/watch?v=Th-Fgl2tj0M

こちらにはこの話題。
賞金付きオープンソース”Kinect”ドライバ開発コンテスト!
http://ascii.jp/elem/000/000/568/568632/
でも肝心なのはマイクロソフトの画像認識ライブラリなのかな?

159名無しさん@お腹いっぱい。:2010/11/19(金) 14:29:19 ID:Oie9tS9I0
Kinectって要はデジカメの顔認識機能の拡張版みたいなものだろ?
って事は、他のアニメやMMDの動きからもトレースできるってことじゃないかな?
上手くスクリプト組めば、カメラモーションも抜き出せる気がするよ

160名無しさん@お腹いっぱい。:2010/11/19(金) 14:58:59 ID:BZOmafyM0
Kinectは3Dセンサも使って認識してるんじゃなイカ?

161名無しさん@お腹いっぱい。:2010/11/19(金) 17:09:28 ID:ckNQC4G.0
Kinectは、カメラ2個つかって色と深度認識してるらしいねぇ
送られてくるのはその色と深度で、ソフト側はそこから姿勢を算出するらしいえ

162名無しさん@お腹いっぱい。:2010/11/19(金) 19:53:03 ID:uHg6Ouas0
一つ言える事は高校数学だと、数学B以上の数学必須

163138:2010/11/20(土) 09:54:41 ID:mbUGFmLw0
なにか燃料を投下してしまったようで非常に申し訳ない。
しかも自分の勘違いまで晒してしまって・・・
たしかによくよく考えればMMEを統合したところで何の解決にもなりませんね・・・
あとからで申し訳ないですが
「個人が"d3d9.dll"を振舞うようなプログラムを作れた以上
そういう事もあるかもよ」ということにしておいてください。
悪気はなかったんです、本当に申し訳ありませんでした。

164M:2010/11/21(日) 00:56:54 ID:ktO0S.yo0
舞力介入Pさんへ

MMD Ver.7.21で、フルスクリーン切り替え時と、画面解像度以上のAVI/画像出力時に
D3DDeviceをResetする必要が生じました。

そこで、もし可能でしたらMMEに

1.Resetをフックして、
2.Reset実行前にD3DPOOL_DEFAULTで作成したサーフェスを全てリリース、
3.およびD3DXEffectにOnLostDevice()を実行
4.Reset
5.その直後のBeginScene実行前に2でリリースしたサーフェスの再構築
6.D3DXEffectにOnResetDevice()を実行

するルーチンを追加することはできないでしょうか?
これでデバイスロスト時の対応も可能となるのですが。
もしできたらよろしくお願い致します。

165舞力介入P:2010/11/21(日) 13:09:57 ID:e9.VaqPg0
>>164
ご迷惑おかけします。
一応、Reset()時に、MMEを全リセットするコードをフックしてあったのですが、
うまく動作しなかったようです。
次バージョンアップで対応します。
(マズイ、やるべきことが積み上がってゆくorz)


別件ですが、こちらからも1点報告を。
Ver7.22で試したところ、ExpGetAcsFilename(), ExpGetPmdFilename()が、正しいポインタを返さないようです。
(ローカル変数のポインタが返っているように見えます)
お手数ですが、ご確認お願いします。

166M:2010/11/21(日) 20:18:53 ID:ktO0S.yo0
>>165
ごめんなさい、思いっきりローカル変数のポインタ返してました。
ttp://www.geocities.jp/higuchuu4/MikuMikuDance_v723beta01.zip

なんだか、色々とお任せしてしまいましてごめんなさいです><

167名無しさん@お腹いっぱい。:2010/12/16(木) 23:34:55 ID:r3ikgGpY0
MMEでサブセット番号を指定したテクニックの後に指定しないテクニックが並んでいた場合、
サブセット番号が一致したものは前者が、一致しないものは後者が呼び出されるものと
考えてもよいものでしょうか。
手元の環境ではそうなっていましたが、環境依存がないとも限らないので・・・

168名無しさん@お腹いっぱい。:2010/12/17(金) 01:09:07 ID:54aD7ZTw0
>>167

REFERENCE.txtに

>複数のテクニックで使用条件が重なっている場合は、
>エフェクトファイル上で先に記述されているものが優先される。

ってあるから書いてあるから、書いた順なんじゃね

169名無しさん@お腹いっぱい。:2010/12/17(金) 01:38:41 ID:BoXnIM8.0
>>168
あ、そうか、その条件で考えればOKですね
使用例のではそれぞれにサブセット指定してたので気になってました
サンクス

170名無しさん@お腹いっぱい。:2010/12/17(金) 07:37:09 ID:yZW80qFQ0
>>169
明示的に検索順序を指定することもできる。
REFERENCE.txtの”●STANDARDSGLOBAL”の項を参照

171名無しさん@お腹いっぱい。:2010/12/18(土) 14:04:55 ID:1eh1uhfI0
#includeの挙動について質問です。host.fxから同ディレクトリ内のguest.fxを
インクルードしたいのですが、#include "guest.fx" とした場合に、
サーチパスのカレントディレクトリが、最後に読み込んだモデルまたはアクセサリの
ディレクトリなっているようで、読み込みに失敗してしまいます。
また、最後に読み込んだモデル/アクセサリを削除、順番を入れ替えても
カレントディレクトリは変更されません。
どのようにパスに依存しない書き方すれば、読み込むことが出来ますか?
MikuMikuEffect:Ver.0.22, MikuMikuDance:Ver.7.23です

172舞力介入P:2010/12/20(月) 23:44:48 ID:zj7kZKGE0
>>171
MME ver0.23にて修正しました。
http://v-nyappon.net/?m=diary&amp;a=page_detail&amp;target_c_diary_id=916014

173名無しさん@お腹いっぱい。:2010/12/21(火) 07:22:16 ID:U8DmvoqI0
舞力介入Pさん対応していただきありがとうございます

174名無しさん@お腹いっぱい。:2010/12/25(土) 15:13:53 ID:oedzqk2A0
kinnect+MMD動画に魅せられて思わず購入してしまいました。

動画配信などで顔表示の代わりに上半身のみ表示させようとしていて
kinnectから受け取るデータを制限する為にDxOpenNI.dllを弄っておりますが
MMDかつ3D素人で座標の概念がまだ分からずに頓挫しております。
どなたかアドバイス頂けると助かります。

やりたい事:
モデルの下半身のボーンを固定させて上半身のみkinnectでキャプチャーしたい。

試みてる事:
dllに同梱されている DxOpenNI.cpp の141行目の関数の修正
下半身パーツの場合、座標を固定にしようとしているが
どんな数値を突っ込めば良いのか分からない('A`)
 point->x=(jointx.position.X-BP_Zero.position.X);
 point->y=(jointx.position.Y-BP_Zero.position.Y);
 point->z=(jointx.position.Z-BP_Zero.position.Z);
kinnectで取得した座標からセンターボーンの初期座標を引いてるのがポイントなのでしょうか。。
試しに0.0fを入れてみたら凄い格好になってしまった…。

175名無しさん@お腹いっぱい。:2010/12/25(土) 15:55:17 ID:N8ZzUW.M0
目的に合わないかもしれないけど、別の方法を2案
・キャプチャーした後に下半身のキーを全部削除する
・pmdの下半身のボーンの名前を全部変える

176174:2010/12/25(土) 17:44:29 ID:oedzqk2A0
>>175
レスありがとうございます。
案1については動画配信でリアルタイムに出来ないで目的に合わなそうです。
案2については使えそうですね。この発想はありませんでした。
ただ、気軽にモデルを切り変え出来ないのが辛いところです。

177名無しさん@お腹いっぱい。:2010/12/25(土) 17:52:12 ID:aSY58E360
鎖骨(首?)の座標から動的に生成したら?
イメージとしては不随の体が頭にぶら下がってる感じで。

178174:2010/12/25(土) 18:30:07 ID:oedzqk2A0
>>177
レスありがとうございます。
まさに、動的に座標を作り込もうとしてるのですが
MMD及びkinnectの知識不足で具体的にどのような値(座標)を割り当てて良いか分かっていません。。。
DxOpenNI.dllオリジナルソースではkinnectで取得した各パーツ座標から初回センターボーンの座標を引いた値を使っているようです。
これが何を意味するのか理解出来れば…。

179名無しさん@お腹いっぱい。:2010/12/25(土) 18:51:17 ID:aSY58E360
分かってなくても作れるんじゃないの?
生データから偽装したい部分の座標を生成して、
そこからセンターボーン座標だかなんだかを引きゃいいじゃん。

180174:2010/12/27(月) 11:14:19 ID:7qwsTa..0
なにやら26日にリリースされたMMD7.25にて
私のやりたかったことが出来るようになりました。
色々お騒がせしました。

今度は動きがちょっと機敏するぎるので
移動平均値にする対応してみようと思います。
この機能もいずれ本体側で対応されそうな気がしないでもないですが…

181名無しさん@お腹いっぱい。:2011/01/02(日) 11:16:01 ID:iGebJpsQ0
初歩的なことかもしれませんが質問させてください。
MMDへのリアルタイムなInputって可能でしょうか。(MMEが出来てるってことは可能?)

Kinect+HMDの動画のように、
HMDから角度情報を取得して、その情報を元にモデルの頭部を動かしたいと考えています。

MMEを用いて頭部にカメラ設置ができていますが、Kinectだけだと頭部が動かせないので。

182名無しさん@お腹いっぱい。:2011/01/02(日) 11:54:25 ID:IclL1t4A0
>>181
一番簡単なとこだと、vpdファイルのドロップをエミュレートする(PMDEditor方式)が在るんじゃね?

183名無しさん@お腹いっぱい。:2011/01/02(日) 11:57:51 ID:IclL1t4A0
>>181
ついでにvpdだとキー打ちはされないから
vmdドロップをエミュレートすれば記録も出来るかね

184名無しさん@お腹いっぱい。:2011/01/03(月) 22:23:45 ID:i7vAvA.I0
照明と色に関して、MMD上の操作値とMMEでのパラメータの相互関係が
分からなかったので、自分なりに調べた結果を防備録も兼ねてメモ。
間違いがあったら訂正願います。

・モデル(Toon適用)
 ・MaterialDiffuse = PMDEにおける「Diffuse」に相当
 ・MaterialAmbient = PMDEにおける「Diffuse」に相当
 ・MaterialEmmisive = PMDEにおける「Ambient」に相当
 ・MaterialSpecular = PMDEにおける「Specular」に相当
 ・LightDiffuse = (0,0,0)
 ・LightAmbient = MMDの照明色 / 255
 ・LightSpecular = MMDの照明色 / 255

・アクセサリ
 ・MaterialDiffuse = PMDEにおける「Diffuse」に相当
 ・MaterialAmbient = PMDEにおける「Diffuse」に相当
 ・MaterialEmmisive = PMDEにおける「Ambient」に相当
 ・MaterialSpecular = PMDEにおける「Specular」に相当
 ・LightDiffuse = (1,1,1)
 ・LightAmbient = MMDの照明色 / 255 * 0.7
 ・LightSpecular = MMDの照明色 / 255

185名無しさん@お腹いっぱい。:2011/01/04(火) 08:53:36 ID:XIsSIgUk0
>>181
某所にも書き込んでたよな?と言うか、>>182 の方法で 「リアルタイムに」 って要件満たせるの?
DnDを「したことにして」MMD側に伝えたとして、リアルタイムに動くのか。 PMDEditor触ってないので知らないんだけど
自分でPMDファイル読み込んで描画しちゃった方が早くね

186181:2011/01/04(火) 11:31:05 ID:5MvPxkEc0
>>182-183 >>185 ご意見ありがとうございます。
>>182だとやっぱりリアルタイムができない気はします。

DxOpenNI.dl を置き換える方法もあるみたいなので、
http://www.nicovideo.jp/watch/sm13198571

オリジナルのKinect対応版(ソースも公開されている)に、
VR920のを付加したものを作ろうと思います。

187名無しさん@お腹いっぱい。:2011/01/04(火) 19:08:30 ID:U.ZzuMBQ0
>>185
DnDで即vpdファイルのポーズになるから
一応DnD連続ですればそこそこのリアルタイム性は確保できるかも。

>>186
ただやっぱり、ファイルデータ用意してDnDを、連続で行うとなると
オーバーヘッド意外と無視できんか・・・

DxOpenNI.dllは、MMD側が参照するメソッドには位置取得くらいしか無いきがして悩んでたんだよな
体の回転は中心と両肩・両腿の付け根の位置でMMD側で計算してるんじゃなかろうかとか
それ以外の部位は記録されたキー見る限り、取得した位置で各関節IK処理したものプロットしてるような感じに見えたし

MMD側で決め打ちのボーンしかデータプロット出来ない感じに見えたから
・[MMD] Kinectをハックして対応ボーン増やしてみたwww
http://www.nicovideo.jp/watch/sm13182596
みたいに、モデル側のボーン構造弄って他の部位を乗っ取って頭に回転与える方法も必要になるやも

188181:2011/01/04(火) 19:29:19 ID:5MvPxkEc0
>>187
お察しの通り、DxOpenNI.dll は位置情報しかないっぽいです。
でも向き情報は揃っているわけだし、なんか計算すればできるはず。。。
3D関係のプログラミングなんかしたことなかったから苦戦しまくり。

D3DXMATRIX V;
D3DXMatrixRotationYawPitchRoll( &V, yaw, pitch, roll);
D3DXVec3TransformCoord(&BP_Vector[2], &BP_Vector[2], &V);

※BP_Vector[2]が頭部、yaw,pitch,roll はラジアンに変換済

ググって見よう見まねで↑みたいにやってるけどぐるんぐるん廻る。
まったり弄ってみますわ。

189名無しさん@お腹いっぱい。:2011/01/04(火) 19:52:22 ID:U.ZzuMBQ0
>>188
BP_Vectorってワールド座標で入ってた気がするんだけど、それだと動きすぎない?
頭に角度だけ与えるなら首支点に動かすと、Y軸以外の傾きなら得られるんじゃないかな。
3行目変更で4行目追加
D3DXVec3TransformCoord(&BP_Vecotr[2]-&BP_Vector[1],&BP_Vector[2],&V);
&BP_Vector[2]+=&BP_Vector[1];
みたいな感じ?

ついでにyaw,pitch,rollが、頭が上向きが初期状態であるものに対するデータだと邪推すると
こっちになるかも
D3DXVec3TransformCoord(D3DXVECTOR3(0.0f,1.0f,0.0f),&BP_Vector[2],&V);
&BP_Vector[2]+=&BP_Vector[1];

190名無しさん@お腹いっぱい。:2011/01/04(火) 22:53:31 ID:5MvPxkEc0
>>189
言われた通りにやってみたら、言われたとおりに動きました。。。

D3DXMATRIX Mtrx;
D3DXMatrixRotationYawPitchRoll( &Mtrx, yaw, pitch, roll );

D3DXVECTOR3 V = D3DXVECTOR3(0.0f,1.0f,0.0f);

D3DXVec3TransformCoord(&BP_Vector[2], &V, &Mtrx);
BP_Vector[2]+=BP_Vector[1];

Y軸以外(Pitchとroll)はうまく反映できています。

さあて、Y軸をどう対応させるか…の前に、
どうしてこれでY軸以外が動くのか、まずはそこの勉強からだ(泣

191名無しさん@お腹いっぱい。:2011/01/05(水) 11:44:06 ID:PaVsV3hQ0
>>183 の「vmdドロップをエミュレート」でやってみましたが、
カメラを選択してないと書き換わらないので、
Kinect (モデルを選択してないと使えない)とは共存できなさそうでした。
プログラム作る前にドラッグ&ドロップで試せばよかった…

192名無しさん@お腹いっぱい。:2011/01/05(水) 12:24:04 ID:X44i8OxgC
>>192
vpdはもしかしてカメラの位置をうごかしてる?
mmeのモデルの頭にくっつける奴を使って
vpdはモデルの頭ボーンの姿勢だけあげれば
モデル選択状態で視線カメラ出来るとおもうけど
視線カメラが目的じゃないならごめん
対応策はまたかわるね

193名無しさん@お腹いっぱい。:2011/01/05(水) 12:27:46 ID:XZ9bfgxMC
>>192 のアンカーは >>191
何故自分宛にしたし…

194名無しさん@お腹いっぱい。:2011/01/05(水) 18:39:17 ID:qZ0hEoyYO
やりたい事に対してもの凄く遠回りしてるように見えるけど、
しかしMMDを無理矢理にでも利用する事に意味があるんだよなきっと
OpenMMDもどきでも作る方が広がりやすい気はするけども。ちなみに別の形でクローン作ってる人間は結構いる

195名無しさん@お腹いっぱい。:2011/01/05(水) 19:02:34 ID:cFMkRgBE0
いるにしても、場末のブログに報告だけのっけて終わりとか
自慢動画一本投稿してオシマイとかばっかでは発展性がない

196181:2011/01/05(水) 19:28:55 ID:p8Omq.Qs0
正直できてるものがあるなら公開してもらいたいと思う。
そうすりゃ無い頭絞って作る必要もないんだし。

>>194
>やりたい事に対してもの凄く遠回りしてるように見えるけど
>しかしMMDを無理矢理にでも利用する事に意味があるんだよなきっと
自分の場合は大層なこと考えては居ないんですけどねw
Kinect+HMDの動画にあった、「巨大物を見上げる」「高所での綱渡り」をただ体験したいだけで。

3D…というかGUIの経験すらほとんどないので、Kinect読み込みから3Dの描画まで作るよりは
あと頭部を回転させるだけですむMMDの方がラクかなと思ったもので。

197名無しさん@お腹いっぱい。:2011/01/05(水) 21:47:01 ID:h4cxaHLU0
いやどっちかって言うと丸々一本作るとかじゃなく、最後の行き先を連携インタフェースを持たないMMDにしないで
それを持った別のクローンに挿げ替えてもいいのかなと。でもそこをあえてフックやメッセージ叩き込みみたいな形で
あえてMMDに放り込むのが面白いのかなと。 その気持ちもわからないでもないので
個人的には、3Dとは違う方向で変わった手段を取らないといけないから、そっちの方がむしろ大変に思えたって話

198名無しさん@お腹いっぱい。:2011/01/05(水) 22:50:29 ID:koIu0xmw0
Excelでらき☆すたOPを再現みたいなもんか

199名無しさん@お腹いっぱい。:2011/01/06(木) 00:10:25 ID:pc5.bEWs0
MMDは外部からデータをいじらせる気はなさそうだから
何をするにも不便で仕方ないな。そろそろ限界じゃないの。
適所でなくてもMMEで実装せざるを得ないこんな世の中

200名無しさん@お腹いっぱい。:2011/01/06(木) 00:57:13 ID:Kdt6V.Gc0
つ、釣られないぞ

201名無しさん@お腹いっぱい。:2011/01/06(木) 03:04:57 ID:c/44IgaM0
忘れられているような気がするが、
実際のところモデルデータもモーションデータもハックの産物だからなあ。
解析者が優秀だったからたまたま上手く回っているだけで。

202名無しさん@お腹いっぱい。:2011/01/06(木) 09:06:15 ID:NfQG2.O60
まあいじらせる気がないってのは正しい。
それで限界迎えるならそのまま終わっていけばいい。

203191:2011/01/06(木) 11:56:36 ID:4j4/j1EI0
>>192
そっちのほうが簡単そうですね。と、ここでようやく >>187-190 の話が理解できました。
で、vpd を絶えず Drag & Drop する方式でいったらけっこううまくいきました。
MMD でキャプチャーしたら綺麗サッパリ消えてしまうのが難点ですが、スクリーンキャプチャーだとそれなりに見えます。

204名無しさん@お腹いっぱい。:2011/01/06(木) 13:34:16 ID:RCbXWbHc0
>>202
> まあいじらせる気がないってのは正しい。
> それで限界迎えるならそのまま終わっていけばいい。

むしろ本家MMDはばっさり終わってしまって
PMDEditor&VMDViewがMMD化する方が
正しい進化のような気がしてきたw

今となっては Blender に持って行くことだって出来るし
本家がどうなろうと関係ないだろうな

205名無しさん@お腹いっぱい。:2011/01/06(木) 13:35:39 ID:NfQG2.O60
需要があればMMDクローンを作れる技術自体のある人はいるしねー

206名無しさん@お腹いっぱい。:2011/01/06(木) 14:45:13 ID:HkszvfWo0
MMD互換ソフトとか作りたい人はMに遠慮せず作ればいいと思うよ。

Mのすごいところは、プログラミング技術以前の「必要とされていてかつ面白そうなことをやってみる」
アンテナと行動力だと思うし。その辺がたぶん他の人には真似できないんじゃないかと思うんだよね。

207名無しさん@お腹いっぱい。:2011/01/06(木) 15:17:36 ID:c/44IgaM0
技術だけなら樋口の上を逝く奴がゴロゴロ転がってるが、
それを門外漢にも扱えるように仕立ててなおかつ普及させられる
カリスマティックな人間てのは滅多にいないんだよ。
メタセコも同様。

そもそも、ほとんどの奴は普及以前にブツを出すとこまで到達しない。
到達した奴も「俺用に作ったので利便性考えてません」でブン投げてオシマイとかな。

208名無しさん@お腹いっぱい。:2011/01/06(木) 16:20:08 ID:pc5.bEWs0
他人が使うことを前提に作る人が、技術屋さんにはまずいないのだよね。
MMEやPMD Editorは、一見で最低限使えるように作ってる所を尊敬する

209名無しさん@お腹いっぱい。:2011/01/06(木) 23:09:38 ID:NDGsBnyo0
Blenderに夢見てる奴がいるのはいいけど、ここに湧く意味がワカラン

210名無しさん@お腹いっぱい。:2011/01/06(木) 23:23:51 ID:U1KKqLP.0
>>209
お前はもう消えろ

211名無しさん@お腹いっぱい。:2011/01/07(金) 09:33:51 ID:jU.9e3nU0
つか、Blenderの話題に消えて欲しいんですけど…
BlenderがなくてもMMDは出来ますし、正直影響もそんなないですし。

212名無しさん@お腹いっぱい。:2011/01/07(金) 09:56:25 ID:kX9ewwPw0
Blenderユーザーはどこにでも湧いてきて相手が黙るまで噛み付いて来るから、諦めて無視を貫け
キチガイに言葉は通じない

213名無しさん@お腹いっぱい。:2011/01/07(金) 11:03:48 ID:lG3OYH7k0
つべ板落ちてるからって専門スレにでしゃばってこなくていいよ邪魔だから

214名無しさん@お腹いっぱい。:2011/01/07(金) 11:09:42 ID:e5Igw/5c0
関連ツールとして話題になることくらいあるだろ。
メタセコの話がokでBlenderは消えろってのも筋が通らん。

215名無しさん@お腹いっぱい。:2011/01/07(金) 11:24:29 ID:g.4K049g0
つ「MMD関連プログラミングスレ」
スレチではあるね
ただ、もっと提携が進んでもいいと思うよ
MMDがBlender用のデータ作成&プレビューツール的な役割(逆に言えばBlenderがMMDのレンダラ)でも良さそうだけどね

216名無しさん@お腹いっぱい。:2011/01/07(金) 11:28:38 ID:jU.9e3nU0
それで、>>204みたいな「本家がどうなろうと関係ない」とか、そういう狂信者の戯言はいらんと言ってるんですよ。
MMDを好きでやってる人間にしてみれば、BlenderなんてのはMMD・PMDEの下位にくる
「補助的なツール」でしかない訳で、モデリングの役に立つ有効な使い方とかの話じゃないBlenderの話なんて
100%完全に無駄で意味がないからやめて欲しいと言ってる訳です。
メタセコで同じ様な人が出たら、やはり「邪魔なんでどっかいって」って言いますよ。

217名無しさん@お腹いっぱい。:2011/01/07(金) 11:34:52 ID:e5Igw/5c0
んな細かいことに噛み付くほうも十分狂信者だってことだ。

218名無しさん@お腹いっぱい。:2011/01/07(金) 11:38:19 ID:d7Sk0VYo0
何でも綺麗に整ったスレ進行じゃないと気が済まない潔癖症も十分狂ってるよ

219名無しさん@お腹いっぱい。:2011/01/07(金) 11:49:16 ID:jU.9e3nU0
>>217
ここMMD板ですもん。MMD狂信者はいても普通でしょうw
Blender狂信者はBlender板へ行って下さいよ。
情報交換とかお役立ち情報以外の話なんか別に聞きたくもないですし、
やりたきゃよろぎにでもどうぞ、としか。

220名無しさん@お腹いっぱい。:2011/01/07(金) 11:53:19 ID:jU.9e3nU0
あ、他にも関連ツールスレとかモデルデータスレとかありますし、
お好きな所でお好きなだけBlenderの話をされては如何ですか?
大抵は「邪魔だからどっかいって」って言われて終了だと思いますけど。

221名無しさん@お腹いっぱい。:2011/01/07(金) 12:00:21 ID:e5Igw/5c0
>219
「神聖不可侵なMMD様を冒涜する奴は殺してやるキーキーギャーギャー」とか
刃物振り回しながら言ってたら
普通のMMDファンも寄って来なくなるし逃げるから迷惑だつってんだ。
MMDのために消えてくれ。

222名無しさん@お腹いっぱい。:2011/01/07(金) 12:08:44 ID:jU.9e3nU0
>>221
そういう話はMMDとBlender双方にとって有益な話を展開してから言って下さいよ。
「MMDはさっさと終わらせて」とかがまともな発言とも思えませんが。
PMDEとBlenderがあれば充分なら、それだけで動画作ってUPすりゃ良いじゃんて話でしょう?
わざわざMMD板で発言する様な事でもないでしょうよ?違います?

223名無しさん@お腹いっぱい。:2011/01/07(金) 12:09:15 ID:cb5aUPNQ0
Blender に限らず ARtoolkit とか MMD for XNA とか
MMD のデータやモーション取り込める環境はいくつもあるし
そこらへんの話題全部禁止だとえらく窮屈な世界になるぞ

224名無しさん@お腹いっぱい。:2011/01/07(金) 12:21:18 ID:jU.9e3nU0
>>223
その辺の話で「MMD本家はいらん」みたいな台詞は出ないでしょう。
どっちかが欠ければ成立しないんですし(ARtoolは他とも連携出来るけど)。
双方にとって有益な話までするなとは言ってませんよ。
で、今回のBlenderの話の流れで有益な部分てどこら辺ですか?

225名無しさん@お腹いっぱい。:2011/01/07(金) 12:41:28 ID:lG3OYH7k0
「プラグラミングをする」話をしようぜ。
こういう議論とか雑談を続けるならこっちに移動しよう。

MMDよろず議論スレッドPart5
http://jbbs.livedoor.jp/bbs/read.cgi/music/23040/1285553935/l100

226名無しさん@お腹いっぱい。:2011/01/07(金) 18:12:10 ID:/RzbDQ4Q0
>>203
キャプチャーするとダメな点は、vpd送るソフト側で、送ったら記録しておいて
キャプチャ後に、記録しておいたデータから自前でVMDに記録して
後から合成で出来るんじゃないかと思う。(キャプチャの開始タイミング合わせが少々面倒かもしれないが)

227名無しさん@お腹いっぱい。:2011/01/07(金) 19:31:40 ID:g.4K049g0
>>ID:jU.9e3nU0
とりあえず布団を敷こう、な!
「本家がどうなろうと関係ない」と発言したID:RCbXWbHc0はその後発言しとらんよ?
Blender使ってる人間を十把一絡げで扱いなさんな
それよか自分から有益なプログラミングの話題を振れば良かろ

そういえば一時期OpenGLで試みてた人はどうなったんだろう?

228名無しさん@お腹いっぱい。:2011/01/07(金) 19:57:07 ID:.5carTYo0
ちょっとBlenderをネタに煽られたからって
「Blenderは悪、使ってる奴はみんな荒らし」みたいな論調でものを言うのはどうにかならんの?

本人にその気が無くても語調が強くてそう読めてしまう
無駄な敵増やすだけだよ

229名無しさん@お腹いっぱい。:2011/01/07(金) 19:58:14 ID:lG3OYH7k0
>>225
>>225

230名無しさん@お腹いっぱい。:2011/01/07(金) 22:07:59 ID:jU.9e3nU0
>>227
俺、メタセコ派なんでw
何の益にもならないBlender話はいらないと言ってるだけで
相手が1人でも複数でも、十把一絡げにしてる訳ではないですよw

231名無しさん@お腹いっぱい。:2011/01/07(金) 23:14:34 ID:vhtCmZlc0
>ID:jU.9e3nU0
なんだただの荒らしか

232名無しさん@お腹いっぱい。:2011/01/07(金) 23:27:02 ID:YqZZnqYI0
つか
BlenderがMMDにどう役立つのか
いまいちわからんのだけど

233名無しさん@お腹いっぱい。:2011/01/07(金) 23:58:52 ID:0ltNdGEM0
MMEでのOFFSCREENRENDERTARGETの描画タイミングと描画順が知りたいです
OFFSCREENRENDERTARGETの描画結果を別のOFFSCREENRENDERTARGETの描画で使うという
ちょいとアクロバティックなことをしようとしているので

ついでに、OFFSCREENRENDERTARGETに対してポストエフェクトを指定できたら嬉しいな、なんて・・・

234名無しさん@お腹いっぱい。:2011/01/08(土) 00:03:08 ID:MsTUkOEI0
>>233
MMEの話題はここじゃないんだけど
わざとやってる?

235名無しさん@お腹いっぱい。:2011/01/08(土) 00:04:15 ID:GLQPp.bk0
どう見ても「MMD関連プログラミング」の話題です

236名無しさん@お腹いっぱい。:2011/01/08(土) 00:05:05 ID:P3HAoLaA0
>>2
から思い切りMMEの話題ですがな

237名無しさん@お腹いっぱい。:2011/01/08(土) 00:08:53 ID:t9HZBjkk0
>>233
描画タイミングはー、人力デバッグするか、舞力介入Pに聞かないとわからないですね。
SharedにしたOFFSCREENRENDERTARGETは、ちょっと気になって調べてるところですが。
連鎖利用は、思いつかなかったですね。

OFFSCREENRENDERTARGET取得するエフェクト内で
POSTエフェクトの処理すれば代用はできますが
流用出来ると便利ですよね。

>>234
>>1の3行目をどうぞ。

238191:2011/01/08(土) 08:23:48 ID:z4Y0iJ0g0
>>226
そういう用途なら vpd じゃなくて vmd しか無理なんじゃないでしょうか。(勘違いしてるかもしれませんが)
もういっそ、Kinect → 自前プログラム → (vmd 吐き出す&レコード) → MMD
で出力するのが簡単で自由度も高そう。

239名無しさん@お腹いっぱい。:2011/01/08(土) 12:54:06 ID:t9HZBjkk0
>>238
その通りだね。
というかそういう様に書いたつもりだったけど、わかり辛かったかの。

・キャプチャ中の、見た目のモーション用
>vpd送る

・キャプチャ後
>ソフト側で、送ったら記録しておいて
>キャプチャ後に、記録しておいたデータから自前でVMDに記録して

ちなみに、キャプチャ中は、モーション再生はされるが
編集用のタイムラインは動かないから、VMDドロップしてもキャプチャ開始したフレームを上書きするだけになる。
(※vpdは元からキー打ちはされない・当然キャプチャにドロップしてもポーズ変わるだけでキー打ちはされない)

極端なところ、自前プログラムでキネクトのキャプチャ結果をVMDに落としこんでしまえれば
融通利くけど、3D関連のプログラムどっぷりになるし、”覚えてがんばる”と”すぐやりたい”のトレードオフだね

楽をしたいと思うと、ボーンのデータだけ自作ソフトで扱って、VMDを書き出すのは最低限必要として
MMDにvpdを送りつけてビューア代わりに使ってしまうのも面白そう。

240名無しさん@お腹いっぱい。:2011/01/08(土) 12:59:57 ID:t9HZBjkk0
というか、頭部モーションをキネクト”ではない”物から
リアルタイムにMMDに渡したいってのが元だったと思うから
VMDをキネクトから自作ソフト生成ってのは論点ずれてたか

241名無しさん@お腹いっぱい。:2011/01/08(土) 20:56:29 ID:hXkabdGE0
メタセコユーザはコンプレックスで屈折したキチガイが多い

242舞力介入P:2011/01/09(日) 11:30:00 ID:bm9zIvkM0
>>233
描画タイミングは、以下の通りです。
(1) セルフシャドウ用Zバッファ描写(zplot)
(2) OFFSCREENRENDERTARGET一式描画
(3) ポストエフェクトのScriptの、先頭から"ScriptExternal=Color"まで
(4) プリエフェクト
(5) モデルよりも先に描画されるアクセサリ一式描画(object, object_ss)
(6) 地面影一式描写(shadow) ※ただしアクセの描画順序は不定
(7) モデル一式描画(object, object_ss)
(8) エッジ一式描画(edge)
(9) モデルより後に描写されるアクセサリ一式描写(object, object_ss)
(10) ポストエフェクトのScriptの、"ScriptExternal=Color"から最後まで
※(5)〜(9)については、MMD側の描画順序に由来します。


また、OFFSCREENRENDERTARGET毎の描画順序については、厳密には不定、というのが現時点での回答になってしまいます。

現バージョンでの内部実装に関して言うと、OFFSCREENRENDERTARGETの描画順序は、
おおよそ、そのエフェクトファイルが割り当てられているオブジェクト(モデル&アクセ)がMMD上で読み込まれた順、になっているはずです(厳密ではない)。
また、1つのエフェクトファイル中に複数のOFFSCREENRENDERTARGETがある場合は、エフェクトファイル中で書かれている順になります。
前者の順序に関しては、今後変わる可能性がありますが、
多分、後者の順序については、まず変わることはないと思います。


OFFSCREENRENDERTARGETのポストエフェクト適用については、
うーむ、実装よりも、どうやってMMD上から制御するかの設計が考え物ですね・・・

243名無しさん@お腹いっぱい。:2011/01/10(月) 13:26:15 ID:SApYTqRY0
MMEでセルフシャドーに、テクスチャαを反映させる
https://v-nyappon.net/?m=diary&amp;a=page_detail&amp;target_c_diary_id=923968
という、こんなの作ってみた事で
最大の難点である、”サブセット毎”に”1つずつ適用”すると言う点。
が気になってきまして・・・

記事中の雑感に書いてあるけれど
手作業でサブセット毎に、別のエフェクトファイルを指定するのは
プリセット配布用としては、しんどいかなと

emmのモデル単位版な感じで
同名fxファイルが自動で読み込まれるように、設定ファイルを自動で読み込んで
サブセット毎のエフェクト指定が出来ないものかと提案してみます。

244舞力介入P:2011/01/11(火) 23:48:31 ID:5AuvwnDs0
>>243
次バージョンあたりで入れてみます。
拡張子は変えるべきか否かちょっと悩みますね
書式は全く変わらないけれど、変えておいたほうが安全か…

245名無しさん@お腹いっぱい。:2011/02/08(火) 00:49:59 ID:WyFtBywQ0
MMEv0.23についてなんですが
ポストエフェクトを使用した際に、出力される映像の上と左に1,2ドットほど
MMDの背景色(スペース)が入ってしまうのはバグでしょうか?
例えば「背景黒」を入れるとそのスペースが黒くなり、切ると白くなったりします。

246名無しさん@お腹いっぱい。:2011/02/10(木) 02:43:27 ID:b7Vse0ss0
MME ver0.24更新お疲れ様です。モデル単位のemdファイルによるエフェクト割り当てに期待していたのですが、
モデルやエフェクトのパスに日本語が使われていると読み込みできないようです。(emmファイルも以前からそうでした)
掲示板等を見ても同様の報告は見られないので(関連ツールスレの411は私です)環境依存なのかもしれませんが、なにか対応策はあるでしょうか。
単純にフォルダ名・ファイル名を全て英語に直せばいいのですが、過去のpmmが開けなくなってしまいますし、これは最後の手段にしたいです。

使用環境
CPU: Core i5 750
RAM: 4.00GB
Windows 7 Professional (32bit)
MikuMikuDance ver7.28
MikuMikuEffect ver0.24

247246:2011/02/10(木) 04:05:07 ID:b7Vse0ss0
すいません、emdファイル単体なら日本語を使っていても読み込めました。(先ほどはemdを保存した後に移動したのが原因でした)
emmファイルのほうは相変わらず日本語があるとダメなようです。

248舞力介入P:2011/02/10(木) 22:05:55 ID:0k2/1jbo0
>>245
こちらでは、そのような現象は確認できていません。
とりあえず、その現象が起こっている状態で、画像出力(png)してアップロードしていただけないでしょうか
また、どんなポストエフェクトでも発生するのか、あるいは特定のエフェクトでだけ発生するのかの確認もお願いします。

249舞力介入P:2011/02/10(木) 22:20:53 ID:0k2/1jbo0
>>246
ちょっと原因がよくわかりません。
とりあえず、コントロールパネルの「地域と言語」の「管理」タブにて、
「Unicode対応でないプログラムの現在の言語」が、日本語になっているか確認をお願いします。
それが問題ないようでしたら、モデルやエフェクトのファイル名に日本語が含まれている状態で
出力したemmファイルがどうなっているか、アップロードしていただけないでしょうか。

250245:2011/02/10(木) 22:52:05 ID:N42MjPpc0
>>248
手元にあるエフェクトで試してみました。

エフェクトなし http://gyazo.com/6165175e51da695d13713818495975bf.png
ディフュージョンフィルタ(v5) http://gyazo.com/d4557be61b0f579189592f4581590f89.png
モーションブラー http://gyazo.com/796d008bf85e146d05368db8cdcc39f4.png
DOF http://gyazo.com/6d911e43cfb3d642a4223ad678d17e5f.png

このようになってしまいます。
スペックは以下の通りです。
OS:Windows 7 Ultimate 64bit
CPU:Core i7 870
RAM:8GB
VGA:GTX470 2waySLI(VRAM: 1280MB)

他にも必要な情報があれば遠慮無く言ってください。
出来る限り協力します。

251245:2011/02/10(木) 22:54:26 ID:N42MjPpc0
>>250
MMDとMMEのバージョン記入を忘れていたので追記します。
MikuMikuDance v7.27
MikuMikuEffect v0.24

252名無しさん@お腹いっぱい。:2011/02/11(金) 08:47:50 ID:16gIeLMc0
横からですが、MMEを削除した状態(MMDをDLした直後の状態)でも確認しました?

どのスレか忘れましたが、MMD本体で出力された画像に余白が生じるという報告を見た記憶があります

253名無しさん@お腹いっぱい。:2011/02/11(金) 09:46:58 ID:eN50mK8M0
あ、うちの環境(ThinkpadR60 intel945GM)だと、
別窓にした時に背景画像が1ドット下にずれるってのがある。別窓解除すれば直る。

254245:2011/02/11(金) 11:54:57 ID:ckZ6ishI0
>>252
MMD最新版で確認しましたが、MME未使用の時にはその現象は起きませんでした。
念のためMMD最新版にMMEを適用し、再度確認しましたが
同じ現象が起きてしまいます。

255名無しさん@お腹いっぱい。:2011/02/11(金) 13:22:45 ID:16gIeLMc0
MME使用時それもエフェクト適用時のみズレが生じているみたいですね

これは詳しい人に聞いたほうがいいと思いますが、
GPUやドライバが原因でシェーダが特定の処理を行うときにズレが発生する
ということはないのですかね?
特に、SLI構成はMMD界隈ではごく少数だと思いますし

256名無しさん@お腹いっぱい。:2011/02/11(金) 18:38:28 ID:M67woDY20
自分も上と左に1ラインが出る、同じ症状が、ディフュージョンフィルタで出ますねー。
(確認できてるのはそれのみ、自分の環境では動かないエフェクトも多いので)

しょうがないので、いつも、編集でちょっと画像拡大してごまかしてる(^^;

257舞力介入P:2011/02/11(金) 23:16:09 ID:V75yxpu60
>>250
確認ありがとうございます。

追加で恐縮ですが、
適当なモデルを追加して、画面をはみ出るまでズームしたときに、
左や上の余白部分にどう重なるかを確認してもらえないでしょうか。
また、アンチエイリアスをOFFにした場合に、どうなるかも確認をお願いします。

GTX400系は他にも問題が起きてるみたいなので、
私のほうでも購入して確かめてみる予定です。

258245:2011/02/12(土) 01:20:00 ID:K4UErYak0
>>257
http://gyazo.com/9892b170291117e79334756faa2d6291.png
こうなりました。

アンチエイリアスについて確認してみたところ、回避方法がわかりました。
NVIDIAコントロールパネルの3D設定の管理(アプリケーションごとの設定)で
アンチエイリアスのモード・設定を弄っていた場合に発生するようです。
具体的には
 「アンチエイリアス - モード」が「アプリケーション設定の変更」の時は無条件に発生。
 「アンチエイリアス - モード」が「アプリケーションの設定を強調する」の時
  - 「アンチエイリアス - 設定」がSLIを利用しない32x以下の場合は発生しない。
  - SLIを利用する「SLI 8x」等のアンチエイリアスを利用している場合に発生。
 「アンチエイリアス - モード」が「アプリケーションによるコントロール」の場合は発生しない。
このような条件で発生するようです。
見た感じではSLI時のアンチエイリアスにバグがあるようです。

259名無しさん@お腹いっぱい。:2011/02/12(土) 09:43:24 ID:MVSbYdcM0
そう言や、susieプラグインで「拡張子.spaを認識するbmpプラグイン」を作れば
メタセコで.spa読めるのかな?

MMDのスフィアマップとメタセコの材質→マッピング:透明の欄のやつの
仕様が同じかは知らんけど。

260名無しさん@お腹いっぱい。:2011/02/12(土) 18:05:09 ID:dRPDE5120
>>259
最近のメタセコβなら、シェーダコードMMEほどでは無いが弄れるから
透明マップのとこにスフィア指定して
うまいことfx弄ればMMDに似せられるかもな。
Toonが読めんのが一番の難点だが

261名無しさん@お腹いっぱい。:2011/02/13(日) 20:35:22 ID:aKnRy15c0
上と左に1ラインが出るってのは、うちだとMMDのAVI出力で普通に発生してる。
あんまり気にしてなかったけど。調べたら透明度が半分になってた。

262名無しさん@お腹いっぱい。:2011/02/18(金) 03:32:58 ID:inxrmtuQ0
fxファイル中で、例えばコンソールとかにデバッグ出力する事って無理なんでしょうか。

263名無しさん@お腹いっぱい。:2011/02/18(金) 04:14:12 ID:omYpzad.0
>>262
テキストをコンソールに落としこめるような、手軽なDebugWriteのようなものは無い。
シェーダメソッドは超並列処理特化なので、デバッグ出力はそもそも現実的じゃない
DirectX SDKなんかにはいってる PIX とか使うと、インラインデバッグは出来る。
※画面中の1ドットをピックして、レンダリングされるまでの工程を追ってくれる。
自作物には良く使うが、MMDで使えるかは、試したこと無いんですまん。

いまのとこ、MME用ならコンパイルエラー潰す程度で間に合うものしか作ったことないんでな・・

264名無しさん@お腹いっぱい。:2011/02/18(金) 04:26:44 ID:inxrmtuQ0
頂点の計算結果の値がどこかに出せないかと思ったんですよね
で、MMEがコンソール持ってるからそこに出せないかなと思ったんですが・・・諦めるかな

265名無しさん@お腹いっぱい。:2011/02/18(金) 13:02:50 ID:omYpzad.0
>>264
画像にデータを書きこんで、擬似出力とする方法はある。
UVを、書き出す座標と、頂点インデックスデータとして持たせて

VSで側では
:POSITION に float4(uv,1,1);返して描画位置を決定
:TEXCOORDn に 計算後の頂点データをやる

あとはPSで、
:TEXCOORDn としてうけとった演算済みの頂点データを
:COLORn に返してやればテクスチャとして触れるデータになる。

浮動小数点フォーマットの画像はMMDは書き出せないんで
(HDRな画像フォーマットがドロップダウンに並んでるが0〜1に丸められて保存されるので実質使えない)
rgba32bitに、どうにか落としこむ必要はある
(float型1個程度なら、rgbに振り分けて、24bitつかってそこそこ精度出せる。つまり3テクセルくらいあれば精度は充分)

あとは、浮動小数点フォーマットの画像にとりあえず記録して
フレームタイム・カウンタ.zip
http://flammpfeil.appspot.com/trinketbox/
みたいに、文字画像として、描画してしまう方法
浮動小数点フォーマットのレンダリングターゲットから、数値を読み取りなおして落とし込めば良い。

GPGPUが整備されて無いDx9世代で、GPUを使った演算をするための小技のひとつ。

266舞力介入P:2011/02/21(月) 05:14:35 ID:rp1QduaU0
>>258
MME ver0.26にて修正を行いました。
ご協力ありがとうございました。

267名無しさん@お腹いっぱい。:2011/02/27(日) 08:41:35 ID:h9MzlSbU0
MME ver0.26つかってみたのですが
http://goo.gl/R23ou
0.23〜0.25までは上の画像のように海面が表示されていたのですが、
0.26を入れると下のようになってしまいました。

MMD Ver7.30
VGA ATI Radeon HD 5670

ATI系だけの症状なのかな?

268名無しさん@お腹いっぱい。:2011/02/27(日) 15:57:30 ID:9YMPVM/s0
>>267
具体的に使ってるエフェクト書こうよ。
ちなみに MME_Water_EX_v0_3_2_7 であれば、MME0.26とは相性が悪いのは既知の問題らしいです。

269名無しさん@お腹いっぱい。:2011/02/27(日) 18:17:39 ID:h9MzlSbU0
>>268
そうですね。肝心な事を書いてませんでした。失礼しました。
エフェクトはwater_hi.fxです。
ビームマンP氏が10月頃海のエフェクトとして配布してくださったもののキューブマップ未使用版のほうです。
同じ系列でしょうからやはり相性悪いのかなぁ?

271名無しさん@お腹いっぱい。:2011/03/09(水) 23:36:53 ID:WFZO.hJA0
>>266
対応ありがとうございました。
お疲れ様です。

274名無しさん@お腹いっぱい。:2011/03/30(水) 01:48:21 ID:/FTvC1WY0
test

275名無しさん@お腹いっぱい。:2011/04/21(木) 03:49:00 ID:sjQuQOrs0
ExpGetPmdBoneWorldMat を利用して AVI出力時のタイミングで行列を取得しているのですが、
これはヘッダファイルに書いてあるように、ボーンの計算すべて終わったものが出力されますか?

値は返ってくるんですが、微妙におかしい・・・と思われる

276名無しさん@お腹いっぱい。:2011/05/20(金) 01:58:23 ID:Yinec5xQ0
すみません。MMD要望版かどこの板か迷ったんですが、MMDとMMEの連携の部分なので質問させてください。
たまたま確認したのは、東方系ISAO氏の霊夢モデルと、min.氏の紫モデルが居る環境で、画面全体に光学系エフェクトをかけた時、モデルごとにエフェクトの掛かり方が違うのを、MME側で手動で微調整できないだろうか?と言う疑問が元です。

モデルの修正が面倒になりまして、データの受け渡し時に割り込んでスクリプトで補正できないかなと思ったのですが、そもそもこのエフェクトの掛かりぐあいをMMDとMME間で受け渡ししているのかなと。
その辺りをお伺いできないでしょうか?

プログラムの方はどうも素人でして、筋違いの質問していたら申し訳ありません。

277名無しさん@お腹いっぱい。:2011/05/20(金) 02:07:23 ID:Yinec5xQ0
276です。書き忘れました。
光学系エフェクトは、そぼろ氏のKeyLuminous等のObjectLuminousエフェクトの系統です。
できれば、よろしくお願い致します。

278名無しさん@お腹いっぱい。:2011/05/20(金) 09:30:38 ID:6hvgcc460
プログラミングに関して素人なのに3Dのしかもハックになる物を作れるの?

まぁ、ObjectLuminous v1.1 に関してならモデル専用のセレクターを実装すればいい。

掛かり具合がどう違うのかは自分はそのモデルを使わないから知らないけど、
ObjectLuminous はモデルごとにオフスクリーンに発光を描画するプログラムが判れているから
意図通りに発光するようにモデル専用 OL_Selector.fx を作ってしまえばいいよ。

それこそ髪は強めに光らせて、肌は弱めに光らせるとか自由自在に出来る。

279名無しさん@お腹いっぱい。:2011/05/20(金) 23:23:05 ID:CA5CV6Kk0
そもそも、その 「かかり具合の違い」 の 「原因」 は特定してるんだろうか
単純にマテリアルが理由とかだったら、それこそ PMDE + マクロ とか、
あるいはBlenderに取り込んで Pythonスクリプトちょろっと書いて終わりとか、それだけのような気がするんだが
物凄くフルスロットルで遠回りしようとしてる匂いがする

280名無しさん@お腹いっぱい。:2011/05/22(日) 02:14:07 ID:YWdtw3gA0
ご指摘ありがとうございます。
>278
あー、作れるんですかね? まぁ色々模索してみます。
複数モデルの掛かり具合を合わせたいと言うのと同時に、
同じモデルを大量に描画する時に、モデルごとにかかり
具合を変更したかったのですよね。遠近感的に。

>279
Blenderって名前は知ってるけど使った事無いですね。
ちょっと調べてみます。

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

281名無しさん@お腹いっぱい。:2011/05/22(日) 02:22:43 ID:HueiYuAI0
いやどっちかって言うと、
>「かかり具合の違い」 の 「原因」 は特定してるんだろうか
こっちが重要だと思うんだが何故スルー

282名無しさん@お腹いっぱい。:2011/05/31(火) 01:51:22 ID:Hao3m6r60
>>157
>標準シェーダーを否定するMMEのシェーダー見てニコニコしているのか?

したらばプログラミングスレでの、樋口Mと舞力介入Pのやりとりを見てないのか。
ttp://jbbs.livedoor.jp/bbs/read.cgi/music/23040/1285499541/

283名無しさん@お腹いっぱい。:2011/05/31(火) 01:52:24 ID:Hao3m6r60
うわ、誤爆。すまんす>All

284名無しさん@お腹いっぱい。:2011/06/12(日) 16:50:43 ID:YxysabUk0
勃起不全のおっさんがハメ撮り公開してるw
http://yariman.zxq.net

285名無しさん@お腹いっぱい。:2011/06/13(月) 00:09:51 ID:mNpEG2FA0
すみません,物理演算のタイプで
0はBone追従、1は物理演算ですが2は具体的にどういう事をしているのでしょうか?

286名無しさん@お腹いっぱい。:2011/06/13(月) 01:32:28 ID:YMY3fmYA0
MMD物理演算解説書.txt から
> Bone追従・物理演算 の横の『Bone位置合せ』は、本来Boneの位置から動かないはずの剛体が動いてしまった際に、無理やりBoneの位置へ剛体を戻す処理をするためのフラグです。

揺れ物の付け根に使われているね

287名無しさん@お腹いっぱい。:2011/06/13(月) 17:55:03 ID:mNpEG2FA0
>>286
なるほどありがとうございます!

288名無しさん@お腹いっぱい。:2011/08/18(木) 01:05:54 ID:cRK6cO/U0
色々な板で質問してこのスレを紹介してもらったので来ました;
ARToolKit_MMD_20100405のコンパイル方法についての質問です。
readme.txtに書いてある
visual C++ 2008
DirectX SDK (February 2010)
ARToolKit 2.72.1
Bullet Physics SDK 2.75 RC6
を用意し、cmake等を行い、パス設定も行ったのですが
'libbulletdynamics_d.lib' を開くことができません。と出てしまいます。
このlibを探してきてもエラーが出続けてしまうので根本的に設定の仕方を間違えたのではと調べているのですが、解決できず・・・
設定したことがある人がいらっしゃいましたらどのように設定したのか参考にさせていただけないでしょうか?
急ぎであちこちに同じようなことを書いてしまっているので、マルチっぽくなっていてすみません;
どうぞよろしくお願いします。

289名無しさん@お腹いっぱい。:2011/08/18(木) 02:40:23 ID:VzskRl7g0
>>288
>'libbulletdynamics_d.lib'&nbsp;を開くことができません。
_d.libはデバッグ版の印っぽいけど、Bullet2.77のmsvc\2008に置いてある
ソリューションファイルはデバッグ版でも_dは付けてないね。

デバッグとリリースでディレクトリを使い分けるのは面倒だから
ARToolKit_MMDの作者がデバッグ版のファイル名を変更しているか、
古いBulletではそういう設定だったのかのどちらかではないか。

290名無しさん@お腹いっぱい。:2011/08/19(金) 00:28:40 ID:ctoL3nGo0
>>289
古いBulletで同じ手順を踏んだら、デバッグ版で_d.libが生成され
無事にコンパイル出来ました。
ありがとうございました。

291名無しさん@お腹いっぱい。:2011/08/21(日) 00:17:29 ID:4uLWOisQ0
すみません物理演算に関して質問です
読み込んだ剛体情報のサイズがw,h,dだった時に
そのまま
btSphereShape(w);
btBoxShape(w,h,d);
btCapsuleShape(w,h);
とすると,それぞれが衝突していて動きがガチガチになってしまいます.

なのでマージンを取らないとまずいと思うのですが
本家だとどれくらいになってるのでしょうか?
それともみなさん適当な感じてやられてるのでしょうか?

292名無しさん@お腹いっぱい。:2011/08/21(日) 09:51:16 ID:4uLWOisQ0
事故解決しました
グループの設定がミスってました><

293名無しさん@お腹いっぱい。:2011/09/15(木) 20:05:28 ID:WzNL5fi.0
すみません質問です
lat式をOpenGLで描写しようとしているのですが以下のように崩れてしまいます
http://www.dotup.org/uploda/www.dotup.org2025129.png

lat式は顔の法線が裏返っているらしく
反対側の面が描写されるらしいのですが
途中に目や口の陰影が描写されてしまいます

カリングはアルファが1の時だけしています
エッジ・シャドウ・スフィア・モーフは未実装です
OpenGLで描写している他ソフトのMMDAgentを改造して
エッジ・シャドウ・スフィア・モーフを除去してもちゃんと表示されたので
これらの機能は関係がないのではと思います.

何か足りない処理がありそうでしたらご指摘ください
よろしくお願いします.

294名無しさん@お腹いっぱい。:2011/09/15(木) 20:28:04 ID:Hm9WBIQ.0
これで正常なんじゃなかったっけ
Lat式はtoonシェードでしか生きて行けないんだよ

295293:2011/09/15(木) 21:57:45 ID:WzNL5fi.0
トゥーン実装してみました
トゥーンインデックスが255の時の振る舞いが白飛びするようで
それで真っ白になるのですね

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

296名無しさん@お腹いっぱい。:2011/09/17(土) 15:09:50 ID:TXC2Wnl.0
MMEの処理について質問です

MMEの処理(hlslアノテーション部のスクリプトを解析して描画する)を
作ってみようと考えているのですが、
以下2点の不明点があります。
ご存じの方がいらっしゃいましたら教えて頂きたいです。

1点目)
MME付属のREFERENCE.txt『2.9 頂点シェーダセマンティクス』に
記述されている"_INDEX"セマンティックスについて、
hlslの資料を見る限り、"_INDEX"セマンティックスは存在しない
と思うのですが、"_INDEX"セマンティックスを追加or使用可能に
する方法はあるのでしょうか。

2点目)
MMEではfxファイルを読み込む時、D3DXCreateEffectFromFile関数を
使用していると思うのですが、引数の
D3DXSHADERコンパイル オプションにはどのフラグを
使用しているのでしょうか。


以上、よろしくお願いいたします。

297名無しさん@お腹いっぱい。:2011/09/17(土) 18:20:05 ID:HwDqxGwg0
>>296
1点目に付いてだけであれば、解析したデータですが
_INDEXは
#define _INDEX PSIZE15
と定義されているようです。

D3DVERTEXELEMENT9の
Usage = D3DDECLUSAGE_PSIZE
UsageIndex = 15
な定義を
LPDIRECT3DVERTEXDECLARATION9に追加して
上記のelementに指定したであろう適当なoffsetに
頂点インデックスを追加した頂点バッファを作りなおすなりして渡せば良いかと。

298名無しさん@お腹いっぱい。:2011/09/18(日) 02:18:52 ID:mesx8itw0
>>297
回答ありがとうございます。

なるほど!
MMEでは"_INDEX"を"PSIZE15"として扱っていたんですね。
D3DXCreateEffectFromFile関数のpDefines引数を
使用して、"_INDEX"を"PSIZE15"に置き換えることで、
解決することができました。
大変助かりました、ありがとうございます。


残りは、2点目のD3DXSHADERコンパイル オプションの
組み合わせが分かれば、fxファイルをすんなり読めそうです。

299舞力介入P:2011/10/01(土) 20:41:31 ID:2.UvRXFs0
>>296
遅レスですが…、

>1点目)
>>297 の通り、マクロを利用して、PSIZE15セマンティクスで代用してます。

>2点目)
フラグには何も指定してません。0です。

300名無しさん@お腹いっぱい。:2011/10/04(火) 23:55:07 ID:2EN8Lm3U0
>>299
舞力介入Pさん、回答ありがとうございます。
MMEの開発者さんからレスを頂けたことに感激です。

回答を頂いた通り、フラグを0にしてみましたが、
私の使用しているDirectX SDK (August 2009)では、
シェーダ内のグローバル変数を変更するエフェクトを
読み込む場合、以下のようなエラーが出てしまいます。
(MMEでは読みこむことが可能)
「error X3025: global variables are implicitly constant,
enable compatibility mode to allow modification」

おそらく、MMEで使用しているDirectX SDK シェーダコンパイラの
verが違うためだと思います。
現状、私のプログラムでは、
フラグにD3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITYを
使用することでエラーを抑制し、エフェクトをモデルに反映することが
できていますが、気になりますので、
宜しかったら、MMEで使用しているDirectX SDK のverを
教えて頂きたいです。

以上、よろしくお願い致します。

301舞力介入P:2011/10/05(水) 19:26:56 ID:tBvhKdcg0
>>300
使用しているのは、DirectX SDK February 2007 です。
MMDの処理に割り込む関係で、
MMD本体と同じ(と思われる)バージョンのSDKを使用しています。

試してないので推測ですが、August 2009では、
D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY か
D3DXSHADER_USE_LEGACY_D3DX9_31_DLL を指定すれば、
基本的にMMEと同じ挙動になると思います。

302名無しさん@お腹いっぱい。:2011/10/06(木) 23:25:52 ID:mjqHq3as0
>>301
回答ありがとうございます。
February 2007 を使っているのですね。
実験してみたいと思います。

有難う御座いました。

303名無しさん@お腹いっぱい。:2011/12/10(土) 12:59:58 ID:zJhbxzCo0
MMEの処理について、質問させてください。
質問内容は、テクニックのスクリプトコマンド
「ScriptExternal=Color」についてです。

レンダリングターゲットにレンダリングターゲットテクスチャを
設定した状態でこのスクリプトコマンドを呼び出した場合、
アンチエイリアスをかけた状態のレンダリング結果が
テクスチャに描画されているように見受けられます。
(レンダリングターゲット用のテクスチャは、
サーフェスのMultiSampleTypeがNONEになるため、
アンチエイリアスを付与して描画できないと思います。)
そこで、以下質問があります。

・内部でどのようにアンチエイリアスをかけているのでしょうか?
(アンチエイリアス可能なレンダリングターゲット、
深度バッファを作って、テクスチャに転送しているのでしょうか?)

以上、よろしくお願いいたします。

304舞力介入P:2011/12/11(日) 02:51:10 ID:Q3TUn0lw0
>>303
ご推測の通りです。
MultiSample有効なサーフェイスを用意(可能ならば既存のものを流用)した上で、
そこに描画を行った後、テクスチャのサーフェイスへStretchRectで転送しています。

305名無しさん@お腹いっぱい。:2011/12/11(日) 11:27:54 ID:GPauuFAk0
>304
舞力介入Pさん、夜分遅いにも関わらず、
回答有難うございます。

参考になりました!

306名無しさん@お腹いっぱい。:2011/12/20(火) 15:17:12 ID:0T9Zqh/.0
輪郭描画の処理に関して質問があります。

舞力介入Pさんが作成されたfull.fxの輪郭描画の頂点シェーダーを見ると

return mul( Pos, WorldViewProjMatrix );

という1行のコードで頂点の位置を求められていますが、
このWorldViewProjMatrixはどのように算出すればいいのでしょうか?
自分の場合、頂点シェーダで法線方向に頂点を伸ばす方法しか知らないので、
頂点位置とマトリックスから求まる理由がわかりません。

現行の方法で輪郭描画はできてはいるのですが
自分のツール上でもMMEのエフェクトを動かせたらと思い、質問させていただきました。
※最近MirrorやWorkingFloor(OFFSCREENRENDERTARGET)が動くようになりました。

もしご存知の方がいらっしゃっいましたら教えてください。

307名無しさん@お腹いっぱい。:2011/12/21(水) 00:52:54 ID:xmx/UbqU0
>>306
MMDはマトリクスブレンドやモーフなどの頂点計算をGPUではなくCPUでやってるようなので
MMEと互換性を持たせるなら同じようにプログラムで法線方向に押し出したのをDrawPrimitiveするのが正解だと思います

WorldViewProjMatrixはまぁ普通にWorldとViewとProjの行列かけたやつですね

308名無しさん@お腹いっぱい。:2011/12/21(水) 09:44:25 ID:rVbfGHnQ0
>>307
ありがとうございます。
頂点計算にコードを追加するのは速度的に気がひけますが、他に方法はなさそうですね。
それで試してみます。

309名無しさん@お腹いっぱい。:2011/12/21(水) 09:48:59 ID:7pXmQ5w60
速度優先と切り替えられるようにする手はよくあるな。

310名無しさん@お腹いっぱい。:2012/01/07(土) 12:25:51 ID:Ex8b4O5s0
質問です
キャラクターのモーションを作ってDxlibで動かしたいのですが
Dxlibは物理演算に対応していません。
しかし、物理演算による自然な布の動きを再現したいです。

そこで質問なのですが、MMD側で物理演算を適用し、その時々のIK(IKのみならず、物理演算によって影響が出るボーン)の情報を.PMDや.vmbに書き込めばデータ量が増える代わりにDxlibでもMMDと同一のモーションを表現できるのでは、
と考えました

これらを実際にすることは可能なのでしょうか?
また、できるとしたらどんな方法がありますか?



また、この質問は
MikuMikuDance初心者質問スレ part11
http://jbbs.livedoor.jp/bbs/read.cgi/music/23040/1322811842/
のスレから誘導されたので結果的にマルチポストになっています。

311名無しさん@お腹いっぱい。:2012/01/07(土) 14:00:36 ID:xRYd/bOA0
>>310
こっちに移動しましたって向こう締めてきたら?
マルチポストです(`・ω・´)キリッじゃなくて

312名無しさん@お腹いっぱい。:2012/01/07(土) 19:14:19 ID:f5M5KLUc0
>>310
てかBlenderでやったら?とか思ってしまったんだが…
MMDの資産を利用したいのは判るけど、結局遠回りの気がしてならない
BlenderにもvmdImporterあるし、そっちならMMDより制約無くキーフレーム扱えると思うんだけど

313名無しさん@お腹いっぱい。:2012/01/09(月) 15:37:34 ID:RjFcUVe.0
はじめまして。
少々ピンポイントな質問になってしまいますが、質問させていただきます。

PMDエディタでxファイルをpmdファイルに変換した後DXライブラリのDxLibModelViewerで表示しようと試みたのですが、
モデルが表示されない、というより「開く」を押しても無反応のままでメッシュやマテリアルなどの情報も出てきません。
試しにPMDエディタでもう一度同じpmdファイルを読み込んだところ、正常に表示されました。

もしここにDXライブラリを使っている方がいましたら、PMDエディタでどのようにpmdファイルを出力しているか教えていただきたいです。
使わせていただいているエディタは極北Pの0.1.3.6です。
どなたかご回答よろしくお願いいたします。

314名無しさん@お腹いっぱい。:2012/01/09(月) 17:00:53 ID:GLKAKP5E0
自分はさっぱりわからないが、とりあえず上げる

315名無しさん@お腹いっぱい。:2012/03/05(月) 18:54:05 ID:ULQeB1.c0
質問なんですが・・・
MMEをGUI上で適用させるとテクスチャが消えるんですが・・・
メモを読んだりしたりしても全く治りません。
ポリゴンは健在みたいです。

誰か解決方法を教えて下さい。

316名無しさん@お腹いっぱい。:2012/03/06(火) 17:46:15 ID:vXK3laPM0
>>315は別スレで結論出たみたいだね
マルチしない・あるいはしたとしても解決したら必ず閉めようね

317名無しさん@お腹いっぱい。:2012/06/10(日) 12:14:51 ID:9YDu.QkI0
ここで質問するのはちょっと違うかもしれませんが

VMDファイルのクォータニオンデータはグローバルな回転ではなく対応ボーンにおける
ローカルな回転を意味するのでしょうか?

318名無しさん@お腹いっぱい。:2012/06/10(日) 12:31:06 ID:ei6r7GR20
>>317
ボーンの初期角度に対するオフセットがグローバル系で記録されています

319名無しさん@お腹いっぱい。:2012/06/10(日) 14:57:13 ID:dbSmSBYY0
あれ?そうなんですか
もう少し自分で調べてみます

ありがとうございました

320名無しさん@お腹いっぱい。:2012/09/26(水) 21:29:21 ID:rvKxV.x60
表情に対応したオープンソースってありますか?
ARTK_MMDとARToolKit_MMDは試させてもらったのですが、表情が動かなくて・・・

321名無しさん@お腹いっぱい。:2012/09/27(木) 00:08:27 ID:CYVXSTw20
俺の持ってるARToolKit_MMDのソースはモーフィング関係処理してそうな感じだけどなぁ
実行したことないけど

322名無しさん@お腹いっぱい。:2012/09/27(木) 15:45:50 ID:lXMewFOc0
MMDXなら物理演算まで実装済みだよ

323320:2012/09/27(木) 18:33:24 ID:M/qQX7y60
>>321
あれ、ほんとですか・・・
もう1度試してみます、申し訳ないです。

>>322
ほんとですか!
XNA・・・初耳ですが、もしかしたら挑戦するかもしれません、ありがとうございます!

324名無しさん@お腹いっぱい。:2012/10/03(水) 01:44:23 ID:VQJ2r9lE0
MMDの補間パラメータってどうして64ビットも使っているのでしょうか
必要なデータは16で十分な気がするんですけど

325名無しさん@お腹いっぱい。:2012/10/03(水) 02:09:06 ID:as6UsbDU0
あれ謎だよね、俺も4x4の16しか見てない
関係ないけど127=1.0じゃなくて128=1.0だったら計算にシフト使えたんだけどなー と言いつつfloatにしちゃうんですけどね

326名無しさん@お腹いっぱい。:2012/10/03(水) 03:01:08 ID:p0CF6UDM0
あれは確かバグというかMのミスだったんじゃなかったっけ
広く流通してしまった後だったからファイルフォーマットを変えるに変えられず今に至った、はず

327名無しさん@お腹いっぱい。:2012/10/03(水) 03:50:26 ID:VQJ2r9lE0
やはり不必要な領域だったんですか
スッキリしましたありがとうございます

328名無しさん@お腹いっぱい。:2012/10/03(水) 09:58:52 ID:EkpTDVBg0
プログラムってどうやって覚えるんですか?

329名無しさん@お腹いっぱい。:2012/10/03(水) 16:19:37 ID:oy4MB9eY0
簡単なことから理解して、それの積み重ね
javaなりC#なり、1つ理解できれば他の言語の理解も比較的容易
覚えたいと思うなら、まずは簡単なプログラムを見よう見まねで作ってみると良いと思う

330名無しさん@お腹いっぱい。:2012/10/03(水) 19:34:18 ID:qDfsIgUs0
「とりあえずプログラムってどんなものかを知る」ためには
環境用意するのが一番楽なJavascriptがいいんじゃないかな
Javascript 入門 って感じでぐぐってみるといろいろ出てくる
#あ、JavaとJavascriptはまったく別物ね

そこからさらに進むならいろんな道があるだろうけど、それはまた別の話

331名無しさん@お腹いっぱい。:2012/10/03(水) 20:23:08 ID:oy4MB9eY0
javascriptはオススメできない
なぜなら型が曖昧(というか意図しない変換が多発する)で、分かってる人にとっては制約が緩くて作りやすいが最初に習得する言語としては適切ではないと思う
ただ、プログラムってどんなもの?を知りたいだけならその限りでは無いので良いかも知れない

332名無しさん@お腹いっぱい。:2012/10/03(水) 20:39:05 ID:qDfsIgUs0
>>328 みたいな疑問が出るような人なら
出力と演算と条件分岐とループができればもうそれで回答になるんじゃないかな
なので最重要なのは手軽さかなと


趣味でいいなら
「せっかくだから、俺はこの赤のRubyを選ぶぜ!」

333名無しさん@お腹いっぱい。:2012/10/05(金) 10:59:04 ID:sj0IRWc60
補間パラメータ難しいですね&hellip;
指定した時間における正しいフレーム進行度を得るには
あの気違い染みた計算をリアルタイムで行うしか無いのでしょうか
それとも近似的な計算でもあるのでしょうか?

334名無しさん@お腹いっぱい。:2012/10/05(金) 11:37:10 ID:dPsu4pRM0
>>333
3次方程式を解くより目的のuを二分探索したほうが早かったよ
u探すだけなんでいらない処理をはぶいたりがんばったけど条件によって早かったり遅かったり

127x127x4096 = 66064384回くらい計算して
二分探索 29734msec
方程式版 31797msec
ってところまで行ったけどもういいやってことで二分探索を採用した

335名無しさん@お腹いっぱい。:2012/10/05(金) 12:04:54 ID:sj0IRWc60
なるほど2分探索で近似させるんですか
繰り返し回数で計算時間の調整もできそうですね
家に帰ったら試してみます
ありがとうございました!

336名無しさん@お腹いっぱい。:2012/10/29(月) 01:50:23 ID:bOX3FxdE0
質問です。PMDエディタスレから誘導されてきました。

PMDeのCSScriptで、両目を動かすボーンモーフを作ろうとしています。
両目ボーンをオフセットに登録するところまではできたのですが

eyelower.Rotation.X = -5; (eyelowerはオフセット名)

この回転角度指定がどうもまずいようで、うまく回転してくれません。
直接手で-5を打ち込めばうまく動くのですが、どうしてこれで上手くいかないのかが分からない状態です。
分かる方いらっしゃいましたらご指導お願いいたします。

337名無しさん@お腹いっぱい。:2012/10/29(月) 04:53:52 ID:Fd/c8eNg0
PEPlugin.Pmx.IPXBoneMorphOffset.Rotation はクォータニオンです
その eyelower がボーンモーフオフセットなのであれば eyelower.Rotation = new Q(-5, 0, 0); で

338名無しさん@お腹いっぱい。:2012/10/29(月) 12:52:29 ID:bOX3FxdE0
>>337
ありがとうございます!
おかげで上手く動きました。

340名無しさん@お腹いっぱい。:2012/11/04(日) 15:06:04 ID:158VzQPY0
test

341agomeogueby:2012/11/23(金) 22:20:07 ID:Z4HMqLGE0
Finding out <a href=http://www.drawingwithconfidence.com/how-to-find-the-perfect-drawing-course/&gt;drawing course for beginners </a>

I might choose to speak extra about the way you can study to attract a rose thorough. You can wish to come across out to attract a rose step-by-step because you want a rose to the tattoo or else you can want to master on account of the specific drawing your accomplishing. Whatever the purpose you wish to discover to draw a rose little bit by bit the extremely initial you will have to complete is get an technique within your head about that which you would like to accomplish whilst inside the drawing.

I love to recommend you do an unfastened sketch first preceding to you get started. Drawing loosely does have its gains when identifying to draw a rose thorough or exploring to draw anything for that issue climate it really is regarded a rose an automobile or probably a making.

Initially off any time you discover to draw a rose complete evaluate whatsoever you happen to be drawing consider a rose in the hand and actually sense it evaluate the shape, this definitely is very seriously important simply because you ought to get it locked as section of your head.

Begin by using a simple little bit of paper and start to carry out a cost-free rough sketch. At this time your drawing won't ought to be suitable in anyhow. Consider it as if you've been a writer, all you’re undertaking is placing down your robust strategies to start with then this will likely inevitably kind the premise of one's letter, publication or tales. It is the very same in addition to your drawings.

After your unfastened rough sketch is completed therefore you've got it down on paper you could potentially then start off off to create things even further and start to put shading into your drawing. I usually draw my pics on A3 dimension paper 1st, this fashion I can do little thumbnail sketches of what I intend to attract and then rework and strengthen the very first drawing if essential.

So after you study to draw a rose in depth you begin devote in drawing a loose sketch of one's development and just like a sculptor would you want to flesh out the drawing and integrate things like the thorns and leafs and stem so you simply will get started off to find out the drawing occur to existence.

This technique shouldn't be skipped in almost any circumstance in practically any drawing you plan to undertake when you will discover it can be possible to create loads of drawings by carrying out this, drawings that you just just potentially wouldn't of get there up with from the initial spot for all those who didn't do free sketches.

342名無しさん@お腹いっぱい。:2012/12/01(土) 02:40:23 ID:ubfQ2cHA0
質問なのですがこちらのモデルのルカ
http://kotankor.blog46.fc2.com/blog-entry-63.html
のモデルを読み込み、モーション再生しようとすると
VMDが対応していないとエラーが出てきてモデルが表示されません
VMDを読み込まない状態では表示はうまくいきます。モーション再生に関してもLat式ミクではうまくいっています。
これはもうプログラム側では解決できない問題なのでしょうか?
モデルver 2.02
DXライブラリ使用
使用モーション http://bowlroll.net/up/dl7836 passはsm○○の数字部分
VisualC++2008使用

343名無しさん@お腹いっぱい。:2012/12/01(土) 18:39:32 ID:0Kmde0VA0
>>342
質問スレは
MikuMikuDance初心者質問スレ part15
http://jbbs.livedoor.jp/bbs/read.cgi/music/23040/1353706917/
なのよー。

質問スレに移動して、まずMMDのバージョンを正確に書く。
DXライブラリ使用とのことだけど、6だか7だか、小数点以下まできっちりと。
分かるなら「64bit版」か、そうでないかも。

MMDのプログラムん中には「対応していない」みたいな感じのメッセージは無いみたいだけど
エラーメッセージは、正確には何と書いてあったか?
エラーが出た際のスクリーンショットを撮れれば吉。

モデルは、おれver2.02を落としてないからちょっと分かんないけど
2.08にはモデルが複数あるのね。どのモデルを使ったのか?

モーションは、ミク用とリン用があるけど、どっちを読み込んだのか?
「Latミクではうまくいっています」との事だから、ミク用のを試してるんだろうと推測できるけど、念のため。

最初の500フレームくらいは、ルカさんは画面外の右の方でマッタリしてるけど
カメラを右に向けてもやっぱり表示されていないのか?

質問スレでね。

344名無しさん@お腹いっぱい。:2012/12/01(土) 20:55:23 ID:ubfQ2cHA0
>>343
ありがとうございます。そこで聞いています。

345名無しさん@お腹いっぱい。:2012/12/02(日) 13:07:37 ID:wtvywIK.0
IKボーンの計算の話なのですが
IKボーンの計算をする際、膝のボーンはX軸だけにしか可動せず
計算結果に他の軸成分が含まれていた場合はその成分を0として
0にしたぶんの成分をX軸の回転に加えるそうですが

具体的にどういう事なのでしょうか
クォータニオンの回転量をそのまま使うのかとも思ったいましたが
クォータニオンの回転は飽くまで軸の回転なので違うようなので
それらしい答えが分かりません

346名無しさん@お腹いっぱい。:2012/12/02(日) 14:17:22 ID:Kz4toYqM0
IKするときにはボーンの方向をターゲットの方向に向ける処理をするんだけど
その時の回転は
回転軸  = cross( ボーン方向, ターゲット方向 );
回転角度 = acos( dot( ボーン方向, ターゲット方向 ) );
(ボーン方向とターゲット方向はnormalize済みとする)
で出すんだけど
膝の場合は親のMatrixのx軸成分を回転軸として使う感じ

ここで出してる回転角度はIK情報の回転角度制限とnループ目のnの値によって制限される
あと膝が前に曲がらないような処理も入ってる

347名無しさん@お腹いっぱい。:2012/12/02(日) 14:39:50 ID:wtvywIK.0
うーん
つまりIKの計算後に膝の処理に手を加えるのではなく
IKループ中に膝の例外処理として7行目のような方法で計算すればいいのでしょうか・・・?

アドバイスありがとうございました。ひとまずもう一度試してみます

348名無しさん@お腹いっぱい。:2012/12/02(日) 15:11:41 ID:Kz4toYqM0
樋口さんのソースでそうなってる
PMXの場合の各ボーン軸制限もループの中

で、ちょっと間違ったこと書いたんだけど
>>回転角度制限とnループ目のnの値によって制限される
nループ目じゃなくてIKの先に行くほど制限が緩くなる感じでした

回転角度 = clamp( acos( dot( ボーン方向, ターゲット方向 ) ), 0, 単位制限角 * (k+1)*4 );
kはIKのボーンインデックスのループ変数

349名無しさん@お腹いっぱい。:2012/12/12(水) 12:46:45 ID:nwsdGzSk0
すいません、クオータニオンに関して少し伺いたいのですが

現在PMDEのC#スクリプトで、ボーンモーフの回転量を調整する(今回は0.1倍)スクリプトを組もうとしています。

IPXBoneMorphOffset test = (IPXBoneMorphOffset)morph[43].Offsets[0] ; //ボーンモーフのオフセットを定義
test.Rotation = 0.1f * test.Rotation; //Rotationがボーンの回転量を表すクオータニオン

このようにしたら回転量を0.1倍にできるかと思ったのですが、なぜか0.009倍くらいになってしまいます。
さらに、挙動も少しおかしくなってしまいます。

よろしければ
クオータニオンを上手く定数倍にする方法を教えて下さい。

350名無しさん@お腹いっぱい。:2012/12/12(水) 13:00:07 ID:FPC1CiIE0
quaternion qIdent( 0, 0, 0, 1 );
qResult = slerp( qIdent, qRotation, 倍率 );

351名無しさん@お腹いっぱい。:2012/12/12(水) 14:24:18 ID:nwsdGzSk0
>>350
ありがとうございます!できました。
最終的に以下のスクリプトになりました。

IPXBoneMorphOffset test = (IPXBoneMorphOffset)morph[43].Offsets[0] ;

Quaternion zero = new Q(0,0,0,1);

test.Rotation = Quaternion.Slerp(zero , test.Rotation , 0.1f);

356名無しさん@ダヨー:2012/12/17(月) 17:44:43 ID:0uprkOQ60
書き込みが連続して削除?

357名無しさん@ダヨー:2012/12/17(月) 21:46:01 ID:2zykkC8M0
スパムがたくさん来てたからね

358名無しさん@ダヨー:2012/12/26(水) 04:38:27 ID:LLTqLjvY0
ここに書いていいのか迷いましたが、おそらくここが一番近いと思ったので質問させて下さい。

MMMを使って補完曲線をつけた表情をMMDでも読めるように細かくキーを打つC#スクリプトを作ろうとしてます。
今回は試しにまばたきで挑戦しています。

while (current < end)//currentは対象となるフレーム数。endまで処理する。
{
//まばたき登録

//対象位置のモーフフレーム情報を得る
MorphFrameData recording = Scene.ActiveModel.Morphs["まばたき"].Frames.GetFrame(current);

//対象フレーム位置をすすめる
current += 3;


//作成したモーフフレームデータを登録する(同じフレームに既存キーフレームがあったら上書きされる)
Scene.ActiveModel.Morphs["まばたき"].Frames.AddKeyFrame(recording);
}

これを実行すると、補完曲線が無視されて直線状にキーが打たれてしまいます。
また、途中のキーフレームで増加傾向が変わっても、ついて行けてません。

補完曲線を生かしたままキーをたくさん打てるような、良い方法があったら教えていただきたく思います。

359名無しさん@ダヨー:2012/12/26(水) 06:55:34 ID:eUVxwAv60
>>358
検証してみたけどそれはMMMのバグかな?
補完曲線がどんな値だろうがWeightには直線的に補完された値しか入ってないっぽい

360名無しさん@ダヨー:2012/12/26(水) 11:34:54 ID:LLTqLjvY0
>>359
バグですか。残念・・・
フィックスされるのを気長に待つとします。
359さんありがとうございました!

361名無しさん@ダヨー:2012/12/27(木) 01:16:45 ID:A8tBw4cE0
>>360
直ぐには直らないかもしれないけど、必要ならばメールで報告しといた方が良いよ

362名無しさん@ダヨー:2013/01/27(日) 13:42:14 ID:Dg/gVmWA0
てs

363名無しさん@ダヨー:2013/01/27(日) 17:21:17 ID:TTSUq64s0
書けるかな

364名無しさん@ダヨー:2013/01/27(日) 17:32:20 ID:TTSUq64s0
すいません、2ch規制されていのでテストさせていただきました。

自作mmdもどきにmmeを組み込もうとしたのですが
hlslのでfloat3でcolorを定義したときc++側から4要素送った場合、hlslのレジスタを汚すこ
とはないのでしょうか?


//hlsl側
//float3 TestColor0;

//cpu側
float c1[3]={1};
hr=mEffect->SetFloatArray("TestColor0", c1, 4 );//hlslのどこか上書きしたりしない?

float c1[1]={1};
float* p=c1;
TRACE2( "%f, %f\n", *(p+1), *(p+2) );
hr=mEffect->SetFloatArray("TestColor0", c1, 3 );//NG 変なデータがhlsl側に送られる

365名無しさん@ダヨー:2013/01/29(火) 00:23:00 ID:G/kleOs60
>>364
float 〜 float4までは一律で1つのconstレジスタ(float4つ)を使うみたいだけど
上限超えそうになったりした時にTestColor0.wを他のfloatで使用するかもしれないから
気になるならfloatの3だとかそういうの調べてそれセットした方が。Elementsだっけ?

下は普通に未初期化アドレスを参照させてるのでNG

366名無しさん@ダヨー:2013/01/29(火) 15:35:58 ID:1n7DD16.0
>>365
ありがとうございます
上限付近でバグが出たとき考えることにしますww

しかし、mmeはホックだけでよくこんな拡張できるな

367名無しさん@ダヨー:2013/02/14(木) 02:03:46 ID:HeW/92ig0
樋口さんは3度の飯より開発が好きなのではなかったの?

368名無しさん@ダヨー:2013/02/14(木) 07:40:03 ID:T0bUK//g0
何か別のもの開発してるんじゃね?

369名無しさん@ダヨー:2013/02/15(金) 22:57:45 ID:Tqc76.qY0
>>367
それかMが開発されてるんじゃね?
動きが無かったらそういうことにしておきましょうそうしましょう

370名無しさん@ダヨー:2013/02/16(土) 15:02:11 ID:SwAQ6EfA0
すいません、MMMのスクリプトの質問ですがよろしいでしょうか?

Scene.ActiveModel.Morphs["まばたき"].Selected = true;

こんな感じでモーフの選択フラグをtrueにしようとしてるんですが、実行してもまばたきが選択状態(色が赤く変わる)にならないんです。
スクリプト側で選択状態を操作する方法って無いんでしょうか?

371名無しさん@ダヨー:2013/02/16(土) 15:17:31 ID:LioGzJMo0
その操作のコンテキストだとタイムライン上の選択状態を操作出来るはずだけど、出来ないのならばバグか仕様かだろう
moggさんに聞くしか無いんじゃないかな

372名無しさん@ダヨー:2013/02/16(土) 15:26:48 ID:SwAQ6EfA0
>371

では、moggさんにメールしときます。
ありがとうございます!

373名無しさん@ダヨー:2013/02/17(日) 08:04:36 ID:0B8tEXCg0
そういえばCurrentWeightに他の数値を突っ込んでも変化しないとかたまにあったな

374名無しさん@ダヨー:2013/05/02(木) 23:40:18 ID:zjbkwwTY0
お聞きしたいことがあります!
pmxファイルを表示、アニメーションしようとC#でSlimDXを用いてプログラミングしていますが、壁に突っかかったのでお知恵をお借りしたく書き込みしました。
モーションなどの再生などはいいところまで行っても、IKの角度制限がうまくいかないのです。
ローカル軸が指定されているIKでは、そのローカル軸に対しての角度の回転量制限がかかるものだと認識しています。
しかし、CCDIKで回転させるところでは、回転軸、回転角度、グローバル座標の変位などから、ローカル軸からの回転量にどうやって変換したらいいか頭を悩ませています。
どなたか、参考になるサイト(英語でも大丈夫です)か、解決法など、何かご教授いただけませんでしょうか。

375名無しさん@ダヨー:2013/05/03(金) 23:25:01 ID:W3PIMMhc0
樋口さんが公開してたIKのソースのリンク切れちゃってるしなぁ…。

376名無しさん@ダヨー:2013/05/04(土) 00:28:30 ID:.LWt6mKc0
親ボーンのグローバル回転の逆行列を掛けて
ローカル回転を出して
そこからaxis-angleに変換して角度を取得
その角度に制限処理して
指定されたローカル軸に適用してみるのはどう?

377名無しさん@ダヨー:2013/05/06(月) 13:28:04 ID:7JzZCbnM0
>>374 ttp://www.nicovideo.jp/watch/sm15701266 とか どうかしら

378374:2013/05/07(火) 11:35:57 ID:ex6sqoeE0
377,376の情報を基にもう一回考えてきます。

379名無しさん@ダヨー:2013/05/08(水) 19:14:13 ID:bBIAm9Cs0
ワールド座標系での回転軸は
ボーンのワールド行列の逆行列かければローカルになるよ

そこで両ひざは正し方向にしか曲がらないように軸か角度を逆にすればオッケ

380名無しさん@ダヨー:2013/06/10(月) 08:35:55 ID:uS.zomSU0
PMXの仕様にある、SDEF変形で詰まっています。
計算式などが乗っているサイトなどを探しましたが見つかりません。
SDEFって、正式名称なのでしょうか?SDEFは省略形で、本当の名前などありましたら教えてください。

381名無しさん@ダヨー:2013/06/10(月) 09:20:38 ID:NDKKHZR60
>>380
mikotoでググってみればいいんじゃない?

382名無しさん@ダヨー:2013/06/10(月) 11:41:37 ID:iyMgM6vM0
BDEFぼーんでふぉーむ
SDEFすふぇりかるでふぉーむ

383名無しさん@ダヨー:2013/06/11(火) 04:19:54 ID:mBoVLPqs0
>>380
資料としてはこの辺しか無いんじゃないかな
http://d.hatena.ne.jp/mqdl/20080525/1211706244
あと、こんなページ見つけた
http://mikumikuonline.blogspot.jp/2012/05/sdefhlsl.html

384名無しさん@ダヨー:2013/06/14(金) 22:42:16 ID:0Y1k.0C.0
すみませんIKの計算時って
ユーザ回転量・モーフ回転量って無視していいんですよね?
考慮しても結局そこからのオフセット回転量になるわけですし

385名無しさん@ダヨー:2013/06/15(土) 14:28:57 ID:tDImxqdo0
>>384
順番にターゲット方向に向けるって処理なんで回転初期値はそこそこ大事

386名無しさん@ダヨー:2013/06/16(日) 22:31:08 ID:OIp3PSog0
>>385
そうか微妙に結果が違ってしまう可能性があるのか...
ありがとです

387名無しさん@ダヨー:2013/07/05(金) 07:26:33 ID:/xg/GZk60
IKリンクの場合の付与計算のタイミングがよくわからないのですが、ユーザー変形量に付与回転量を掛けてから、その回転量から一度ボーンの位置を決めてそこからIKリンク計算をすればいいということでしょうか?
あとvmdファイルのモーションというのはユーザー変形量として扱えばよいのでしょうか?

388名無しさん@ダヨー:2013/07/05(金) 12:55:19 ID:1HXOJQQQ0
IK処理で発生した回転を他のボーンに付与
ってやってるモデルなかったっけ?

389名無しさん@ダヨー:2013/07/08(月) 21:37:33 ID:AlXnGTn60
モデルとかいちいちDLして解凍したり管理するのだるいから
クラウド化できるツールをせこせこ開発中
もとはiPhoneでMMD動かすときににインポートするのがだるかったからだけど..w
デザインセンスがないので公開したらそのうちデザイナーさん募集します

390名無しさん@ダヨー:2013/07/08(月) 22:55:51 ID:2ESCCOKs0
>>389
すまん、詳しく教えてくれ。
場合によっては俺の今作っているものと被りそう。。。

391名無しさん@ダヨー:2013/07/09(火) 02:07:39 ID:dph59XPU0
>>390
基本的には http://bowlroll.net/ さんと同じ思想なんだけれども、
検索性の弱さとかとかをもうすこし補いつつ、
zipをDLして解答してコピーする手間もクライアントサイド連携しつつ解決したいなーと。

MMDの最終形態+αとしては
iPhoneでタッチ操作で簡単にモーションを作成できることとか、
WebGLベースでどんな環境からでもモーションや動画を作成できることなのですが、
現状だとそのような環境に簡単にリソースを転送したりできないので、
これらのクラウド化は必須と思っています。

OAuth頑張って実装して、他の人がつくったアプリやツールにも供給できるのが理想です。
被ってもいいさーwそれぞれの良い所がきっと出るはず!!

392391:2013/07/09(火) 02:11:04 ID:dph59XPU0
追記
ただクラウド化するだけだと
デファクトスタンダードの bowlroll.net さんには追いつけないので
Windows版のデータ管理ツールも結構気合い入れて作らなきゃならないかも?
まあクライアントはViewなのでなんとでもなる..たぶん..

393390:2013/07/10(水) 23:48:56 ID:v33EFGuI0
>>392
なるほど。僕の場合クラウド関連は将来的で、それよりもクライアント側のソフトウェアで、
より楽に、画期的な方法で素材の共有化を目指すことができるアイデアがあったのでそれを実現しようとしていた。
僕のほうのアイデアは、コンテスト的なものに出すのでしばらく公開できないんだけど、公開できるようになったら情報交換をしないか?
むしろ被らないようにお互いのアプリケーションを最大限利用したいと思うんだ。

394名無しさん@ダヨー:2013/07/11(木) 21:51:12 ID:d2VrfaCY0
途方もなく馬鹿げたアイデアにしか思えんがな
zipをDLして解凍するのが面倒臭い?
そんな奴にモデル使って欲しいと思ってるモデラーなんかいねぇよ

395名無しさん@ダヨー:2013/07/11(木) 22:20:19 ID:AblMPHDY0
再配布禁止の限定モデルや商用モデルを共有するのが目的としか思えない
おまけにzip解凍が面倒くさいと言ってる時点で、readmeに目を通す気が無いと宣言しているようなもの

悪いけど、そういうものが世に出たら関係者をブラックリストに入れるよ
facebookでモデルのパスワードを無断公開している外人のグループより性質が悪い

396名無しさん@ダヨー:2013/07/11(木) 22:51:57 ID:qOHfMUQ20
アップローダーとユーザーの間に入るソフトなのかな、>>389,390は。
それとも数多のデータそのものをどこぞに集約する構想があるのかな。

後者は配布条件の確認(継続的な確認含)が大変そうだし、データ作者の
協力がないとまとめきれない気もする。
前者で、さまざまな条件(データ作者・権利者・元ネタ・公開日・関連動画
・使用条件・類似データ・派生データ・バージョン履歴などなど)での検索や
照会がしやすい、てな方向なら期待。

クラウド、よくわからんので頓珍漢なこと言ってたらすまない。

397名無しさん@ダヨー:2013/07/11(木) 22:52:42 ID:KqVWXTuk0
>>395,394
392が何をしようとするか正確なことはわからないけど、ダウンロードしたモデルをクラウドで管理するってことじゃないの?
ダウンロードしたモデルをアップロードして同じアカウントでサインインすれば共有できる的な?

そういうような手段であれば俺は否定はしないけど、批判派は多いかもね。配布の形については手を出さないほうが得策なんじゃないかな。

398名無しさん@ダヨー:2013/07/11(木) 23:59:36 ID:rHNKddyA0
クラウド化と言っているだけで、複数ユーザで共有するとは言っていないが
そういう使い方されそうという懸念ももっともか

399名無しさん@ダヨー:2013/07/12(金) 01:47:02 ID:rLX.boTA0
>>394-398
みなさん意見ありがとうございます。
zip解凍は極端な話で申し訳なかったです。
みんながもっと時間を有意義に使えるように、損をしてしまう人が居ないように気をつけて少しずつ進めます。

商用品の共有についてはMMDに限らず、PCというツールの根本的な問題ですね。
これもうまく解決できるようになるまでは公開しないと約束します。

401名無しさん@ダヨー:2013/07/12(金) 14:24:25 ID:IJZtFXto0
ファイルそのものじゃなくてハッシュを共有すればいいじゃん
んで同じファイルを入れたらハッシュをもとに上がってるタグとかのメタデータとってきたりするようにして
情報検索できるようにするなら配布URLへ飛ばすようにすればいい

402名無しさん@ダヨー:2013/07/15(月) 14:46:16 ID:hzsrtW2w0
>>395
>おまけにzip解凍が面倒くさいと言ってる時点で、readmeに目を通す気が無いと宣言しているようなもの

80年代末のDOS時代にはアーカイブ解凍せずに中身見るページャーが出て普及してるし、
winのzip直視が標準機能になって10年以上経ってるのに
何で未だに「アーカイブ解凍してから読むのだけが唯一絶対の読む方法であり
それ以外は絶対あり得ない」と信じて疑わない狂人がぞろぞろ居るのかいい加減理解に苦しむんだが。

何でそんな出鱈目な現状認識をもとにして威張り散らせるわけ?
それともわざわざ普通の何倍も面倒なことさせて
「奴隷って哀れだね〜プギャーハッハッハ」と嘲笑するのが目的か?
どっちにしてもいい加減にしろよ。
お前にPCを使う資格はない。

403名無しさん@ダヨー:2013/07/15(月) 16:21:53 ID:FEbw18W20
今は素のWindowsでzip展開せずとも中身見れるもんな もちろんテキストファイルも読めるし
そういったことが普通に可能であるという認識がないと解凍前提の思考になってしまい
「解凍を回避する手段なんて言語道断!」みたいなこと言ってソフトウェア作者を攻撃したりする

404名無しさん@ダヨー:2013/07/15(月) 20:36:31 ID:VQISub1o0
>>402
>>403
俺もその辺問題だと思うが、もうzip解凍→readome読むが儀式的行為にまで浸透してるから
解凍前提に疑問持つ有名MMDerでも口に出しにくいだろうな
現状打開は個人的に海外組がしてくれないかと期待してる

405名無しさん@ダヨー:2013/07/16(火) 22:18:17 ID:zkoxTAzM0
>信じて疑わない狂人がぞろぞろ居るのかいい加減理解に苦しむんだが。

人間なんて普通そんなもん
競馬ファンの大半だって、統一グレードも日本のパート1昇格もなかったと信じてるキチガイよ
あるいは歴史上そんなものが存在しなかった異世界の住人か

406名無しさん@ダヨー:2013/07/17(水) 00:19:53 ID:2olDDIl60
結構閉鎖的なんだなーと驚いている部分があったり、気になる部分はあるにせよ、
少なくとも本人がそう思っているなら、本人の中ではそれが真実。

完全に不満のないものを作るのは難しいとは思うけれど、
最大限みたすようなものに挑戦することはできると思うんだよね

一言でいうと、プログラマーならなんとかできるっしょ

407名無しさん@ダヨー:2013/07/18(木) 11:25:58 ID:Tv065mjI0
MMDってもっと自由に開発されてると思うの、プログラマーがやろうと思えば新しいツールは生まれてくる。
自由にツールを作っていいはず。自分が使いたくないなら使わなければいい。
だけど、気に入らないソフトだからって真っ向から否定するのはどうなのか、そのプログラマーだってMMDの世界を盛り上げようとしているうちの一人なんだぜ。

408名無しさん@ダヨー:2013/07/21(日) 01:20:51 ID:PQ4blVCI0
そもそもそれなりの動画作ろうと思ったら
何らかの形でモデルやテクスチャに手を入れるのが当たり前
「解凍は手間」などというのは低レベルなMMDer特有の発想で
恥を晒してるということをさっさと理解しろ

409名無しさん@ダヨー:2013/07/21(日) 11:26:28 ID:wVp.phK20
偏見が激しくて話が通じていませんね

410名無しさん@ダヨー:2013/07/21(日) 12:39:53 ID:WSzQP1Gg0
MMMの時に暴れた人がいるのかね

411名無しさん@ダヨー:2013/07/21(日) 20:49:17 ID:8BrCPjgA0
そりゃあ限定モデルや、配布終了したモデルを共有できる千載一遇のチャンスだからな

自分の配布物が共有されているのを確認したら、使用禁止令を出すしかないか・・・

412名無しさん@ダヨー:2013/07/21(日) 22:18:07 ID:wVp.phK20
今圧縮展開の話をしていると思いましたが
その件に関しては>>401のハッシュの共有で済ますアイディアはどうなんですかね

413名無しさん@ダヨー:2013/07/21(日) 22:21:42 ID:wVp.phK20
それとアカウントのIDやパスが複数人間で共有されるという心配なら現行の山ほどあるクラウドストレージでもすでに同じなような気がしますね

414名無しさん@ダヨー:2013/07/22(月) 00:25:21 ID:HZiBpQa60
いずれにしても、作ってみたらいいと思う。
俺は使うし、大事なのは配布物の作成者の意見。ここにいる玄人MMDer( )には関係ない話。

415名無しさん@ダヨー:2013/07/25(木) 07:53:07 ID:valQLceg0
>>408
readmeも読んでなくて「使うかどうかも決まってない」状態で
わざわざHDDスペース提供して手間掛けて解凍しろってのが問題なんだよ。

解凍前にreadme読んで下らないこと偉そうに書いてたら
そのまま]解凍せずに消すし。

416名無しさん@ダヨー:2013/07/25(木) 09:27:40 ID:2SRanvjI0
>>415
釣り針がデカすぎる

417名無しさん@ダヨー:2013/07/26(金) 13:41:53 ID:ExBmbYL60
>>416
はあ? 何がだよ?

標準のエクスプローラーでさえダブルクリックして、
その中のreadmeをダブルクリックでメモ帳で読めるようになってるのに、
(俺はファイラー使ってるからもっと楽)
「解凍する」必要なんか全然ないだろよ。

何無知を鼻に掛けて威張り散らしてるんだ?

418名無しさん@ダヨー:2013/07/28(日) 17:32:39 ID:lEdhmv/60
釣り針でかいなw

419名無しさん@ダヨー:2013/07/28(日) 21:56:19 ID:4wHHFh7c0
解凍しなくてもreadme読めるのは確かだな
解凍するのは改造が必要になってからでも遅くはない

420名無しさん@ダヨー:2013/07/29(月) 00:34:06 ID:N3jS7BaU0
>>417
>>419

仮にzip解凍無しにzip展開せずとも中身が読めた、そして全MMDユーザーがその機能を知ってたとしても
それでも>>395見たいな人が居るって事が問題、これは知性とか技術理解力の問題じゃなく
やはり信仰的問題なんだよ、だからプログラマーがいくら説得してもそのユーザーが「認めなきゃ」zip読み込みなんて邪道と思ってしまい拒否する動きになる。

ホント結局どんなにテクノロジー進んだ世界でも古臭い争いは付き物なんだなって思うわ

421sn0w75:2013/07/31(水) 17:18:47 ID:mguB211o0
どうも皆さんこんにちはです。FOSSな、OpenGL/C++によるモデル・モーションビューアを開発しています。(上手く行けばビューア以上の機能を追加したいんですがとりあえずビューアということで…)

ここまでは出来ました。一つだけのボーンなら、そのボーンと子ボーンを的確に動かせます:http://t.co/wf38ibGoyc

ですが、複数のボーンを同時に変形しようとするとこうなっちゃいます:http://t.co/a7OxhzFpcf

ここは質問の為ではないのは承知していますが、二週間毎日この問題に挑戦していて、上手く行かなくてもう必死です。手伝えるかもしれないと思った方はどうかご連絡ください。
それでは、大変失礼しました >.<"

423名無しさん@ダヨー:2013/08/01(木) 01:00:31 ID:pJNaurXU0
>>421
ボーンの位置で回転させてるのはいいけどこれって親からの相対位置じゃなくてボーンの絶対位置で回転させてるっしょ

424sn0w75:2013/08/01(木) 02:26:05 ID:uJwqTrQs0
>>423

はい、まったくその通りです。現在数式はこんな感じになってます:
b->absoluteForm = b->relativeForm * glm::toMat4(bf->quaternion) * parent->absoluteForm;

ちなみにソースはこんな感じです: http://pastebin.com/zx62mnRZ

…ですが、相対位置で回転しようとするともっとめちゃくちゃになっちゃいます。

たとえば、以上のglm::toMat4(bf->quaternion)を数式から削除して、親ボーンの回転後:
glm::vec4 localPosition=glm::rotate(parent->finalRotation,homoPosition);
つまりこの列の下に、bf->quaternionで回転してみましょう:
localPosition=glm::rotate(bf->quaternion,localPosition);

そうするとこうなります: http://imgur.com/wJtvAmw

…それなら、bf->quaternionを最初に回転してみたら?と思うかもしれませんが、そうすると:
glm::vec4 localPosition=localPosition=glm::rotate(bf->quaternion,homoPosition);
localPosition=glm::rotate(parent->finalRotation,localPosition);

こうなります: http://imgur.com/zZqOILZ

二週間以上この問題の解決に挑戦してますから、これぐらいやってみましたとも orz

425名無しさん@ダヨー:2013/08/01(木) 02:44:57 ID:pJNaurXU0
>>424
ソース見れない
ウィルス認定されて消された?


b->finalRotation = boneQuat * parent->finalRotation;

glm::vec4 relativePosition=boneTrans+(b->position-parent->position);

b->relativeFrom = glm::toMat4(boneQuat);
b->relativeFrom[3][0]=localPosition[0];
b->relativeFrom[3][1]=localPosition[1];
b->relativeFrom[3][2]=localPosition[2];
b->relativeFrom[3][3]=localPosition[3];

b->absoluteForm = parent->absoluteForm * b->relativeForm;

Bone[i] = b->absoluteForm * invBindPose[i];
// invBindPose[i] = translate( -b->position );

あと桜花アリスのボーンの数は2バイト

426sn0w75:2013/08/01(木) 02:46:22 ID:uJwqTrQs0
連続投稿失礼します。ミスでpastebinのリンクがダメになっちゃったので新しいリンクをどうぞ: http://pastebin.com/FGFZDEzB

427sn0w75:2013/08/01(木) 03:06:05 ID:uJwqTrQs0
>>425

指示通りプログラムを変えてみました: http://pastebin.com/X7tBWC8P

結果はこんな感じです: http://imgur.com/oZ7jWSz

桜花の場合、ちゃんと頂点、ボーンindex等のサイズがPMXファイルに書いてありますし、そもそも読み込みの量が間違ってたら、テキストを読み込もうとする時は間違ったテキストサイズを読み込んでプログラムがほぼ確実にクラッシュします。

428名無しさん@ダヨー:2013/08/01(木) 03:40:11 ID:pJNaurXU0
>>427
掛ける順番か。
b->absoluteForm = b->relativeForm * parent->absoluteForm;
Bone[i] = invBindPose[i] * b->absoluteForm;

invBindPose[i]の中身って -b->position ?

あと
b->parentBoneIndex ← これ char?

429sn0w75:2013/08/01(木) 04:09:48 ID:uJwqTrQs0
invBindPose[]はこうやって計算されています: http://pastebin.com/5X8URsuR

このコードはsetModelToKeyFrame()の前に実行されています。relativeFormはこの時点、b->positionを行列に変えただけなので、結果的にbindPose[]がモデルがBind Pose(T/Aポーズと言ったら分かるかな?こちらはアメリカ人ですので。。。)になってる時のボーンのグローバル位置になっています。そして、invBindPoseはその逆です。
もっと簡単にいうと、invBindPose[i]は -b->position ではなく、-b->globalPositionみたいな感じです(b->globalPositionという変数はコードで存在しませんが)

b->parentBoneIndexはintになってます。ボーンindexのサイズは1、2、4バイトになることが可能なので、4バイトの器を使う必要があります。

invBindPoseはちゃんと把握していなかったみたいなんですけど、念のために掛ける順番のコード変化はとりえあえずしました。結果はこんな感じです: http://imgur.com/WMabZU9

ここまで手伝っていただいて誠にありがとうございます。返事をお待ちしております。

430sn0w75:2013/08/01(木) 04:15:04 ID:uJwqTrQs0
桜花ちゃんのボーンindexが負になる理由がわかりました。parentBoneIndexはこうやってセットしてました:

char *tmpBoneIndex=(char*) malloc(pmxInfo.boneIndexSize);
miku.read(tmpBoneIndex,(int)pmxInfo.boneIndexSize);

bone->parentBoneIndex=(int)*tmpBoneIndex;
delete tmpBoneIndex;

きっとこれですね。直してきます。

431sn0w75:2013/08/01(木) 04:33:23 ID:uJwqTrQs0
invBindPose[i]を変えてみました:

invBindPose[i] = glm::translate( -b->position );

結果は不思議なことに、さっき提供したこの画像と変わっていません…うーむ。

432sn0w75:2013/08/01(木) 04:35:20 ID:uJwqTrQs0
もう連続投稿四つになっちゃってもしわけないんですが、急いだせいでミスしました。「この画像」とはこれのことです: http://imgur.com/WMabZU9

433名無しさん@ダヨー:2013/08/01(木) 04:57:18 ID:pJNaurXU0
>>429
b->relativeFrom = glm::translate( bf->translation + b->position - parent->position ) * glm::toMat4(boneQuat);
b->absoluteForm = parent->absoluteForm * glm::translate( bf->translation + b->position - parent->position ) * glm::toMat4(boneQuat);
Bone[i] = parent->absoluteForm * glm::translate( bf->translation + b->position - parent->position ) * glm::toMat4(boneQuat) * glm::translate( -b->position );



b->relativeFrom = glm::toMat4(boneQuat) * glm::translate( bf->translation + b->position - parent->position );
b->absoluteForm = glm::toMat4(boneQuat) * glm::translate( bf->translation + b->position - parent->position ) * parent->absoluteForm;
Bone[i] = glm::translate( -b->position ) * glm::toMat4(boneQuat) * glm::translate( bf->translation + b->position - parent->position ) * parent->absoluteForm;

434名無しさん@ダヨー:2013/08/01(木) 05:20:13 ID:pJNaurXU0
>>430
符号拡張を忘れるなよー


bone->parentBoneIndex = 0x00000000;
miku.read( (char*)&bone->parentBoneIndex,(int)pmxInfo.boneIndexSize);

// sign extension
if( bone->parentBoneIndex & 0x80 << (pmxInfo.boneIndexSize-1) ) {
bone->parentBoneIndex |= 0xFFFFFF80 << (pmxInfo.boneIndexSize-1);
}

435sn0w75:2013/08/01(木) 05:22:14 ID:uJwqTrQs0
今、ちょっとだけ泣きました。二週間やってましたからね…こんな光景見せられたら、そりゃちょっと感動しますよ。 http://imgur.com/1T6zDg1

第一の方法は正解でした。この感謝の気持ち、言葉に出来ません。本当、ほんっっとにありがとうございました。

何かお礼をしたいんですけど、ネット上で出来ることはあまりないので本当にもうしわけない。でも僕に出来ることがありましたら、どうかお知らせください。

最後に、ソースコードのリンクを残しておきます。(今の変化はまだpush(更新)してませんが): https://github.com/sn0w75/PMXViewer

頑張って素晴らしいプログラムを書いてきます。本当にありがとうございました! m(_ _)m

436sn0w75:2013/08/01(木) 05:35:14 ID:uJwqTrQs0
>>434

符号拡張をちゃんとするように書き直します。ありがとうございます〜(^-^)

437名無しさん@ダヨー:2013/08/01(木) 05:57:50 ID:pJNaurXU0
あ、符号拡張間違えた。
0x80 << (8*(size-1)) とかだった。

>>435
おめでとう、凄い喜んでてちょっとうれしかったね

438名無しさん@ダヨー:2013/08/01(木) 06:10:20 ID:x.15WUpQ0
久しぶりにスレが真っ当に機能した流れが見れて外野の俺も嬉しい

439sn0w75:2013/08/01(木) 06:13:43 ID:uJwqTrQs0
>>437

わかりました、符号拡張を直す時は気をつけます。

プログラミングは何年もやってますが、3Dが初めてで…OpenGLの教科書読んでたら急に、「MMDのモデル/モーションビューア作ろう!」と思って、二日でモデルロード出来ててソースが千列越えてて…w
でもその後、ボーンをVMDファイルのポーズにセットしようとしたら、何をやっても成功させなくて。数学を徹底的に調べてもそれでも出来なくて。いつの間にか二週間以上が経ってしまってて、もうダメかと思いました。
だから本当に助かりました。このコードはいい勉強になります。本当にありがとうございます。

440sn0w75:2013/08/03(土) 09:23:10 ID:B6NjlIzc0
帰ってきました〜
まず、お陰様でモーションが出来ました: http://www.youtube.com/watch?v=thu_Wja4KgQ
今はまだSlerp補間ですし、たまにもっと長い方向に回転してしまうバグがあるんですが、とりあえず出来たということで、IKボーン変形に挑戦してみました。

それなりに時間掛けて頑張ったつもりですが、今の所は、上手くいきません。なので今回は、また二週間の地獄を経験する前に素直に助けを求めようと思います。

まずソースです。FK変形の部分は前回と変わってる所がありますし、IKと無関係というわけでもないので含めています: http://pastebin.com/VVA466Su
結果:足がゲッダンって感じwww http://imgur.com/Z0dWPpp

targetVectorとIKVectorの作り方が間違っていると僕は疑ってます(また掛け順番だったら冗談にはならないけど今回はちゃんとやったと思う…多分)

一々助けを求めるのは迷惑ですし好きじゃないです。日本語もプログラミングも、授業受けずに独学で習いました。でも、3Dはどうやら今の僕じゃどうにもならない所があるみたいなので、本当にほんっとに申し訳ないけど、もう一度どうか宜しくお願いします m(_ _)m

441名無しさん@ダヨー:2013/08/03(土) 11:28:24 ID:5snlIWD20
初めまして、もしご存知の方がいらしたら教えていただけるとうれしいです。

ニコ動のクリエイティブコモンズ等にある動画素材(MP4やWMV)を背景素材に
使いたいのですが、MMDへの読み込み方がわかりません。
AVIファイルに変換して背景AVIとして読み込んでも
「FF VIDEOSOURCE:Non Liner access attenmpt」という赤字エラーで1度しか再生出来ません。

MMD以外の他のツールで編集すべき素材なのでしょうか?
検索してみても街頭するような説明が探せずしょんぼりしております。
ご存知の方がいたらよろしくお願い致しますm(__)m

442名無しさん@ダヨー:2013/08/03(土) 11:42:40 ID:5snlIWD20
>441
すいません、スレを間違えました!m(__)m

444sn0w75:2013/08/03(土) 17:35:13 ID:B6NjlIzc0
連行失礼します〜
モーションの、「長い方向に回転してしまう」バグを直せました。まぁ線形ですしこれぐらいは自分で直せます。モーフやってる時は便利そうです。
でもやっぱりボーン変形のデバッグ仕方が分からないなぁ…数式をちゃんと理解してると思っても、その知識をプログラムで上手く使いこなせないからデバッグ出来ない…この点に付いてなんらかのアドバイスがありましたら是非聞きたい所です。

うん、「どうにもならない」と言ってたら本当にどうにもならないからね。そういうわけなので、何かコツがあったらどうか教えてください >.<"""

445名無しさん@ダヨー:2013/08/04(日) 05:18:50 ID:yon7Hpzo0
ikx.cppを欲しがる人はそこそこ居そう

446sn0w75:2013/08/09(金) 12:37:44 ID:ekP3qPWE0
そろそろ一週間経ってるので少し更新。
いろんな方法をやってみたのですが、未だIK変形が出来ていません。保存したコード貼っておきます: http://pastebin.com/EZEh6CGb

コメント化していないupdateIK()は最新ので、その後続く、コメントされているupdateIK()は古いのです。
最新のはMMD_DesktopMascotのIKコードを改造したものですので日本語コメントが付いてます。

最新をやってみるとこんな感じです: http://imgur.com/unuypVj

他のMMDアプリケーションのソースコードも見てやってみたので、ikx.cppがあってもあまり役に立てない気がしてきた orz

449名無しさん@ダヨー:2013/08/14(水) 00:20:24 ID:S8yrno6g0
スレ見てるとC/C++ばっかだなぁ。javaで書いてjavascriptにポートしてるのは俺だけか。
JOGLとWebGLで使えて便利だぜ!とか思ったがプリミティブシェーダーが使いたい。
フラグメントシェーダーだけじゃもの足りん。

>>445
欲しいよ。MMDはIK謎すぎる

450名無しさん@ダヨー:2013/08/16(金) 19:19:51 ID:XQQnjolA0
プリミティブもフラグメントも同じ物かと思ってた!

451sn0w75:2013/08/21(水) 14:00:15 ID:dFoN8oGo0
しばらく休憩することにしたけど、休憩を始めた前はIK出来た…かもしれない。ただ軸制限がまだ掛かってない為凄く不自然に見えるw
http://www.youtube.com/watch?v=8Dsm0aCvD3k

これが完全に出来たら色々書くつもりだ…MMDのIKに付いての情報が足りなさすぎる orz

452名無しさん@ダヨー:2013/08/21(水) 19:07:42 ID:OnLXRHic0
>>451
https://www.sugarsync.com/pf/D109395_2949408_453861

453sn0w75:2013/08/22(木) 18:19:06 ID:pf65wSTw0
>>452
再うpありがとうございます…勿論上手く行かないけど orz

もう戦意失いつつあるなぁ…さすがにこんなやってても出来ないんだと傷つくというか、凄く悔しい。

とりあえず最新のコード貼っとくか… http://pastebin.com/Q2VTxPWf
-足首がまったく回転しないのが気になる…多分targetBoneを正しく変形してない(変形してはあるが)。
-角度制限を掛けるともっと変な結果が出るだけだ(しょんぼり

454名無しさん@ダヨー:2013/08/23(金) 14:08:58 ID:xi82W2CM0
>>453
俺もIK関連で結構詰んでるんだが、最近C#ばっかすぎてそのC++のコードが全く読めねえ・・・
足首がおかしいのは俺もなんだよね。ただ回転しないってわけじゃなくて、足首がグルグルしちゃうっていうかIKの解が収束しないってことなのかな。
足全体はおかしくないはずなんだが、なんでだろうなあ。

455名無しさん@ダヨー:2013/08/23(金) 16:45:56 ID:Gtzbib0w0
先に一度IK拘束下のボーンを変形完了しておく

456sn0w75:2013/08/24(土) 16:22:07 ID:hHgtvhPM0
>>454
ぐるぐる回るって現象は僕のも前はありました。
確か、ボーンの回転変数を毎フレームリセットしないと、回転が重ねていって、永遠に回る状態になってしまいます。

457名無しさん@ダヨー:2013/08/24(土) 17:45:24 ID:vP1hIAdA0
>>456
ありがとう。まさにその通りだった。
多少だけど改善した!
俺がアドバイスできることは少ないかと思うけど、お互いに意見交換していこうぜ。

458LsK(457) ◆bYpriaxgmY:2013/08/26(月) 17:19:13 ID:uWQP5gzQ0
連投すまん。
ただ、自分も何を作っているか明らかにした上でお互いに持てる技術を共有していきたいと思う。
自分が作っているのはDirect3D11でPMXのモデルを表示することができるオープンソースのライブラリなんだ。
まだ公開していないが、自分のコードが誰かの疑問を解決できるのなら迷わず該当箇所を貼る用意がある。

現在の状況⇒http://youtu.be/jqtse-lH-Sc

sn0w75氏のように自分以外にもpmxの表示に手を出そうとしている人が居たようでうれしい。
自分もIKが完全にうまくは行っていないから出せる知識は少ないし助けられることばかりかもしれないが、よろしくお願いします。

459名無しさん@ダヨー:2013/08/26(月) 21:31:29 ID:VmaeWk2g0
OpenGL ES 2.0 なのがつらいけれど
iPhone/iPadでpmxのモデルとモーションを描画したいなあ。
タッチ操作でより直感的に編集できると楽しそうに思う。
Windowsのタッチ機能でも良いけどね

460名無しさん@ダヨー:2013/08/26(月) 21:58:31 ID:CNabeYHM0
タッチは感覚的でおおざっぱな操作には向いてるUIで
細かい操作には向かない気がするけどなあ

461sn0w75:2013/08/28(水) 10:38:13 ID:y/0fsZ0w0
>>458
返事遅れてすみません。この数日、IKを完成する為に色々試してたけど最終的に全然ダメだった。
君のIKが殆ど出来てるのようで羨ましい。共有は是非したい所ではあるけど掲示板じゃちょっと面倒になるかもしれません。
もしよかったら、チャットプログラム等で合流しませんか?(Skypeとか。)それも無理でしたらメールでも大丈夫です:
ibenrunnin@gmail.com

どちらも無理でしたらここでやってもいいですけど、他の人に迷惑にならないか心配です。

それでは、こちらこそ宜しくお願いします〜

463:2013/08/29(木) 17:00:53 ID:65uEXvOY0
MME導入むずかzjhb。

465LsK ◆bYpriaxgmY:2013/09/01(日) 21:21:56 ID:4fWsoknA0
MMMは頂点モーフってどうやって実装したんだろうか・・・
スキニングをGPUでやると、頂点だけの移動ってすごいやりにくい。

466名無しさん@ダヨー:2013/09/02(月) 02:35:16 ID:JCr/0BtU0
モーフって足すだけ・・・ とかそういうんじゃなくて?

467名無しさん@ダヨー:2013/09/02(月) 11:34:40 ID:MPVZd4mk0
モーフオフセットを格納するスペースを頂点に与えてやって
頂点シェーダなりコンピュートシェーダなりでスキニング直前にオフセットを足してやればいいんじゃないですかね。
MMMはCPUでやってるっぽいけど

469名無しさん@ダヨー:2013/09/06(金) 11:02:32 ID:7cC6W0qY0
車輪の再発明で心バキバキ
MMDDに期待。。。

470LsK ◆bYpriaxgmY:2013/09/06(金) 14:49:02 ID:1CPZ5yXA0
>>469 ご存知で頂いて嬉しいです。頑張って期待を裏切らないように完成させたいと思います。

他の方も興味があれば、協力していただけると嬉しいです。
https://mmdd.codeplex.com/

471名無しさん@ダヨー:2013/09/15(日) 05:30:39 ID:Ru.BqRoM0
MMDDのMME仕様拡張はちょい楽しみ
StreamOutputStageとかも使えるようになったりするんかな

一部読み込めないテクスチャってのはアルファ付きBMPとか?
SDEFもまだ未解決?

472LsK ◆bYpriaxgmY:2013/09/15(日) 09:30:40 ID:/KFbf9720
>>471
StreamOutputStageとは、複数の出力をコンピュートシェーダーなどで合成したりとか
そういう使い方でコンピュートシェーダーを使用することのことでしょうか?

テクスチャについては解決済みなのに、途中の表記になってました。
SDEFについてはまだ未解決です。
http://mikumikuonline.blogspot.jp/2012/05/sdefhlsl.html
上記URLを参考に、SDEFを実装しようと思っていますが、とりあえず、BDEF2で動かしてます。

SDEFの計算式に詳しい方がいたら、それだけでも協力していただければかなり進みは早いのですが。

473名無しさん@ダヨー:2013/09/15(日) 09:47:25 ID:bHG9bqMk0
var bone0 = bones[(int)v.BlendIndices[0]];
var bone1 = bones[(int)v.BlendIndices[1]];
var center = v.SdefC; // Vector3
var weight0 = v.BlendWeight[0]; // float
var weight1 = 1 - weight0; // float
var mat = Matrix.RotationQuaternion(Quaternion.Lerp(Quaternion.Identity, bone1.LocalRotation, weight1) * Quaternion.RotationMatrix(bone0.AbsoluteTransform)); // Matrix
var pos = v.Position; // Vector3

pos = Vector3.TransformCoordinate(pos - center, mat)
+ (center
+ (Vector3.TransformCoordinate(center, bone0.AbsoluteTransform) - center + Vector3.TransformCoordinate(v.SdefR0, bone0.AbsoluteTransform)) * weight0
+ (Vector3.TransformCoordinate(center, bone1.AbsoluteTransform) - center + Vector3.TransformCoordinate(v.SdefR1, bone1.AbsoluteTransform)) * weight1) * 0.5f;
v.Normal = Vector3.TransformNormal(v.Normal, mat);
v.Position = pos;

// WTFPL

474名無しさん@ダヨー:2013/09/15(日) 14:32:04 ID:Ru.BqRoM0
>>472
VertexShader→略→(GeometryShader)→っと来たのを違うVertexShaderにぶち込むことができるんで

未スキニング頂点を入力(MMM方式)

VSでスキニング

別のVSへ(MME方式のスキニング済みが送られてくる前提のシェーダー)

まぁこれはどうでもいいか。

働く床_VS → フィギュアとか他の質感シェーダ

のように変形系エフェクトの変形後を質感変えるシェーダーに流し込めるってのが良いな、と。


コンピュートシェーダといえば、
物理演算をそっちに持ってってそれもMMEれるとかなると面白そうって思ったたけどすげー大変そう


>>473
MMMの方式とだいたい同じ

475LsK ◆bYpriaxgmY:2013/09/15(日) 16:55:11 ID:/KFbf9720
>>473
SDEFの計算式ですか!ありがとう!利用させてもらいます。

>>474
なるほど、確かにエフェクトの可能性が広がりそうですね。そういった意見は是非取り入れていきたいと思います。
MMMとMMEのシェーダー対応のために、GPUスキニングとCPUスキニングを切り替えられるように実装しようとしていたので、
もし、その方法が取れるならGPUスキニングの利点を活かせますね。

476LsK ◆bYpriaxgmY:2013/10/15(火) 10:35:50 ID:lQW4tWgQ0
MMDDはMMF(Miku Miku Flex)に名称が変更されました。
それに伴い、CodePlexのページが変更されました。
https://mmflex.codeplex.com/
今後ともよろしくお願いします。

また、>>474で出ているStreamOutputについてですが、今プロジェクトでは舞力介入Pと一緒にDirectX11用のシェーダーを協議しつつ進めています。
その中でも、StreamOutputについては案として挙がっています。
MMFのページにある仕様は暫定的なこちらからの提案用の案ではありますが、舞力介入Pの指摘を受けて1度作り直したStreamOutputの仕様のため、大きな変更はないかと思われます。
ただ、まだコードのほうで実際に可能かテストしていないため実現できるかどうかは怪しいですが、MME/MMMのシェーダーの互換性を持たせる、複数エフェクトのモデルへの適用が行えるようになると予想しています。
もしよろしければ、シェーダーの仕様について助言をいただければと思います。

長文失礼しました。

477sn0w75:2014/01/07(火) 16:59:43 ID:4pcDsN7A0
どうも久しぶりです。大変久しぶりです。半年ぐらい経っちゃってますしw
皆さんのお陰で、開発がかなり進むことが出来ました。
最初は3Dのこと何も知らなくて、言語バリアもあって「同次変形行列」みたいな複雑な単語も知りませんでした。いやそもそも英語のHomogeneous Transformation Matrixって単語知らなかったわwww

でも今はFK、IKモーション、頂点モーフ、物理演算が出来てます。
http://www.youtube.com/watch?v=n3w319L3tus

まだバグだらけです(得にIKは酷い…)。でもこの最初の一歩で、Mac OSX、Linux等のOSでMMDの開発が段々進めていったら〜と思ってます。

とにかく、僕は自分の好きなOSでミクミクしたかった。そしてその自由が手に入れたら、それを皆と分け合いたかった。それをある形で出来そうです。
(ボーカロイドで自由にボーカルのある曲、動画等を作れる感じがあるのに、使ってるソフトが全部クローズドだなんて皮肉な話だと思ってましたし。)

もう少し時間掛かると思いますけど、もう少しバグ直してから最新のコードを公開して、ニコニコで発表したりしたいと思ってます。
その後は、そうですね…ちゃんと開発を進めて、コードのメンテ(バグ直し等)もする形でいきたいと思ってます。

後、多分二度と現ることはないでしょう、MMDの仕様について詳しくて英語もペラペラな自分がせっかくここにいますからねwwww
英語のブログでMMDの仕様やMMD関連プログラミングについて色々書くのもいいかもしれません。
それで海外でMMDの開発者がもっと増えるかもしれない。
日本語が分からない奴等がMMDの開発をしようとすること自体がいいことなのか悪いことなのかは分かりませんけどwwww

この点については皆さんの意見がちょっと気になりますね。
海外でボカロ流行ってほしい人の声も大勢聞いてきたし、例えなんですけどライセンスが読めないのに勝手にモデル等を使う人達に対して怒りを感じる人も見てきました。
まあ、このスレはあくまでプログラミングスレなんですから、ちょっと関係ない話かもしれませんけど。

それでは、長文大変失礼しました!色々ありがとうございました!本当に色んな人達にお世話になりました。
またニコニコ動画で、そのお礼をちゃんとしたいと思ってます。では!

478名無しさん@ダヨー:2014/02/06(木) 14:18:51 ID:7mli8u/60
ジンバルロックぺろぺろ
IKってまだブラックボックスなのかな

479LsK ◆bYpriaxgmY:2014/02/16(日) 03:02:12 ID:otoMUQm.0
>>478
CCDIK自体はそこまでブラックボックスではない気がします。一般的な有名なアルゴリズムの一つですし。
ただ、難しいのはCCDIKと回転量制限をどのようにうまく融合させるかということなんです。MMFでも今うまくいっていないのでモーションを完全に正しく表示できません。
特に、回転量制限かけた結果、CCDIKの収束解が振動してしまったりもしてしまいます。その辺がまだブラックボックスな感じがします。

480名無しさん@ダヨー:2014/02/16(日) 03:18:28 ID:geg8ktfM0
MMDだとpmxの角度制限がXYZすべて0.0〜0.0になってるIKでもループ回数以内に到達できなかったら
無理やり制限開放してターゲット位置にしてるけどそのへんはikx.zipのやつにも書いてないね

481名無しさん@ダヨー:2016/09/12(月) 23:06:02 ID:wPORBw1Q0
常識的に考えて樋口さんいないし後継ソフト止まってるこの状況って結構やばいんじゃないかな緩やかな袋小路でどうしようもない段階に来てしまったのでは

482名無しさん@ダヨー:2016/09/13(火) 13:06:11 ID:BYa6vguQ0
ボカロ衰退論と一緒で毎年何回か言われてるけど
むしろ利用者増えてるっていう

483名無しさん@ダヨー:2016/09/13(火) 14:04:28 ID:PGudX1/60
MMDだって7.39で終わりと思ってたのに突然アップデート来たしな

484名無しさん@ダヨー:2016/09/13(火) 14:26:18 ID:UBe9fknU0
何がヤバいのか分からない
機能が欲しければ他のソフト使えばいいし

具体的に何がヤバいのかな

485名無しさん@ダヨー:2016/09/13(火) 21:22:08 ID:2of.g1nY0
気になるのはDX9がいつまで使えるかぐらいかな。

次々と新しい機能が追加されないと困るようなソフトでもないし、扱うデータもどれもほぼ専用フォーマットだからバージョンアップされて対応しないと読めないデータが増えて困るってこともないし。

486名無しさん@ダヨー:2016/09/14(水) 19:10:29 ID://fr84ZE0
てか、今だと外人の作ったパッチで外部レンダリングできるからなぁ・・・・
派生ソフトは正直もう不要だと思う

まぁ、使い方が難しいからMMDユーザー向きではないわな
皆が慣れてるMMDがバージョンアップするのが望ましいけど厳しいよな
MMMはモーション作成するのには便利だけどv2になっても重すぎるし

487名無しさん@ダヨー:2016/09/14(水) 19:15:40 ID://fr84ZE0
現状、今のMMDで困ることってないよな
エフェクトはもうあらかた出揃ってるし

将来的にwindowsでMMDが動かないような日がいつか来るのかもしれないけどさ
別にMMD用のPC残しとけばいいだしな オンラインじゃなくてもいいわけだし


欲しい新機能もあまりないよな
360度の天球動画なんて正直すぐ飽きる
VRもそこまで面白くもないしな

488名無しさん@ダヨー:2016/09/14(水) 20:58:46 ID:V4z0v4Z60
>>482
そうなのかソースは?

489名無しさん@ダヨー:2016/09/15(木) 15:46:07 ID:eL7ScwC.0
鍵垢からフォローされたら怖い、薄気味悪い
って人けっこういるのかな?
自分は卵アイコンとか極端じゃなければ別にだけど

490名無しさん@ダヨー:2016/09/15(木) 15:56:36 ID:.JclIIrE0
とりあえずスレチだろ

ただ鍵垢ってアレな奴のイメージあるからとりあえず無視

491名無しさん@ダヨー:2017/10/07(土) 00:53:45 ID:YnaK0lCs0
Pmxeditorのプラグイン(PEPlugin)制作で疑問に当ったので質問します

モーフの表示枠を操作したいんでIPXPmx.nodeでIList<IPXNode>を取得したけど
このリストの中には「表情」ノードが存在してなかった(「root」もない)

操作したい内容はプラグインで追加した頂点モーフを表示枠に登録したいのだけど実はモーフ追加で勝手に表情欄に追加されている
…が追加した数だけ最後の方の表情が表示枠から押し出されてしまう

そんな変な状態を正常にしたいのだけどプラグイン内でハンドルするにも表情ノードを取得できないので手も足も出ない

どうすればいいでしょう?

492名無しさん@ダヨー:2017/10/07(土) 01:32:18 ID:9wIAV2tI0
[表情]はIPXPmx.ExpressionNode、[Root]はIPXPmx.RootNode
(システム管理用)なんて注釈ついてるから使っちゃいけないのかと思っちゃうよねぇ

493名無しさん@ダヨー:2017/10/07(土) 01:59:13 ID:YnaK0lCs0
>>492
ありがとう
別口の取り出し口があったのか
気がつかなんだ

494名無しさん@ダヨー:2017/10/08(日) 09:38:11 ID:.PjJKIp60
こういう話はPMXEditorスレの方が適切だと思う


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板