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

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

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(省略可)

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

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

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

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