したらば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一任

2名無しさん@お腹いっぱい。:2010/09/26(日) 20:35:19 ID:emHXwJKM0
■公開されているMMEプラグイン情報など
VPVP Wiki - その他データ
http://www6.atwiki.jp/vpvpwiki/pages/23.html#id_1ff57e02

■MME関連動画
【MikuMikuDance】エフェクトファイルを読めるようにしてみた
http://www.nicovideo.jp/watch/sm12149815

【MMD】MMEでディフュージョンフィルタを実装してみた【MME】
http://www.nicovideo.jp/watch/sm12182051

MME用のキューブMAPを作ってみた
http://www.nicovideo.jp/watch/sm12192792

【MMD】特定のパーツを光らせるフィルタを作ってみた【MME】
http://www.nicovideo.jp/watch/sm12204526

【MME】ハイライト処理付きシェーダ【公開】
http://www.nicovideo.jp/watch/sm12228608

【MME】パーティクル作成支援ツールを作ってみた
http://www.nicovideo.jp/watch/sm12231633

【MMD】MMEで霧表現(フォグ)【MME】
http://www.nicovideo.jp/watch/sm12224674

【MMD】MMEで深度出力とフォグ
http://www.nicovideo.jp/watch/sm12239960

3名無しさん@お腹いっぱい。:2010/09/26(日) 20:47:48 ID:opgwLztU0
>>1 テンプレ完璧すぎワロタ
お疲れ様です、GJだと思います

4名無しさん@お腹いっぱい。:2010/09/27(月) 01:57:57 ID:1Z3yOoZU0
デフュージョンフィルタfx、色調補正の数値代入に誤記があったとか。
パラメータツールの作者さんが直してました。

5名無しさん@お腹いっぱい。:2010/09/27(月) 16:05:07 ID:BmfTVrBc0
ツールスレの268で質問したものですが、色々調べた結果モデル毎のマルチパスは(自分には)できないという結論に。
なら、edgeパスを1pass目ってことで乗っ取って使っちゃえばいいじゃないとやってみたら
http://www.nicovideo.jp/watch/sm12247810
こんな感じに。(激重)
1pass目が1フレ遅れる。objectよりedgeのが後なんです...ね。

レンダリングパスがスクリプトっぽく書けたら動的キューブマップとかできそうなでいいなぁなんて

6名無しさん@お腹いっぱい。:2010/09/27(月) 21:05:54 ID:lLJ4HWB20
>>4
あ、ほんとですね。修正ついでに少し機能追加しておきました。
http://cid-a17ecb6418a4b2d1.office.live.com/browse.aspx/MMD/Effects

ポストエフェクト系で、ダミーアクセサリのアルファ値をパラメータとして使えることに
気付いたので、MMD側からある程度操作できそうです

7舞力介入P:2010/09/27(月) 21:44:54 ID:tuw8gFMg0
>>5
基本的に、各subsetの描画順序はMMEffectの制御下になく、
MMDから渡されるままの順序で描画しているので、
その辺りはどうしようもないところはあります。
objectの描画よりも先に実行されることが期待できるのは、zplotのみかと。

これ以上を期待するとなると、MMD側の支援が必要になりますね。

8名無しさん@お腹いっぱい。:2010/09/27(月) 21:48:49 ID:ddUQJt6s0
>>5
なるほど、レンダのタイミングいろいろずらせるのか
テクスチャはFxファイルで読むようにすれば、MMD側からもらうのきにしなくていいし・・・

Farのレンダに、Zバッファ書き込みしないほうが都合がいい関係上
セルフシャドーが上にのって、変になることがあったのだけど
回避できそうっ

9舞力介入P:2010/09/27(月) 21:49:28 ID:tuw8gFMg0
>>6
float4x4 WorldMatrix : WORLD;
static float3 offset = WorldMatrix._41_42_43;
とすれば、ダミーアクセサリのオフセット値(X,Y,Z)が取れます。
参考までに。

