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

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

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


新着レスの表示


名前: E-mail(省略可)

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

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

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

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