スポンサーサイト

--.--.-- *--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MMDのクローン

2010.07.12 *Mon
萌え木の活動の一環として、樋口優氏のMMD用のデータを再生できる環境を製作中。
まだ問題はあるものの、一応踊るところまではできた。ただ、まだわからないところがあり、ここでひと通り情報を整理しておきたい。

1. まず、座標系について。MMDはDirectXでレンダリングされているため、OpenGLとはZ軸の向きが反対になる(OpenGLは右手系)

2. レンダリングは非常に不思議。テクスチャを用いたToon Shading(普通はMMD起動時に読みこまれる)と、通常のライティングモデルを両方用いている。通りすがりさんのページによるとmaterialはmirror color(環境色(ambient))とspecularとdiffuseだけがあるように書かれているが、これをそのままOpenGLのマテリアルとして入力してもうまくいかない。少なくともmirror colorとambientは意味として食い違っているし、そもそもこのmirrorとdiffuseをそのまま加算すると値が1を超えてしまう。Toon textureと、曰くmaterialの値をどう今後すればMMDの色になるのだろうか。
現状では、確かToon textureの値にdiffuseの値をかけてToon texturingで貼りつけ、specularは普通にシェーディングを使うような形だったような気がする(よく覚えていない)。でも微妙に色が違う。

122023682.jpg


3. 各ボーンには、Quaternion用の4つの数と、位置のオフセットの3つの数、それと、ボーンの根元の位置が入っている(他にもあるけど)。Quaternionとオフセットの値は、親ボーンからの相対値になっている。まずQで回転したのちに位置をオフセットする(多分)。一方、ボーンの根元の位置は絶対値であるので注意。

4. IKについて。各ボーンには、そのボーンがIKの影響下にあるかどうかの値が入っている(IK parent bone)。また、表示用じゃなくて、IKの位置の計算のためだけにボーン構造を持っている。それとは別に、IKセクションがあり、モデルの中に含まれているIKをリストしている。この三種類の情報は、必ずしも一貫性があるとは限らない。ここが謎なところ。
例えばデフォルトで入っている初音ミクのデータの場合、ボーンのうち、IK parent boneが「左足IK」を差しているものは左足、左ひざ、左足首、左つま先の4つのボーンなのだが、「左足IK」に対応するIKの情報として、この影響下にあるボーンの中に「左つま先」は含まれていない。左つま先のボーンは、もう一つ他のIK「左つま先IK」の中に入っているのだ。しかも私が持っているアニメーションデータでは、このIKには何の情報も入っていないにもかかわらず、足の関節が伸びたりするのだ。よくわからない。

5. MMDでは、IKの影響下にあり、かつ「ひざ」という名前が入っているボーンは、前方向にしか曲がらないようにできている。この「前方向」とは、モデル全体のセンターボーンの前方向などではなく、IKの最も元にあるボーンのZの向きである(間違っているかもしれないけど)

6. IKのターゲットの位置は、IKの名前に"先"という一文字を足した名前を持つボーンに含まれている。もしくは、IKの位置のボーンの、一つ子供だと解釈されているのかも。他のデータで試してみないとわからない。

7. IKのターゲットの補間は、線形補間。(各フレームを保持するのでなく)キーフレームでアニメーション情報を保持するとするなら、IK計算はリアルタイムに行うしかない。

...とまあ、こんなわけで、MMDのフォーマットが理解できなくて結構苦しんでいたのだが、一応動きはしたのでビデオを以下に。
物理計算と表情の変化はまだ実装していないので髪の毛がかなり変。これは次にやるつもり。



あ、あと、ボーンのweightも使っていない。

追記:極北PさんがIKについて分析された結果を無断転載させて頂きます。すばらしいです。:

●[IK]
IKリスト : IKボーンとして機能するボーンの一覧。

IK(数値) : 対応するボーンIndex
Target(数値) : IKボーンの位置にこのボーンを一致させるようにIK処理が行われる
IK値1(整数) : IK処理での計算再帰回数
IK値2(実数) : 一回のIK計算での制限角度
影響下ボーンリスト : IKの影響下にあるボーン一覧

※各関連値は[ボーン]側で設定されている項目もあるが、IKリストはボーンリストとは独立して必要な模様。

※IK処理においては、特定の制限角度がボーン名に従ってMMD側で調整されるようです。
例:ひざ→縦(X軸方向)にしか稼動しない


