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

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

1かんな ◆LROMJ4PcOQ:2010/09/26(日) 20:12:21 ID:emHXwJKM0
■MMD関係でプログラミングを行っている人々の情報交換スレです
言語系、DirectX系、HLSL/GLSL系をはじめとした話題が中心。
MikuMikuEffectの.fx系もこちらで。

質問や初心者対応を主としたスレではないので、質問に対する回答が無くても泣かないように。
回答は任意で行って下さい。

プログラミングの基礎的な部分などはぐぐる先生に聞くか、もしくは2ちゃんねるの
プログラム板・CG板・ゲ製作技術板などを参照にする事。

■関連スレ
MMD関連ツールスレ
http://jbbs.livedoor.jp/bbs/read.cgi/music/23040/1259444737/

MMD動画の編集・加工(エフェクトなど)を語るスレ
http://jbbs.livedoor.jp/bbs/read.cgi/music/23040/1274703972/

PMDEditor
http://jbbs.livedoor.jp/bbs/read.cgi/music/23040/1259444259/

MMDのモデルデータ(制作・改造)について語るスレPart 3
http://jbbs.livedoor.jp/bbs/read.cgi/music/23040/1282711154/

【MMDアクセサリ】アクセサリ関連スレ
http://jbbs.livedoor.jp/bbs/read.cgi/music/23040/1220086643/

MMD関連データ公開スレ
http://jbbs.livedoor.jp/bbs/read.cgi/music/23040/1241598884/
.fxやプログラムも公開時はこちらにも報告を頂けると助かります

■このスレでの注意事項(暫定)
・人を誹謗中傷しない
・荒らしはスルー
・実装を期待しない
・開発者を無駄に神扱いしない
・否定する場合は代替案などを提示する事
・議論は前向きに
・age進行推奨

■次スレは>>970が建てる事
次スレに必要な議論はそれまでに済ませておくべし
>>970が音沙汰無い場合は>>980一任

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' を開くことができません。
_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
補間パラメータ難しいですね…
指定した時間における正しいフレーム進行度を得るには
あの気違い染みた計算をリアルタイムで行うしか無いのでしょうか
それとも近似的な計算でもあるのでしょうか?

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);


新着レスの表示


名前: E-mail(省略可)

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

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

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

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