10名無しさん@お腹いっぱい。:2010/09/27(月) 21:58:33 ID:lLJ4HWB20
>>9
おお、それも使えそうですね
ただ、MMDが線形補完してくれないのが悩みどころですが。使い分けかな

11名無しさん@お腹いっぱい。:2010/09/27(月) 22:27:12 ID:ddUQJt6s0
スケーリングと、アルファはただそれだけで、線形補間ありなのが便利よねー
>>10
ボーンにアサインした場合はどうだったっけ?
確認しよぅ・・・

12舞力介入P:2010/09/27(月) 22:41:21 ID:tuw8gFMg0
ダミーボーンにつければ、補間は効きますね。

ダミーアクセサリのスケーリング値の取得はこんな感じで。
float4x4 WorldMatrix : WORLD;
static float scaling = length(WorldMatrix._11_12_13);

13名無しさん@お腹いっぱい。:2010/09/27(月) 22:45:14 ID:ddUQJt6s0
>>12
あ、やっぱりできるんですね。
それにめぼしをつけて使えないかなーとおもってたのですけど。
リアルタイム被写界深度の中央値の目安代わりにしようとしてたが何とかなるかなー・・・

14名無しさん@お腹いっぱい。:2010/09/27(月) 22:51:58 ID:Koi6znjw0
一時age

15:2010/09/27(月) 23:45:36 ID:FgCYAB/g0
MMDにエクスポート関数を内臓させてみました。

ttp://www.geocities.jp/higuchuu4/pict/MikuMikuDance_v709.zip

>>舞力介入Pさんへ
上記ファイルで、フックした状態でエクスポート関数が読めるか、確認してみてください。
エクスポート関数のプログラミングは初めてなので、とりあえずは動作確認用です。
読込できた場合は、必要な関数等やタイミング等について詰めていきましょう。

16:2010/09/27(月) 23:47:16 ID:FgCYAB/g0
あ、ちなみにエクスポートとか良く判ってないので、動かなくても怒らないでくださいね。
(その場合は、足りないものとか、なにがおかしいのか等、教えて下さいませ)

17名無しさん@お腹いっぱい。:2010/09/28(火) 00:46:16 ID:otNO/tPw0
>>15
うお、MMDの内部変数が取得できちゃうってことでしょうか?
これは期待。

18名無しさん@お腹いっぱい。:2010/09/28(火) 01:00:37 ID:otNO/tPw0
>>16
ExpGetCurrentObject()は、PmdとAcsの通し番号なのかしら?
また、ExpGetCurrentObjectのCurrent材質番号も取得できるといいかもしれませんね。

すいません、私は外野で想像で書いてます・・。

19舞力介入P:2010/09/28(火) 01:33:01 ID:7svYC.nk0
>>15
おお、ありがとうございます。

MMEffect側で、エクスポート関数に問題なくアクセスできることを確認しました。
正常にエクスポートできていると思います。


あ、ただ一点だけ、ちょっと修正していただきたい箇所が。
関数エクスポートの際の一般論になりますが、
MMDExport.hのEXPORT定義のところで、全体を extern "C" { 〜 } で囲ったほうがよいと思います。

現在のEXPORT定義では、外部から見たシンボル名が "?ExpGetAcsFilename@@YAPADH@Z" のようになっていて、
GetProcAddress()関数で動的リンクする場合や、C++以外の言語からアクセスする場合に、
参照しにくくなります。

extern "C"を指定すれば、シンボル名が "ExpGetAcsFilename" のようになるので、
外部からアクセスしやすくなります。

20:2010/09/28(火) 06:01:41 ID:oh2Hv4zM0
EXPORT定義をectern "C"で囲みました。

ttp://www.geocities.jp/higuchuu4/pict/MikuMikuDance_v709a.zip

一応 前のスレでの要望は満たしたつもりですが、バグ、修正希望や他の要望がございましたら
またここに書き込んで下さい。

>>18
ExpGetCuurentObject()はPmdとAcsの通し番号です(ただしPmd前のAcsは記号が負)。
Current材質番号は必要です? もし必要なら追加しますが。