○IK値について
IK値によるIKの制御パラメータの関係について、大体以下のようになるようです。

IK値1, IK値2
小, 大 : IKのLink先ボーンに強く依存する=先だけよく曲がる(系列が短い場合はこれで十分)
大, 小 : IK系列全体で曲がるようになる(しなりが強くなり直線形状になりやすい)

大, 大 : 比較的、(小, 大) と同様の傾向を示すと思われる。
小, 小 : 非常に曲がりにくくなり、IKに対する追従も悪くなる

尚、IK値2は1.0でほぼ180度程度(おそらく稼動範囲の限界?)まで可能なようなので、
多くのボーン系列を持つような場合は、非常に小さな値にする必要がある模様。

IK値2による制限はIK影響下ボーンが下位に進むにつれ(ボーン列的には根元に行くになるに従って)、
制限角度が拡がっていく仕様なので、多関節の場合、先端付近より根元の方が比較して大きく曲がるようになる。

※IK値1は最大で256までとなります(MMDの内部動作より)。できるだけ少ない数の方が変形時の負荷が減少します。
スポンサーサイト
COMMENT : 3
TRACKBACK : 1
CATEGRY : 実装

昨夜は

2010.06.09 *Wed
ソニー系の萌え的な人々と飲んだ。

楽しかった。楽しかったなんてもんじゃなかった。
正確には、楽しかった以上に、これから自分が変わっていける(あるいはスレる前の時代に戻っていける)感覚があって、それが嬉しかった。

なにせメンバーが素晴らしかった。私より10歳程度上の方が最頻値だったと思うが、彼等は私がパソコンにはまって夢中になっていた頃、ハードやソフトや雑誌を作る側にいたのだ。あの時代、私が手にとって読んだり、手をふれていたハードのすぐ後ろにいた人達。だから刺激的だったし、そんな彼等が、今は初音ミクやその他いわゆるアキバ系のカルチャーにはまっている。パソコンいじりをしていた人々と、サブカルの人々は、全然違うようで実はほとんど同じコミュニティなのだ。(前から知らないではなかったけど、ひさしぶりにそれを強く再認識したのであった) 自分も片足をつっこんでいるし、波長が合って増幅されるのは当然ともいえる。

プレゼントまで頂いてしまった。初音ミク Project DIVA。音ゲーは苦手なんだけど、これはいい。曲のクオリティと、後ろで流れているグラフィックのクオリティが半端ない。グラフィックの方はゲームを遊びながらなのでゆっくり観てられないのだが、余裕がある時に観ると、普通のPVみたいに注意深く作られていることがわかる。タイミングを合わせるためのアイコンと、ミクのダンスの動作(の位置)がシンクロされているところもある。観るだけのモードもあるので、クリアしたらあとでじっくりみてみよう。

ミクに恋心が芽生えつつある。
COMMENT : 1
TRACKBACK : 0
CATEGRY : 未分類

Kindleに英辞郎5

2010.04.18 *Sun
最近勉強に洋書を読まないといけなくなり、小さくて本の購入も辞書引きも簡単にできるということで、Kindleをついに買ってしまった。自分の専門の論文なら読めるけど、一般書は難しい(謎)。
なお、XperiaとPSPとパソコンをすでにカバンに入れて持ち歩いているので、軟弱な私はでかいKindle DXではなく、小型の方(いわゆるKindle2)を買うことにした。(下図左の方。ちなみにKindle2という名前では売っていない)




で、これに英辞郎を入れようとしたのだが、Web上にいろいろ情報はあったものの、一箇所に全部の情報は載ってなかったので(あるいは、載っていても動かなくて他の情報とあわせないといけなかったりして)はまったので、一応ここに情報をまとめておく。基本的にはこのページに従った。問題が起こったのは、英辞郎が書籍の最新版(英辞郎第5版)で、漢字コードがunicodeだったため。
あらかじめ言っておくが、このページに従って作業を進めた結果、なにがしかの事故(Kindleが壊れたとか)が起こっても責任は取れません。

1.必要なソフト3つ(英辞郎、ActivePerlMobipocket Creator)をインストールしておく。

私が買った英辞郎5はこれ。より古い英辞郎の場合はエンコードが違うので、このページに従えば多分十分。



ちなみに、英辞郎mobi版というのもあるらしい。どうやって手に入れるのか知らないけど、これさえあれば一番面倒なところををすっ飛ばしていきなりステップ10に飛べる。

2.辞書ファイルを「1行テキスト形式」で取り出す。
英辞郎5(PDIC Unicode for EIJIRO V)を立ち上げて、File⇒辞書設定<詳細>で出るダイアログの使用辞書一覧で、「EIJI-118.dic」の上で右クリック、「辞書の変換」を選ぶ。出てくるダイアログの「変換先辞書」に好きなファイル名(例えばeijiro.txt)を入れ、「変換先ファイル形式」で「PDIC一行テキスト形式」を選び、「OK」を押す。するとeijiro.txtが出来上がる。

3.このファイルのエンコード形式をSJISに変換する。SJISでなくてもいいかもしれないが、とりあえずperlで素直に読める形式じゃないとダメ。私は手元にxyzzy(ここの「Emacs Likeな Editor. LISP interpreter 内蔵」からダウンロード可能)があったので、これでファイルを読み、ctrl-x,ctrl-k,fでコード変換モードにした上でsjis[enter]でsjisに変換し、ちょっとエディット(例えばspace, backspace)したのちにctrl-x,ctrl-sでセーブしてsjisに変換した。nkfなんかも使えるかもしれない。

4.次に、sjisにしたファイルサイズを小さくする。ここの「このスクリプト」のリンクをたどってダウンロードできるchujiro.LZHを展開して得られるeimin.plを、指定どおりに使えばよい。具体的には、コマンドプロンプトで次のように入力する。

perl eimin.pl eijiro.txt>chujiro.txt

なお、eijiro.txtのエンコードがよくないと、chujiro.txtのサイズが0になる。

5.作ったchujiro.txtはsjisなので、これを英辞郎で読ませるためにまた変換してBOM付きのutf16leにする。xyzzyならctrl-x,ctrl-k,f, utf16le-bom[enter]したのちに上書き保存である。

6.これを英辞郎で読み込む。File⇒辞書設定<詳細>で出るダイアログで、右側の「使用辞書一覧」の中で右クリック⇒既存辞書の追加、で出るファイル読み込みダイアログで、ファイルの種類を「テキスト(*.txt)」で、コード変換済みのchujiro.txtを読み込ませる。PDIC用の辞書じゃないから変換する?みたいな事を聞かれるので「はい」とする。次のダイアログでの「変換先辞書」の名前は適当でよい。変換中にたまに止まって質問ダイアログが出る(私の場合はバンドエードとかで--;)が、これは「以降自動処理」で問題なかった。

7.読み込んだchujiro.dicを、.csv形式にして出力する。これは、chujiro.dicをクリックしたのちに右クリック⇒辞書の変換、で、変換先辞書を「chujiro.csv」に、変換先ファイル形式を「csv形式」にして出力すればよい。

8.ここからは原則こちらのページに従う。eijiro117-15.csvはchujiro.csvに読み替える。具体的にはEijiro117-LinkedEntries.plとEijiro117.csv2html-v3.plを落とした上で、コマンドプロンプトで

perl Eijiro117-LinkedEntries.pl chujiro.csv UTF-16LE >linked.txt
perl Eijiro117.csv2html-v3.pl chujiro.csv Eijiro117-WIK:7-ITAI UTF-16LE > chujiro.html

とする。(二行目のEijiro117-WIK:7-ITAIというのは適当な文字列でもいいかも)

9.次に、最初にインストールしたMobipocket Creatorを立ち上げて、以下のようにする。

i) Add Fileから、chujiro.htmlを読み込む。
ii) Book setting から、Input languageをEnglish、Output languageをJapaneseにする。した後にページ下の方のUpdateボタンを押すのを忘れずに。
iii) MetadataでMain subjectをDictionariesにする。eBook TitleはChujiroに、Authorを適当に(例えばALCとか)しておく。再びページ下の方のUpdateボタンを押す。
iv) 右上の方のBuildボタンを押す。Compressionは No compressionでよい。EncryptionはNo encryptionにする。CompressionをHigh compressionにすると恐ろしく時間がかかる。(今やってるけど、ちゃんとできるか不安)

これでChujiro.prcができる。フー。ここまでできればあとは簡単。(ただしKindleが壊れるとすれば次のステップ)