2118:2010/09/28(火) 09:11:04 ID:otNO/tPw0
>>20
MMEはすでに、アノテーションのsubset実現しちゃってるので、
Current材質はいらないのかな・・・?

22名無しさん@お腹いっぱい。:2010/09/28(火) 09:55:42 ID:.bdcG3nQ0
MME内臓タイプは,ver8シリーズみたいな気がする・・・

23名無しさん@お腹いっぱい。:2010/09/28(火) 16:46:53 ID:.YmpdInk0
Ver5でもMME動いて欲しいす(´・ω・`)

24名無しさん@お腹いっぱい。:2010/09/28(火) 18:27:36 ID:UgPTusWg0
>>22
それは無いと思うw
http://jbbs.livedoor.jp/bbs/read.cgi/music/23040/1259444737/306

>>23
DirectXの仕組み上無理だねぇ…

25名無しさん@お腹いっぱい。:2010/09/28(火) 21:25:15 ID:st1dOZmA0
HLSLそのものがDirectX9以降だからね・・・

26名無しさん@お腹いっぱい。:2010/09/28(火) 22:15:30 ID:jpqZNHpU0
MMDに内臓はないぞう
たぶん

27名無しさん@お腹いっぱい。:2010/09/28(火) 23:12:17 ID:1FJn/vnI0
>>26
ミク「グロテスクな映像になってしまうので、ココでは省略します」

28舞力介入P:2010/09/29(水) 01:02:39 ID:P8waSdvU0
>>20
ありがとうございます。

お言葉に甘えまして、追加希望のものを列挙しておきます。(色々増えてしまいましたorz)
勿論、実現が難しい場合やその他問題がある場合は、Mの判断で却下して結構です。


(a) PMDモデルのボーンのWorld変換行列(アクセサリをボーンに割り当てたと仮定したときのWorld変換行列)
 &表情

シャベルPがパーティクルのサンプルをPMD化する実験をされているそうで、
PMDのパラメータをfxから直接参照できるようにしておくと、後々面白いことができそうな気がします。
また、表情の値も取得できるとエフェクトのパラメータ調整に使えそうです。

必要な関数は、こんな感じになると思いますが、いかがでしょうか
・指定したPMDモデルのボーンの数
・指定したPMDモデルの指定したボーンの名前
・指定したPMDモデルの指定したボーンのWorld変換行列
・指定したPMDモデルの表情の数
・指定したPMDモデルの指定した表情の名前
・指定したPMDモデルの指定した表情の値(float)


(b) PMDモデル,アクセサリの、表示のON/OFF

 描画されないオブジェクトを前もって知ることができれば、いくらか処理を削減できそうです。


(c) オブジェクト(PMDモデル,アクセサリ)のID(のようなもの)

現在のインターフェースですと、同じモデルファイルからロードされたオブジェクト同士を区別できません。
また、pmmファイルの再読み込みなどで、
オブジェクトが一旦破棄されて即座に再ロードされるような場合に、オブジェクトの破棄をMMEが検出できません。

そこで、オブジェクトがメモリ上にロードされている間、それを識別するための固有のIDのようなものを
取得できるようにしていただけないでしょうか。
(C++オブジェクトのポインタ値をキャストしたようなもので十分です)


(d) CurrentObjectのCurrent材質番号(>>18


(e) CurrentObjectがPmd, Acs以外の場合の識別方法

現在処理中のオブジェクトが、PMDモデルやアクセサリなのか、
それ以外(座標軸や編集時のボーン表示、情報テキスト等)なのかを、
MME側で区別できるよう、
後者の場合に、ExpGetCurrentObject()の返り値が
0(もしくは他の特殊な値)になる仕様にしていただけるとありがたいです。

29名無しさん@お腹いっぱい。:2010/09/29(水) 21:02:10 ID:Dg92jbgY0
そのうちbulletみたいにMMD自体が3Dレンダリングエンジンとして利用される側に回ったりしてw

30:2010/09/29(水) 21:19:58 ID:N7T7e2H20
>>28
追加しました。
他にバグ報告を受けた問題がありましたので、一旦正式版Ver.7.10として公開しましたので、
VPVPからダウンロードしてください。

MMDExport.hやライブラリは、dataフォルダ内においてあります。
(今後も正式Verはdataフォルダ内に置くことにします)

31名無しさん@お腹いっぱい。:2010/09/30(木) 12:59:22 ID:alW20jwg0
MMEのエフェクトファイルを、モデル名で指定しない方法があるとよいのだけど。
主に全体に影響するエフェクトとか書くときに使いたい。

もしくはそのための記述方法でもいいんだけど・・・

32名無しさん@お腹いっぱい。:2010/10/03(日) 01:24:14 ID:OwML5oos0
マンプマップ適用
http://u7.getuploader.com/Yjo_oi_Neg/download/74/Test1.zip
ここまで作ってみたのだが、もはや正しい挙動がなんなのか判らなくなってきた。

TangentとBinomalの値が空なのが現状のようですが、、.これに値入れられませんかね?w

33名無しさん@お腹いっぱい。:2010/10/03(日) 01:40:15 ID:qn1EOUz20
>>32
バンプマップ/ノーマルマップのことかの?

とりあえず〜・・・
その二つがほしいのであれば、ピクセルシェーダ酷使すれば、何とかする方法もあるよ。
方法としては、ddx,ddy (アセンブリならdsx,dsy)の勾配命令とかで情報収集して算出できる。

ぐぐって自前でサンプル探すのもいいし、MME用に少し手を加えてあるものもある。
まだ手直しおわってないから、色固定&影しかつかない単純なコードサンプルでよければどうぞ。
sampleNormalMap.zip
http://flammpfeil.appspot.com/trinketbox/

34舞力介入P:2010/10/05(火) 23:34:58 ID:sq6u51VU0
>>31
こんなの実装中です。
http://v-nyappon.net/?m=diary&a=page_detail&target_c_diary_id=886272

35舞力介入P:2010/10/06(水) 00:58:55 ID:uoQESAyQ0
>>樋口M
現在、MMDExportに対応したMME ver0.20を実装中ですが、
いくつか要望が生じたので追加させてください。
(c)の機能については、MMD側への影響がこれまでのものより大きいと思いますので、
妥当性についてご意見いただけたら幸いです。


(a) ExpGetCurrentObject()とExpGetCurrentMaterial()の値

勝手に決めたMMEの仕様に由来する話で恐縮ですが、
ExpGetCurrentObject()とExpGetCurrentMaterial()の値を、
影・エッジ描画およびセルフシャドウ用Zバッファプロットの際にも、
処理中のオブジェクト番号&材質番号が返るようにはできないでしょうか。

(現在のMMEのエフェクトファイルの仕様では、影・エッジ描画・Zバッファプロットの際にも、
 Subset番号指定で、シェーダを切り替えられるようにしています)


(b) 現在の処理の種別

MMEでは、MMDが行う描画を、以下の6種類に分類しています。
・通常描画(セルフシャドウOFF)
・通常描画(セルフシャドウON)
・影(非セルフシャドウのもの)
・エッジ
・セルフシャドウ用Zバッファプロット
・その他(座標軸や編集時のボーンなど)

現在の描画処理が、この種別のうち、いずれであるかを取得するような関数を
追加してはいただけないでしょうか(分類が不適切だと思われる場合は、変更してかまいません)。


(c) 1フレームの一連の描画処理(BeginScene()からEndScene()まで)を繰り返す

MMDの1フレームの一連の描画処理(BeginScene()からEndScene()まで)を、
MME側から指定した回数だけ繰り返すような機能は可能でしょうか。
(これは、オフスクリーンレンダリングにより、
 環境マップを動的に作成する場合などを想定したものです)

例えば、その関数を仮に ExpSetRenderRepeatCount(int) という名前だとして、
以下のようなものを考えています。 (※あくまで例です)
(MMEがこの関数を呼ぶタイミングは、MMDが最初のBeginScene()を実行した瞬間を考えてます)

○ケース1(MMEがExpSetRenderRepeatCount()を呼ばない場合)
MMDの処理 MMEの処理
Clear()
BeginScene() (何もしない)
描画1
描画2
描画3
EndScene()
Present()

○ケース2(MMEがExpSetRenderRepeatCount(2)を呼ぶ場合)
MMDの処理 MMEの処理
Clear()
BeginScene() ←ExpSetRenderRepeatCount(2)をcall
描画1
描画2
描画3
EndScene()
BeginScene()
描画1
描画2
描画3
EndScene()
Present()

○ケース3(MMEがExpSetRenderRepeatCount(3)を呼ぶ場合)
MMDの処理 MMEの処理
Clear()
BeginScene() ←ExpSetRenderRepeatCount(3)をcall
描画1
描画2
描画3
EndScene()
BeginScene()
描画1
描画2
描画3
EndScene()
BeginScene()
描画1
描画2
描画3
EndScene()
Present()

なお、最後のBeginScene()〜EndScene()以外は、MME側でRenderTargetを変更してしまいます。

36舞力介入P:2010/10/06(水) 01:50:29 ID:uoQESAyQ0
あ、スペースをミスりました。
↑の(c)のケース1〜3の説明は、以下のように読んでください。

○ケース1(MMEがExpSetRenderRepeatCount()を呼ばない場合)
MMDの処理     MMEの処理
Clear()
BeginScene()   (何もしない)
描画1
描画2
描画3
EndScene()
Present()

37:2010/10/06(水) 21:04:10 ID:28iFTA1A0
>>舞力介入Pさん
追加してみました。

ttp://www.geocities.jp/higuchuu4/pict/MikuMikuDance_v711a.zip

ただ、エクスポート関数はこちらでは動作確認する事ができないため、バグがある可能性も結構高いです。
変な値を返す時などは、遠慮なく連絡して下さい。

38:2010/10/06(水) 21:21:41 ID:28iFTA1A0
ExpSetRenderRepeatCountに関して、一回のレンダリング終了はBeginScene()のフック回数で判断する予定でしょうか?

MMDExport.hの注釈にも記載しましたが、BeginScene()とEndScene()の間にはキャプチャ処理や文字スプライト表示処理等
fxには使わなさそうな処理もしてますし、レンダリングターゲットの重複が発生する恐れもあったので、BeginScene()は
ループの外に出しました。

もし必要だったら、一回のループが終了したフラグを投げるエクスポート関数を追加した方が良いでしょうか?
あるいは、BeginScene()ごとループの内部に入れてしまいます?

39舞力介入P:2010/10/07(木) 00:20:58 ID:kY66aRdo0
>>38
fxで使用しない処理は、MME側で端折ってしまおうとか考えてました。
あのシーケンスを見ると、
確かに、ループは、BeginScene()とEndScene()の中に入れたほうが
シンプルですね。

となると、仰るとおり、
一回のループの完了点をMME側が認識する方法が必要となります。

ExRepeatの現在の値を取得する関数が有れば、
MME側でループの区切れを認識できると思うのですが、いかがでしょうか。


あと、少し考えたのですが、
想定しているループの用途を考慮すると、
セルフシャドウ用のZバッファ描写は、ループの外(というかループの前)に出してしまったほうがよいと思います。

環境マップや深度マップを作る際に、セルフシャドウ用Zバッファ描写を繰り返しても処理の無駄ですし、
また、ループ途中でのRenderTargetの変更は無いほうが、MME内部の実装を単純にできそうです。

40名無しさん@お腹いっぱい。:2010/10/07(木) 17:03:13 ID:x3HwWsmk0
足りない脳味噌でラインを作ってみました。
ttp://www1.axfc.net/uploader/Sc/so/160594
…実はもう誰か作ったりしていましたか…?

41furia:2010/10/07(木) 21:48:42 ID:bk8gfpNI0
>>40
私もやっつけ実装ではいくつか試してみてましたが、うまくいかないところが多くて
大変参考になったです、ありがとうございます。

42:2010/10/07(木) 23:10:01 ID:.Ef82twg0
>>39
ExpGetRenderRepeatCountの追加と、セルフシャドウ用Zバッファ描写をループの前に持ってきました。

ttp://www.geocities.jp/higuchuu4/pict/MikuMikuDance_v711a.zip

43:2010/10/07(木) 23:12:18 ID:.Ef82twg0
う、すみません。アドレスは
ttp://www.geocities.jp/higuchuu4/pict/MikuMikuDance_v711b.zip

です。

4440:2010/10/07(木) 23:52:08 ID:x3HwWsmk0
ttp://www1.axfc.net/uploader/Sc/so/160635
追随オブジェのマトリクスをちゃんと確保するようにしてみました。

45名無しさん@お腹いっぱい。:2010/10/08(金) 00:09:15 ID:iwWBQl3c0
そこはかとなく、M氏がコーディングを楽しんでる予感がする
このスレは良いスレだ

46名無しさん@お腹いっぱい。:2010/10/08(金) 00:25:30 ID:xusr5.4k0
水面を作ってゆらぎとフレネル反射を作ってみようと思うのですが…
現在のレンダリング状況をなんとかして確保できない物でしょうか。

47名無しさん@お腹いっぱい。:2010/10/08(金) 01:16:44 ID:kBqmukOg0
いっそ描画モジュールをプラグイン化して欲しい

48名無しさん@お腹いっぱい。:2010/10/08(金) 03:31:00 ID:1lnrF88k0
あるいみDirectXもComっていうプラグインに使える形式の一種だけどな

49名無しさん@お腹いっぱい。:2010/10/08(金) 04:04:59 ID:iwWBQl3c0
>>48
強引というか無茶苦茶

5040:2010/10/08(金) 23:36:29 ID:xusr5.4k0
ついでにラインビルボードも作ってみました
ttp://www1.axfc.net/uploader/Sc/so/160923

5140:2010/10/09(土) 10:42:50 ID:v0mVsP0w0
ttp://www1.axfc.net/uploader/Sc/so/161063
pass:mme
軌跡のラインビルボードがおおむねできました

52名無しさん@お腹いっぱい。:2010/10/09(土) 13:40:58 ID:qY0Ec1Zo0
ディフュージョンフィルタ推奨のモデルが上がってたんで、指定通りにかけてみたらアンチエイリアスが機能しなくなりました
グラボはRadeonX1300
↓なんかこういう事らしいのですが・・・

918 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日: 2010/10/09(土) 13:31:55 ID:yNJEnOwt0
ディフュージョンフィルタはグラボへの依存度が高い。
人によってはAVIへの描き出し時に効いてないってこともあるようだ。
ゲフォ9600GTでは何の問題もない。

53名無しさん@お腹いっぱい。:2010/10/09(土) 14:06:07 ID:/98IzNA60
VRAM不足の疑い濃厚
ためしに、解像度下げてみ

54名無しさん@お腹いっぱい。:2010/10/09(土) 14:38:14 ID:MiJHp0jUO
>>52
MMEは最新版使ってる?

55名無しさん@お腹いっぱい。:2010/10/09(土) 16:55:34 ID:qY0Ec1Zo0
Ver0.11が最新だよね?
違うの?

56名無しさん@お腹いっぱい。:2010/10/09(土) 21:12:30 ID:wk/D2wOQ0
>>52
ドライバ変えてみそ。必ずしも最新版がいいわけじゃない。

57名無しさん@お腹いっぱい。:2010/10/11(月) 01:07:28 ID:PBi6d59c0
>>52
新しく出たDiffusion3にしたらアンチエイリアス効くようになりました

58名無しさん@お腹いっぱい。:2010/10/11(月) 01:12:30 ID:VW6HuxyM0
最初からDiffusion3使って駄目だったんですよ・・・

59名無しさん@お腹いっぱい。:2010/10/11(月) 02:09:50 ID:It8FtAX.0
バッファ1個減らしてビデオメモリ削減してみたので試してみてください
http://cid-a17ecb6418a4b2d1.office.live.com/self.aspx/MMD/Effects/Diffusion3%5E_Slim.zip

他のポストエフェクト系は正常に動いてます?

60名無しさん@お腹いっぱい。:2010/10/11(月) 12:35:01 ID:VW6HuxyM0
やっぱ駄目でした
Radeon側のアンチエイリアシングを切ってソフトウェア依存にするとアンチエイリアスが効くようになりますが、
ジャギジャギ感のある綺麗ではないエッジになってしまいます
VolumeFogのような広域系エフェクトも駄目でした

古めのRadeonじゃ使い辛い・・・?

61名無しさん@お腹いっぱい。:2010/10/11(月) 13:22:11 ID:odP5UzFE0
ビデオメモリ使用量の計測はしたの?
してないなら、GPU-Zってソフト入れて計測してみてくれない?

上のSensors選択後、Log to fileをチェックすれば
ログとれるから、その状態でMMD起動からやってみて

それと、上のGraphics Card選択した画面のSSも見たい

62名無しさん@お腹いっぱい。:2010/10/12(火) 00:01:10 ID:5lZgE6IM0
ポストエフェクトでavi再生とかってできないだろうか
そしたら字幕とかHUD表示とかできておもしろそうなんだけど

63名無しさん@お腹いっぱい。:2010/10/12(火) 02:26:53 ID:ieE3AelY0
>>62
DrawBufferでANIMATIONTEXTUREにAPNGに変換したAVI設定して
レンダすればいいんでないかな、割と簡単だった。

まぁ、500フレーム43MB(640x360,アルファ付フルカラー)とかな
クラスのファイルになるのは覚悟がひつようだけどー
変換はVirtualDub APNG Modでも使えばさくっとできる。

アスペクト比あわせるのもvsのほうで割ればいいだけだし・・・
狙った位置に持ってくるのは、オフセット算出何気にめどいけど。

64名無しさん@お腹いっぱい。:2010/10/12(火) 02:28:41 ID:z9WbXI520
キーフレームの拡大縮小をすると、何を選んでも表情以外の総てに効果が及ぶのですが、こういうものなのですか?
MMD解説本の記述と違うのですが…
あと表情フレームは何をやっても拡大縮小できません
MMDのバージョンは7.07と7.11bで確認しています

65名無しさん@お腹いっぱい。:2010/10/12(火) 03:32:24 ID:6AS/3IEs0
なに、無圧縮AVIに比べればどうということはない

>>64
なにゆえプログラミングスレで・・・質問スレで聞いたほうがいいんでない

66名無しさん@お腹いっぱい。:2010/10/12(火) 05:18:26 ID:B3u2GBP.0
>>62
志村ー、サンプルエフェクト・movieィィイ。

67名無しさん@お腹いっぱい。:2010/10/12(火) 06:09:53 ID:bH6wHB7g0
>>64
スレタイ見直して移動してくれ

68名無しさん@お腹いっぱい。:2010/10/12(火) 18:06:17 ID:z9WbXI520
失礼しました
とりあえず質問スレに行ってみました

バグ報告スレの方がよかったのかしら…?

69名無しさん@お腹いっぱい。:2010/10/13(水) 21:30:37 ID:7mMzwimE0
MMEで、サブセット番号をパラメータのセマンティクスから取得できるようにすることは無理でしょうか?
特定の材質のみ処理を少し変えたいというとき、テクニックを分ければできないこともないんですが、
重複部分がほとんどの処理が量産されてかなり煩雑になってしまい、
少しぐらい重くなっても条件分岐で処理できたらいいな、と思ったんですが・・・

70名無しさん@お腹いっぱい。:2010/10/14(木) 00:48:27 ID:IX1twzo.O
>>69
full.fxみたく、シェーダにuniform付きの引数を使えば、
シェーダをまとめられるし、遅くもならないので、理想的では?

7169:2010/10/14(木) 22:35:19 ID:UQcXhafU0
>>70
確かにその通り、なんですが・・・どちらかというとテクニック部分の長さが問題でして
実はまさにそのFull.fxを改造しているんですが、似たようなテクニックが16個並ぶことになってしまうのもなんだかなあ、と
スクリプトを加えてテクニック単体が長くなっているのもありますが・・・

まあちょっとしたワガママみたいなもので、あんまりこだわってもないです

72名無しさん@お腹いっぱい。:2010/10/14(木) 22:45:35 ID:ucekOlE.0
あるモデルのあるサブセット用のシェーダーなら、そのサブセットはテクスチャなどのuniform変数は決まってるだろうから
必ずテクスチャはあるのに、falseの場合とか絶対ありえないテクニックまで書かなければシンプルになるような

73名無しさん@お腹いっぱい。:2010/10/14(木) 22:54:58 ID:UQcXhafU0
いやあ、ぶっちゃけて言っちゃいますとClone.fx作ってて、
素材番号を指定するとその素材の色相をずらしていく、なんて機能を付けたら面白そうだな、
というのが動機だったんで、なるべく汎用的にしたかったんです

まあ今のところはテクニックたくさん並べる方向で行ってみます

74名無しさん@お腹いっぱい。:2010/10/15(金) 00:16:05 ID:0N1E0eUw0
超小手先だけど、マクロを使うってのはどう?

#define MAKE_TECH_LIST \
TECH_BASE(0,0,0) \
TECH_BASE(1,0,0) \
TECH_BASE(0,1,0) \
TECH_BASE(1,1,0) \
TECH_BASE(0,0,1) \
TECH_BASE(1,0,1) \
TECH_BASE(0,1,1) \
TECH_BASE(1,1,1) \
TECH_BS_BASE(0,0,0) \
TECH_BS_BASE(1,0,0) \
TECH_BS_BASE(0,1,0) \
TECH_BS_BASE(1,1,0) \
TECH_BS_BASE(0,0,1) \
TECH_BS_BASE(1,0,1) \
TECH_BS_BASE(0,1,1) \
TECH_BS_BASE(1,1,1)



#undef TECH_BASE
#define TECH_BASE(TEX,SPH,TOON) \
technique MainTec##TEX##SPH##TOON < string MMDPass = "object"; bool UseTexture = TEX; bool UseSphereMap = SPH; bool UseToon = TOON; > { \
pass DrawObject { \
VertexShader = compile vs_2_0 Basic_VS(TEX, SPH, TOON); \
PixelShader = compile ps_2_0 Basic_PS(TEX, SPH, TOON); \
} \
}

#undef TECH_BS_BASE
#define TECH_BS_BASE(TEX,SPH,TOON) \
technique MainTecBS##TEX##SPH##TOON < string MMDPass = "object_ss"; bool UseTexture = TEX; bool UseSphereMap = SPH; bool UseToon = TOON; > { \
pass DrawObject { \
VertexShader = compile vs_3_0 BufferShadow_VS(TEX, SPH, TOON); \
PixelShader = compile ps_3_0 BufferShadow_PS(TEX, SPH, TOON); \
} \
}

//ここで16個一括生成
MAKE_TECH_LIST

75名無しさん@お腹いっぱい。:2010/10/15(金) 00:37:27 ID:I9aGbGqs0
>>74
.net系どっぷりで、マクロの使い方忘れてたなぁ・・・
ID:UQcXhafU0 じゃないけど
参考になった。感謝。

極端な話、モデル専用物で用意できれば良いとかの例には
小手先で十分すぎる。

76名無しさん@お腹いっぱい。:2010/10/15(金) 00:41:18 ID:I9aGbGqs0
すまん、メモ

テクスチャ配列使えないから、冗長な記述どうしようとか思ってたけど
>>74 応用でさくっとできた、ほんと感謝。

7769:2010/10/15(金) 02:27:00 ID:tPk2y.A.0
そうか、マクロって手がありましたね
サンクス

78名無しさん@お腹いっぱい。:2010/10/15(金) 21:44:34 ID:puFeMUdA0
しかしclone.fxってすごいですね
立体マップエディタ的なことができそう

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
優しくしてね///


新着レスの表示


名前: E-mail(省略可)

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

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

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

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