10.Kindleでユニコードが表示できるようにする。
まず、Kindleのバージョンが古い場合は最新の2.3.3にする(うっかり2.3でやってしまったところうまくいったけど、お勧めしない)。アップデータはAmazonから落とせる

2.3.3になったら、ここの「新しいフォントはっく」にある「Kindle 2 (Global Wireless用) インストーラ」というリンクからファイルをダウンロードし、HPに書いてあるとおりにやればインストール完了。ここは簡単だけど、Kindleにとっては一番危険なところ。また、将来のアップデートを行うには、ここでやった変更をアンインストールしてからやらないといけないらしい(アンインストーラは、Kindle内の/hackに置かれる)なお、USBをKindleから抜く場合はいきなり抜かないで、ちゃんとUSBをストップしてからやらないとダメだそうだ。

11.Chujiro.prcをKindleのDocumentsフォルダに入れる。こうしておいてKindle側でHome→Menu→Settings→Menu→Change Primary Dictionaryで、Chujiroを選べば完了。ちゃんと単語にカーソルを合わせたときに和訳が出るかを確認。


...というわけで、結構面倒くさいのですよ。大変だったけど、喜びもひとしお。これからは洋書を読むのがちょっと楽になるはず。

なお、日本語のフォントはKindleの/fontsの下にあるSans.ttfとSerif.ttfを他のttfに置き換えてリブートすればすきなのが使えるらしい。ただしこのページの「フォントについて」にある注意を守ったほうがよさそう。うっかりttfじゃなくて、ttcにしちゃって大変になった人の報告がある。ああ怖い。怖いので私には変える勇気が出てない。
COMMENT : 3
TRACKBACK : 0
CATEGRY : 勉強

AT-FOMU展開催中です!

2010.03.25 *Thu
imposs.ible.jpからの転載です:




久々の更新になってしまいました。AFO大和田です。

現在、横浜野毛Hana*HanaにてAT-FOMU展というのを開催中です。首都大学の学生さんに混じって展示しています。

AFOメンバーは2月に渋谷でやった三人の研究者展で展示したものや、その後新たに作ったものなどを展示しています。Andre君はSound BugsやBlack hole pen、Who Cares?など、藤木さんは2D.3D.やOutflowなどの作品です。

首都大学の学生さんたちの作品のボリュームはすごいです。完成度も高いです。詳細は会のHP(ブログ)をご覧ください。

私はトイレと、ポップコーンのはじける音を使って遊ぶシューティングゲームを展示しています。どちらも今回はじめて出すものです。

トイレの方は、2月と全く違います。前回は笑わせたい一心で作っていましたが、今回は笑いを取りに行っていないので全く笑えるところはありません。その代わりに実用性重視でやってます。設置も簡単です。一家に一台、ぜひ!






シューティングゲームの方はとある理由で萌えテイストで作りました。かなり好評です(笑)




桜木町の駅からのアクセスが最高にいいので、ぜひお越し下さい!今度の日曜まで、あと三日間です!

開催概要

展示会名:「ATFOMU」展
会場:野毛 Hana*Hana(桜木町)
会期:2010年3月23~28日 10:00 - 18:00 入場無料
地図:http://www.noge-hanahana.org/hanahanamenu/access.html

自分のだけ写真いれてごめんね>Andreさん、藤木さん
COMMENT : 0
TRACKBACK : 0
CATEGRY : 宣伝

細野晴臣 X Wisut 3時の子守唄

2010.03.15 *Mon


Tribute


関係ないけど最近背中が痛いのはバイオリンを弾いてないからだろうか。
展示会が終わってからなんだけど。

>ドラさんごめんなさい!連絡します!(ブログで書くくらいならメールしろよ、って話>自分)
COMMENT : 5
TRACKBACK : 0
CATEGRY : 音楽関連

プロフィール

Author:大和田 茂


元IT系の研究家。現在はゲーム/玩具作家をめざしている。


Stud Hungering for Intense Gratification and Erotic, Rapturous Undulation


Get Your Sexy Name





Twitter Updates



    follow me on Twitter




    最近の記事



    最近のコメント



    最近のトラックバック



    月別アーカイブ



    カテゴリー



    ブロとも申請フォーム

    この人とブロともになる



    ブログ内検索



    RSSフィード



    リンク

    このブログをリンクに追加する



    Copyright © 大和田茂ブログ All Rights Reserved.
    Images from ふるるか Designed by サリイ
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。