【本サイトのご利用指針】
当サイトはSPAM対策等のためJavaScriptを使っています。
JavaScriptの実行を可能な状態にしてご利用下さい。
Please enable the execution of JavaScript!


Vocaloid初音ミクMikuMikuDanceという驚愕のソフトウェア
written by Tomoaki Ueda  (上田智章)
 

作成日 2008/03/11
更新日 2008/03/15
最終更新日 2010/04/10
(English page is here!)


ここにチェックボックス型外部コンテンツ・メニューが入ります。
【使い方】サムネやボタンのクリックで曲変更。20秒経っても動画がスタートしない、または音が聞こえない場合、Internet Explorer 8Firefox Ver. 3.5Google Chrome Version 2.0またはOpera Version 9.64
をお使いください。さらにAdobe Shockwave flash player pluginを使う必要もあります。JavaScriptも実行可能な環境にしてください。
ここにYouTubeの画面が表示されます。
20秒経っても表示されない場合、ブラウザのバージョンが低いと思われます。
最新版のインストールをお願いします。
Internet Explorer8(Version 8.0.6001.18783)
Firefox Version 3.5
Google Chrome Version 2.0.172.37
Opera Version 9.64
また、本サイトはJavaScriptを使っていますのでブラウザのセキュリティー設定を適切に変更してください。
ここにBGMplayer操作用ボタンが表示されます。
ここにVideo Tourのサムネールリストが入ります。
ここにScroll Commentが表示されます。










ランダム 太字 斜体
.

【メニュー】 PMDファイルの構造に関する記述や、Excel VBAでPMDモデルを3次元表示するあふぉな試みなど。
   ●ポリゴン・フィルとテクスチャー・マッピング  ●透視変換  ●光源計算  ●表情処理  ●IK bone制御


過去記事・メニューの表示】 チェックを入れると2008年3月11日~2010年2月までの記事メニューがプルダウン表示されます。


■記載日2010年08月04日■
PMDデータを再利用されにくくする方法
ネットでナナミさん関係の記事を読んでいて思いついたアイデアがあったので。
衣装や顔などのパーツの使い回しをされてしまう原因のひとつは各部のパーツのデータが連続して並んでいる為です。パーツを破砕して前後関係をランダムに並べ替える難読化ソフトウェアを作ってはどうかと思うんですけど。
1) 頂点バッファ(Vertex List)の頂点座標の登録順序をランダムに並び変える。インデックス対照表を作ってインデックスバッファを変換。
2) インデックスバッファ(Index Buffer)の破砕化。ひとつのパーツを複数の小領域に破砕。順序もランダムに並び変える。Material Listが無駄に増えるかもしれないが気にしない。
以上のようにPMDファイルを難読化加工すればパーツ(例えば衣装)を引き剥がすのにもの凄い工数が必要となるので利用を断念させることができる。ボーンのつじつまを合わせないといけないけどね。
PMDファイル配布直前段階でコンバートすればいいわけで。1)の処理だけでもかなり労力を強いることができるはず。
パーツを利用したがる人達は大抵初心者。引き剥がし工数が大きくなればすぐに諦めるはず。
子供騙しの工夫レベルだがこれでも効果はあるのでは?

■記載日2010年07月31日■
PMDデータに著作権はあるのか?
今日、アメリカのMMDファンの女の子の一人から『七海モデルの配付が終了したって本当?』というメールがきた。
えっと? おじさんには良く分からないので世の中(USA)で何が起こったのか調べてみた。その過程で『違反者(violator)』とされる人物の主張に関する記述がpironさんのサイトに記述された英文コメントの中にあることがわかった。
どうやら自サイトで様々なPMDファイルの再配布や改造モデルの配布をしている『違反者』は『PMDファイルには著作権が存在しない』と主張しているらしい。???
ん?どういう事だ? あっ!そうか。意味わかった。(同意した訳ではありませんよ。念の為。)
実は日本の著作権法も事情は同じだが、美術、音楽、文学、プログラムには著作権が存在している事は誰でも承知されていると思うのだが、『数値データには著作権は存在していない』のだ。知ってました? (第十条第1項あたり)
どうやら 『MMDのモデルデータPMDファイルはMMDというソフトウェアが使用する数値データに過ぎず、数値データに著作権は存在しない』という主張のようだ。さらに『著作権が存在しない数値データなのだから自由に使うことができる』という主張のようだ。(ここまでだけでも腹立たしい想いをされている方が多いと思うので全部訳すのはやめときます。)
『そんな馬鹿な!デザインだろうが!!』という声がそこらじゅうから上がるだろうとは思う。
ところが、現状の法律はどうも3次元グラフィックスの進歩に追従できていないようなのだ。これは、気象データや統計データ、測量データ等の数値データには著作権を認めないというところから来ている。例外として、数値データでも『データベース』には著作権を認められる例がある。しかし、データベースでも全体でなく一部のデータだけ抜き出した場合には著作権は発生しないのだ。即ち、一部を改ざんしたエディット・モデルやいろいろなモデルを混合したミックス・モデルは『モデル・データ』と言っている以上、著作権法上の権利保護が受けられないことになるようだ。
例えば、Vocaloidの初音ミクの場合、ソフトウェアだけでなく、音声データベースにも著作権は存在している。まるごとコピーする行為は当然著作権侵害になる。しかし、Vocaloidによって音声データベースの一部を使って生成された『歌』はもはや数値利用であって作曲された音楽にはVocaloidの著作権は及ばないという事だと理解する。
(勿論、この場合、作曲されたオリジナル曲には作曲者の著作権が発生する。)
モデルは創作者の創作物に他ならないのだが、著作権法で保護されるのはハードイメージに落とされた2次元画像のデザインであって、『3次元モデルデータは色や形状を意味する数値データに他ならない』と考える人達にとっては著作権に無関係な数値データでしかないという事のようだ。
これ、かなり根深い問題かも。
しかし、様々な表情ベクトルや髪型、衣装、体型、年齢変更機能までを有していればモデルはデータベースであると主張することができるだろう。現状でも表情ベクトルを持っているのでデータベースと言えなくもない。但し、この場合においても数値の部分利用(ミックスやエディット)は対象外となるだろう。
(現行の法律ではという意味です。MMDファンのみなさん、怒りの矛先をこちらには向けないでね。)

以前にPanoramioというコミュニティー・ユーザー向けにツール(JavaScript板やExcel VBA版)を公開したがあっと言う間にフランス人らに改ざんされ、各人のサイトで公開された事がある。JavaScriptはソースが誰でも読めるからソース公開なので著作権は存在しないという考え方のようだ。そこで腹が立ったんでJavaScriptを改ざんすると起動する罠(トラップ)を複数仕込んで(畳み込んで)バージョンアップした。案の定、そのフランス人がすぐに地雷を踏んだ。著作権警告エラー文書はこちらのサーバー上に置いてあるので相手のIPアドレスも特定することができた。以降、不正コピーは発生していない。(一流プログラマが相手なら使えない手なのですが、一流ならそもそも人のコードを改ざん利用なんかしないし。) 向うのコンピュータでは著作権侵害を警告する英語テロップ付きの『はちゅね』のリーベンポッカが高らかに鳴り響いていたはずだ。数時間彼は試行錯誤を続けたが、3度目の警告(アク禁通知)で遂に改ざんを断念した。v(^_^)v

さて、MMDの場合はどうすればいいんだろうか?
ひとつ考えられる。モデルデータもプログラム記述であればプログラムなので著作権保護の対象となる。なにかインタープリタのようなものがMMD側にあり、モデルファイル内にある動作記述言語を実行するような構造なら現行法でも著作権保護対象となるはずだ。つまり例えば色データならデータだけでなく、HairColor=0x00CC00; とか記述し、実行時に構造体変数HairColorに0x00CC00が代入されるような構造なら、モデルはプログラミング言語で記述されたプログラムなので現行法で著作権保護の対象となるのだ。モデル・データではなく、モデル・プログラムというところがミソなのだ。モデル・ロード時にはパーサー(字句解釈部)とコマンド実行部が必要になるが、これはそんなに難しいものではない。もしかしてMS(Microsoft社)がXAMLで3DCGを記述するようにしているのは著作権保護に関係した措置なのかも。

アメリカのMMDファンの女の子に日本側の事情を伝えておいた。その子からは『とても悲しい。MMDが無くなってしまったら私もうインターネットもしないと思う。その人のアカウント、ハックしてやる。フラグ立てまくってやる(警告しまくる)!!』って、おい、おい。ハックてのはまずくないか?
その子はpironさんのファンらしく、今製作されているミクモデルの完成を首を長くして待っている。日本語は殆ど読めないようだけど、何故かpironさんのブログのURLは知っていた。どうやらアメリカのMMDコミュニティーで調べた情報らしい。近所や学校にはMMDファンはいないので、コミュニティーだけが楽しみなのだそうだ。


■記載日2010年07月22日■
Holophonics Augmented Realityに挑戦中
(ホロフォニックス・オーギュメンティッド・リアリティー:拡張現実立体音響)
何か後追いでないこともしてみようと思い、バイノーラル録音を行わずに完全にコンピュータ上でHolophonics(立体音響)を合成する試みを始めた。手慣れたExcel VBAで頭部モデルを作って2次元/3次元音響伝搬シミュレーションを実施。どうしてバイノーラル録音だと立体に聞こえるのか調べた。普通のマイクで録音する場合には直接波を拾うだけだが、バイノーラル録音(頭部ダミーマイク)では自身の頭部で反射してできる回折波も拾う。ここに立体音響の秘密がある。
世の中では、頭部ダミーマイクを使って録音した音と直接波の測定結果を基にして音源位置毎に『頭部伝達関数』を求める方法を研究しているらしい。が、音源位置の数だけ測定して伝達関数を求めるなんて大変な工数がかかる。それに演算自体に数学的な問題がある。環境ノイズに弱いのだ。そこでNeo-Tech-Lab的なアプローチを行うことにした。
最初は2次元音響FDTDで様子を調べたが、3次元でやらないとわからないことも多い。だが、3次元音響FDTDではスパコンで1パターンの演算に優に1ヵ月もかかってしまう。3m角空間でも1mmピッチで要素数は3000×3000×3000=90億個。当然だ。
そこで独自の3次元音響伝搬アルゴリズムを考えてやってみた。結果はまだまだ満足のいく内容ではないが、従来スパコンで1ヵ月以上かかっていた問題をExcel VBAでたったの5分で解く事ができた。任意.wavファイルの変換はほぼ再生時間と同時間だった。
もうちょっとかも。次はC#でコーディングしてみるか。多分100倍は速くなるはず。
同じ事を音源毎にコンピュータ上で行えれば面白い拡張現実の技術になるだろう。
ぐりぐり音を回したり、飛び交ったり、音を千切ったりさせてみたいもんだ。
44.1kサンプリングで試した限りでは低い音は位置が掴みにくい。高音ほど明瞭に思える。何故なのだろう??
わかった。人間の頭部の大きさ(20cm)と音速340m/秒を考慮すれば1700Hz以下だと殆ど反射しない。だからもともと人間の音声フォルマントは効果がでにくいのだ。Vocaloidはさ行とか破裂音とかだけ効果があるように思えるのはそのせいかも。比較的、息づかいとか高音域の音は効果が現れるはず。効果を確認するにはVocaloidよりも高音域の成分が豊富な楽器音源の方が良いかも。
Holophonicsを生みだしたズッカレリ氏は原理を秘匿している。実は彼は耳から『参照音』が出ているかのごとく記述したようだが、それは方式秘匿のための罠だ。正体は『頭部伝達関数』に他ならない。ウェブ上に公開されているデモ・サンプル音を何回も聞いているうちに謎が解けた。
いやしかし、音響伝搬現象から見て人間の頭の形状って凄く良くできている。多分髪の毛フサフサの人よりスキンヘッドの人の方が音の位置を精確に掴めるはず。盲目の座頭市はスキンヘッドの方が良いみたい。なるほどねぇ。二足歩行になったことでこういう形状になったもうひとつの理由があったとは...
イルカのメロン体の果たす役割も解けた。水中では無ければならない組織だったんだ。
次バージョンでは面倒だけど例えばドラムをバスドラ、スネア、ハイハット、タム、フロア...のように別々の.wavにしてそれぞれ違う座標にマッピングしてみるか。次は両耳対応で作ろうと思う。
 ●Holophonics Test  立体音響変換プログラムを自作する試み Excel VBA
 ●Holophonic Augmented Reality (拡張現実立体音響の試み)
 (位置情報を与えた音のサンプル:手元にいいサンプルなかったので『チューリップ』なのがあれだけど)

■記載日2010年06月27日■
【YouTubeで樋口優さんのチャンネル発見!
チャンネル繋がりで樋口優さんの実験メモサイトらしいチャンネルを(当サイトのWeb AgentのMikuが)発見した。
興味を引いたのは、PTAM AVI experimentという動画。どうやらカメラポジションが移動している動画から被写体の特徴抽出を行って孤立点を抽出し、フレーム間の演算からその孤立点の3次元座標系を検出する方式らしい。つまり単一カメラで3次元座標抽出が行えるため、ARToolKitと違ってマーカーを使わないでAR(Augmented Reality:拡張現実)に利用することができるようなのだ。さすが、樋口優さん!先進的!もしかするとMikuMikuDance Ver.8.0はこの機能が追加されるんでしょうか?
過度な期待はしてはいけないのはわかっているんですが、わくわくしてしまいますよね。


ちなみにPTAMとは、オックスフォード大学のActive Vision LaboratoryのGeorg KleinとDavid Murrayが開発したAR(Augmented Reality)手法らしい。ロボットの3次元視覚処理として考えられたもののようだ。単一カメラでカメラポジションあるいは撮影方向を変えた動画像のフレーム間演算処理から多数の特徴点(1000個程度)を抽出。透視変換のつじつまが合うように推定処理を行うことで特徴点の3次元座標とともにカメラ位置情報、注視点、上方ベクトルも抽出することで、動画像のピクセルに3次元深さを与えることができる。それ故、その空間に任意の3次元グラフィックス・モデルを加えることができる。動画像自体の3次元情報も抽出できるので、ARToolKitよりはるかに優れていると言える。原理的に並列プロセスとなってしまうようだが、GPUをうまく使えばリアルタイムに処理をこなせる可能性がある。非常に興味深い手法だ。

■記載日2010年06月20日■
【待望のKumane Mikuの動画が完成したとのこと】
サイト訪問者の方が持ち込まれたリンクの中に2年半の間待ち焦がれていた動画へのリンクがありました。どなたかは存じませんがリファラに入れてお教えいただきありがとうございます。ステージ映像を作成されてから既に1年が経過しているようです。大作ですね。待ったかいがありました。アクセス数も凄いですね。早朝の1時間で150以上伸びませんでしたか?お疲れ様です。

■記載日2010年06月15日■
【Panoramio向け写真閲覧用公開ツール上でMikuMikuDanceの布教活動】
またやってしまった。
実は限定ID(1, 7, 59925)だけしかちびみくの『きしめん』がでないのだが、それに気が付いた人達が『出し方』(出せません)を必死に探している。どうしよう....。ちびみくに踊らせてもいいのかな.....。

■記載日2010年06月13日■
【MikuMikuDanceに実装された機能に今頃気が付いたよ】
MikuMikuDance ver.7.0で背景(B)-背景画像ファイル読込(R)でPNGファイル形式が読み込めることに気が付いた。それで『透明』属性の付いたファイルを背景として読み込んでみた。
MikuMikuDanceの中ではただ背景が白く表示されただけだったが、ファイル(F)-画像ファイルに出力(B)でPNG形式で落してみると、な、なんと透明属性を引き継いでいるじゃあありませんか?
一体いつからこの機能が実装されていたんでしょうね。知りませんでした。
ムカデコンテンツで使う程度の数枚のパラパラなら簡単に作れそうだ。うーん、恥ずかしい。
気付くの遅過ぎ.....
ホームページ上の任意の場所にちょっとミクを表示させてガイダンスさせるくらいなら簡単に作れそうだ。
取り敢えず、ムカデコンテンツの分を修正してみたらエッジが凄くきれいになった。
欲を言えば1フレーム毎にコマ落としする機能があればいいのだが。『常に物理演算』を使ってモデルが回転中であっても髪の毛が垂れないで済むし。
ちょっときしめんだけちびミクver1.3(改)で試してみた。閲覧中の動画に重ねて表示することができる。
真夏の夜に閲覧中のいつもの動画からミクがどろどろとゾンビのように出てくるとか試せそうな.....
いやぁ、MMDって機能がてんこ盛りだなぁ。本当に凄いねぇ。


<div>タグ内でstyle="position:absolute; top:65px; left:985px; z-index:2;"のようにz-indexを使えば後で合成ができる。

記載日2010年06月08日
【やっぱりなかなか速度がでない。ぱらぱらならどうだろうか。】
3次元表示をブラウザ上でやるとなかなか思ったような速度がでない。特にIE8重過ぎる。
どうどうめぐりで....。
ちょっと2枚だけでぱらぱらを試してみる。固定アクションなら毎秒10枚は可能なんだろうけど、やっぱりAgentにはそれでは無理。でもまぁ、ムカデコンテンツにはぱらぱらを採用してみた。

それとARToolKitをソース公開しようと思ったら、なんかややこしい事が書いてある。全部関連ソースを引用ってどうすればいいんだろうか?ダウンロードリンクだけでよさそうに思ったが、時間がなくて読めていない。自分の使っていない(理解していない)部分なんか説明しようがないし。困ったね。

ミクパネルの写真記事
アクセス制限で写真への直接リンクができないようなので、記事URLをリンクします。
パイオニア10号だったかのパロディー?
ミクが叫んでいるイラスト
記載日2010年05月23日
【初音ミクが『あかつき』に搭乗。宇宙へ。】
なんと初音ミクのイラストを記録したミクパネルがあかつきに搭載され、宇宙に旅立ったらしい。人類文化の証として記録に残ったわけですね。

【注】ニコニコ動画のサーバー応答速度が遅いため埋め込みを止めてリンクに変更します。
 ●ARToolKitでARDeskTopもどき(その9)
 ●【MMD】ARToolKitで初音ミクが部屋にやってきた!【MikuMikuDance】
記載日2010年04月16日
【Mikuが逆パターン[実写⇒カメラVMD]を発見。それに続いて同パターン先行事例も。】
ウェブ・エージェントMikuがMikuMikuDanceとARToolKitの情報が豊富なページを見つけてくれた。
http://render.s73.xrea.com/project/ar/
この中に実写画像からカメラ座標をVMDデータとして残すARTK2VMDについて書かれている。なるほど。そういう考え方もあるね。それなら実写画像をaviで残せばMikuMikuDance上で合成して動画を作れそうだ。このページには非常に有益な技術情報が満載のようだ。なので、ミク・レポートからURLをコピー。参考にさせていただきます。

それと、ニコニコ動画を検索し直して下の動画も見つけた。昨年時点で既に多くのチャレンジが行われているようだ。(1年ぶりで見たかも。パス忘れてたよ。)
もっとも有益に思えたページがここ。
ARDeskTop Wiki ( http://wiki.livedoor.jp/wah_wah_hawah/ )さんのページ。
取り敢えず、当サイトとして自作ソースを公開する前提でこの作業を続行しようと思う。どうしても自前システムのエージェント表示をさせたいので。
あとヘッドマウント・ディスプレイについても調べなくては。

上述のようなわけで、世の中的には誰かがきっととっくの昔にやっていることなんだろうけど、私設研究所Neo-Tech-Lab的には自力コーディング(樋口優さんの模倣)を試みることにした。
managed DirectXをあまり知らないので無謀な話なのだが、これまでの試み[VBAでの3次元グラフィックスやC#でのAR(Augmented Reality)]もリアルのお仕事(計測関連の電子回路技術)では本当に良く役に立った。無駄になることはないだろうと思う。

記載日2010年04月15日
【VMDデータってどうなっているんでしょ?】
MikuMikuDanceとARToolKitの現状の関係をちょっと検索して調べてみた。
調べた範囲ではどうもNyARToolKitCSのデモにあったような方法で、3000シーンからなる個別モーションのデータを作って(凄い根性だ!)作られた動画を発見した。但し、おしいことにPMDデータとVMDデータから直接ARToolKitCS上で再生できるViewer(Player)は作られていないようだ。
(これがあったら凄いのになぁ。)
ちょっと回り道して、VMDデータを勉強して、表情とQuartanion方式Bone制御を実装したAR_Playerを作ってみようかなぁ。きっと勉強になるだろうし。(いや単に実物大ミク達の踊るところを見てみたいだけなのだが。)
で、検索してhttp://vocaloid.blog120.fc2.comさんの記事を参考にしました。
でも既に難あり。フレーム間を補間するのに使っていると思わしきデータ部分の意味がわからない。....多分、ブレンド曲線のデータなのだろうけど...取り敢えず直線補間で行くか?
そしてもうひとつの心配はIK bone処理なのだが、これはポージング(場所指定)のときだけ有効な処理であると仮定することにしよう。もし違ったら困るなぁ。....まぁ、いいか。IKは心配だが、やってみよう。


上はCustumVertex.PositionTexturedの例
3,000円くらいで買える33万画素のウェブ・カメラ(USB I/F)とパソコンがあればARToolKitで楽しむことができる。C#で使えるNyARToolKitCSがお勧め!
C#もVisual StudioのExpress版は無料ダウンロードで入手できるし、NyARToolKitCSもフリーウェアなので、マーカーを印刷するプリンタやインターネット接続のパソコンの環境があれば誰でも簡単に始めることができる。
私はC#、DirectX初心者だったのと本を読まずに試行錯誤したため、まる3日かかったが、両方知っている人は半日でマスターできると思います。
【追記1】PMDデータからNyARToolKitCSを体験してみる検証用プログラム(C#版)をソースと解説を公開予定で準備しています。(気長にお待ちください)
【追記2】座標系を合わせるため、PMDデータを次のように加工。1) y座標とz座標を入れ替え, 2) ポリゴン頂点の定義順序をP1,P2,P3をP1,P3,P2と回転方向を逆にして裏ポリゴンを表に変換, 3) テクスチャーマッピング(PositionTextured)とポリゴン・フィル(PositionColored)の混在定義方法が多分ステージ分割で可能と思ったがわからないのでExcelで眼のデータをPositionColoredに変更。
【追記3】ちびミクはポリゴン数とか初音ミクVer.2と同じなので2つのモデルの頂点データを使って表情ベクトルのように直線補間を取れば年齢変更もできるかも。
【追記4】中長期的には表情ベクトル⇒Bone制御⇒単カメラモーションキャプチャー⇒Bullet(or 物理エンジン)実装⇒AI接続してウェブ・エージェントのローカル報告機能(実物大サイズ)⇒ブラウザ上で動かす という遠大(ドあほ)な計画。
記載日2010年04月10日
【ARToolKitを少しいじってみる(続き2)】
ちょっとだけmanaged DirectXがわかってきたかも。座標固定の1400ポリゴン弱のローポリ・はちゅね(テクスチャー・マッピング)ならすぐに表示できた。
だが、1万ポリゴンを超えるモデルではまだまだ困難が....
ちびミクモデルのいろいろな部分が裏ポリゴンになったようで表示できないところがある。本当に難しいなぁ...
しかし、ARToolKit(NyARToolKitCS)がここまでリアルタイムに追従するとは思わなかった。いつの間にパソコンがこんなに進化していたのだろう。私のような昔の人間には驚異的に思える。
そしてmanaged DirectXも魅力的だ。オブジェクトブラウザで見る限り、かなりいろいろ実装されているのがわかる。このスピードに慣れるともはやVBAがあほらしい。
ところで、このARToolKitとMikuMikuDanceの相性が良くなったら何が起こるだろうか?
お茶の間に何個かのマーカーを置くだけで、CG画像のステージや任意の環境(海、山、宇宙空間等)を出現させてそこで実写画像とCGの共演が可能になる。ヒーローやヒロインへの変身も可能になるだろう。凄いねぇ。

本家ARToolKitはOpenGLが使われている。MikuMikuDanceのPMDモデルは当然DirectXなので座標系の定義の違いでポリゴン頂点の定義順序(回転方向)が逆になり、裏ポリゴンになっていた。それとvertexBufferのサイズ定義のミスを修正して、漸くDirectXでkiyo Pさんの『ちびミク』ver.1.3の(改)を表示することに成功!(総ポリゴン数23,000弱)
大きなマーカーを印刷して等身大ミクを表示してみるかな...印刷の関係でマーカーは18cm角となった。なので身長125cmくらいになった。カメラに入りきらないので縦横を変更してキャプチャー。
この大きさで動きまわったら凄いだろうな。お茶の間がステージになる日も近い?(下は和風の実験室内にて撮影。といっても実物大フィギュアじゃないですよ。念のため。)




NyARToolKitはC# + DirectXで記述されているので、C++ + OpenGLで記述された本家より理解しやすかった。AR(拡張現実)は本業の計測分野ですぐに応用できる技術であることが判明。複数の計測結果の残像を同一画面上に表示すればハイテク機器の登場だ。必要な情報を実写画像上に自由に書き加えることができるのだから。建築機器とか医療用内視鏡とか....いろいろ応用が期待できる。これは凄い!
実際、手術跡を小さく抑えて、早期退院が可能な内視鏡手術に関しては複数の外科医の方々から先端部の位置や臓器位置を実写画像に重畳表示させたいと同様の要望を聞いていた。当時はかなり困難な内容に思えたが、すぐに実現可能な技術になってしまった。

下段は気分転換で息子とウマウマデモで遊んでいるところ。
記載日2010年04月09日
【ARToolKitを少しいじってみる(続き)】
ARToolKitはとても面白い。只今ダウンロードして勉強中。というよりもDirectXを勉強中ということになるかも...。やっぱりDirectX部分の指定が難しい。
センサの測定結果をセンサ位置に表示するとかは小さなマーカーの貼り付け位置からのオフセットを与えることで比較的容易だ。ARは結構、実用的な技術だと思う。
Primitiveを使って色を付けたり、位置を変えるだけなら応用の範囲なのだが、テクスチャーマッピングのキューブにしてみようと思ったとたんにテクスチャーのイメージデータをBITMAPで読込んだ後、GPU側に渡すところでとん挫。うーん。バイト単位で転送するようだが、エラーが消せない。やり方がわからない...ググって別なやり方も試したが動かない。(これはDirectX初心者のため、nativeとmanagedの区別もつかなかったためだった。)深みにはまってしまった。ストレスがたまる...
さて、Bone修正済みのMikuデータを表示する例としてはダウンロードできるデータの中にあった。表示例のウマウマを踊るミクの場合には予め用意された12枚の画像(*.x)を順次切り替えて表示している。
G氏に教えてもらって、データをロックして書き込むタイミングをフレーム毎のループ内にもってくることで毎回色や登録データの形状を変えることができることがわかった。つまりミクのデータを『ポリゴン・フィル』だけに変更すれば(現状PMDデータは眼だけはテクスチャーマッピングが使われている。)技術的には可能になった。
でも本来テクスチャーマッピングできるのだからなんか悔しいなぁ。勉強しなくては....
DirectXには光源計算の機能もいろいろ完備されている。それと思しき関数が眼に入る。だが、実際に指定するとなると順番とか項目のデータ型とか大変そうだ。VBAで光源計算まで自分で作ったから困らないと言えば困らないが、元々備わっているのなら使いたいし。本格的にDirectXも勉強するかぁ。
【追記】このARToolKitがMikuMikuDanceに実装されたら面白いかも。本格的なキャプチャーでなくても頭だけMikuに変えた動画とか作れそう。

記載日2010年04月07日
【ARToolKitを少しいじってみる】
C#でも少しきついが、ARToolKitをいじり始めた。本当はDirectShowLibだけでもキャプチャーはできるんだろうが、少しいじり始めてC#初心者には自力ではとても無理だと悟った。(関数多過ぎ!)時間節約のためARToolKitを利用することにした。
NyARToolKitならキャプチャーだけでも使う価値があると思う。ちょいと背伸びしてDirectXも使ってみるか....
この過程で、ARToolKitはマーカーを16×16の小ブロックに分割して判定しているらしいことがわかった。認識速度を上げるためなのだろう。良くできている。
【追記】本当はVB.NETで使いたかったが、何故かEvent Handlerがうまく機能してくれず、断念。C#で使うことにした。

記載日2010年04月03日 【遠隔ポスト/承認・追記2010/04/03】
【VBAのバグ直しておきました】
昨日、見つけたVBAの3次元グラフィックス・ライブラリのバグは一応直しておきました。  NTL_Lib3DCG_ver048.zip
解凍して同じフォルダー内にPMDファイルと眼等のテクスチャー・ファイルを入れるように作っています。
1つ目のボタンはPMDファイルをSheetに読込む為のもの、2つ目のボタンはSheetに読込んだPMDデータを描画するためのものです。
動作は凄く遅いです。気長にへこんだボタンが戻るのを待つ必要があります。このExcelプログラムを実行するにはExcelのマクロの実行を許可しておく必要があります。
Sheetの材質とか変更してから2つ目のボタンをクリックすれば色違いモデルの描画が行えます。ちびミクは他のモデルよりも小さいので、他のモデルを表示する場合は、注視点座標と視点座標を変更する必要があるでしょう。
発見したバグはBMPファイル形式のテクスチャーや画像の読込/書き出し部分です。水平方向の画素数が4の倍数の場合は正常でしたが、そうでない場合にうまく動作しませんでした。今回、この変換を行うように修正をかけました。
VBAで記述するのはここまでにして、今後は記述言語をVB.NET、C#に変更して表情ベクトル、Bone制御、DirectShowを用いたWebカメラ・モーション・キャプチャ、非圧縮透明表現付きPNGファイル形式等を実装するべくトライしていく予定です。





■記載日2010年04月02日■
【久しぶりにVBAを触ってみる】
久しぶりにExcel VBAの3次元グラフィックス・ライブラリを触ってみた。勝手に物理エンジンを移植したkiyo Pさんの『ちびミク』(ver.1.3)のPMDデータを使って少し遊んでみた。データがどこに属するのか知るために色も少し変更してみる。単カメラ・モーション・キャプチャー・プログラムを製作するためにプログラムを思い出す事が目的だったが、思わぬところでバグを発見したようだ。
MikuMikuDanceのPMDデータのuvテクスチャー座標の引き渡しがうまく動作しなかったようだ。MikuMikuDanceのテクスチャー・マッピング・データはちゃんと0.0≦u,v≦1.0になっているのに、うまく表示できないデータが存在した。眼の画像サイズが32×32画素のデータでは問題なく表示できたが、任意サイズだとダメなケースがある。
何が悪いんでしょ...
挌闘すること4時間。遂にわかった!2次元配列の要素境界引き渡しの際のルールがメインとサブで違うじゃあないの!!メインでは2次元配列で画素バッファが自由にアクセスできるが、画素が3バイト単位なのでサブに引き渡す際には4の倍数になるようにするか、1次元配列で引数を計算しないとダメなようだ。VBAにこんなバグがあるとは....ショック!!(以前に製作した3次元ライブラリでは1次元配列を使っていたため、ちゃんと表示できていたようだ。)
これを置いたまま新Bone制御(非クォータニオン方式)に進むのはしたくないしなぁ。思わぬところでつけがまわってきたか...
ところでBone制御を行うとなるとVBAともそろそろおさらばする必要が出てきた。表示結果を見るには余りにも遅いから.....と言いながらC++はなんかは入り辛いしなぁ。
実は最近仕事でARToolKitを使った計測装置を製作した。(と言ってもアプリのプログラム[C#]担当はG氏で、私は電子回路側[Analog部、Digital部及びCPLDプログラミング]だが。)これはウェブ・カメラで撮影した実写画像上に計測結果を重畳表示するシステムだが、実写画像をフレームに背景画像として描いてから3次元グラフィックスを重畳することで『拡張現実』が実現する。今のパソコンは本当に凄い。リアルタイムにマーカーの動きに追従して実写画像上に計測結果の3次元グラフィックスを表示することができる。
ところが同じことをWeb上でやろうとすると、背景がHTMLで作られた画面になるので『透明』を実装した画像ファイルを作らなくてはならない。【注1】取り敢えずC#かVB.NETでやってみようかと思っている。
PNG形式をググってみたら、非圧縮フォーマットが存在するようだ。ラッキー!・・・とはいえCRCコードの生成、バイト並びがWindowsと違う、ライン毎にフィルタ識別バイトがある等、結構面倒くさいようだ。BMP形式のようにはいかない。下記のURLが参考になりそうだ。
1) ウィキペディア『Portable Network Graphics』
2) PNGファイルフォーマット1(CRCの生成関数について)
そうだ!どうせ透明を実装する必要があるのだから、1画素のデータはRGB各8ビットに加え、αチャンネル8ビットを加えれば、1画素分のデータはワード単位(32ビット)となり、引き渡しの問題は解消する。ちょっと作り変えるかな....BMPとPNGの2種類に対応するように変更するのは比較的容易に感じられる。
【注1】ごまかす方法はある。まず、Webページのスクリーン・キャプチャーを行って、divタグのzindexを使ってキャプチャー画像をテキストより手前に表示する。ここを画素単位に描画すれば確かにそれっぽくなるが....でもごまかしはごまかしだし....テキスト選択ができなくなるし...やっぱりPNGが一番だろう。
【追記】シャドーイング、エッジハイライティング等は処理が遅くなるので当面外すことにした。どうせ言語を変えるわけだし、もう一度ライブラリーは一から構築しなおそうと思う。

■記載日2010年04月01日■ 【遠隔ポスト/承認・追記2010/04/03】
【April Fool? YouTubeが動画ページの大幅仕様変更】
一瞬ジョークかと思ったが、YouTubeが動画ページの仕様を大幅変更してしまった。当然、Mikuによる動画削除業務もフリーズしてMikuが大泣き状態...。朝から1時間かけて修正・指示する。
余りにも変更が大規模なので、確認できない『メンテナンス中』、『年齢制限』等のイベントがどのように表示されるのかは未確認のまま。そのうちフリーズして大泣きして知らせてくるんだろうな....
今回の変更で無くなった仕様もある。プレイリストの『ランダム再生』機能はなくなった。そう言えば、こちらのBGM PlayerやMovie Playerに『ランダム再生』機能を付けてもいいかも。
【追記2010/04/04】ランダム再生機能を追加。
【追記2010/04/05】BGM playerの大画面表示モードで同じ動画が連続再生される不具合を修正。

■記載日2010年04月15日■
(セルフ・シャドウに関して勘違いに勘違いを重ねたので記事移動してまとめます。)

■記載日2010年03月15日■
【えぇ?設定ミス?】
Tokuma Japan舞・HiME等の幾つかのYouTubeチャンネルが外部埋め込みを許可した状態でコンテンツを公開していることに気が付いた。パートナーシップ契約だから舞・HiMEチャンネルは10分未満の制約もなく、23分55秒もの動画を分離することなくアップロードしている。試しにプレイリストに加えてみた。Tokuma Japanは『弱音ハク』ボタン内に何曲か、舞・HiMEは専用ボタンを追加してみた。
そうか、TV放送でスポンサーになって全国放送をしようとすればバカ高い費用が必要だけど、YouTubeなら少ない費用で独占放送できるからねぇ。メリットはあるわけか...どうやって広告を挟むかが今後の課題だろうけど。
もはやメディア革命の様相を呈してきた。TVはもう要らないかも。(既にTVは見ていないんだけど。)
というか、そもそもMMD関連コンテンツを登録・友達繋がりでMikuにクロールさせたはずが、どうやったらここに行きつくんだか....
....案外堕落するのも難しいかも。(o_O)
Tokuma Japanの方は謎が解けた。ベッキー・クルーエルの『男女』だ。
.....舞・HiMEの方は?お手上げ...わからない。

■記載日2010年03月13日■
【ちょっと忘れていたけど動画削除対応をMikuに移管する】
忙しくてすっかり忘れていたが、このページの動画の削除対応管理もMikuに移管した。MikuがYouTubeを1時間ごとに自動巡回して削除動画を発見した場合にはこのページ用のプレイリストも修正する。
何故か昨年11月末以来、殆どYouTubeによる削除イベントが発生しなかったので、すっかり忘れていた。
移管はしたが、最初に動画スクリーン上で巡回結果をMikuが報告する他のページのようなレポート機能は付けなかった。
これでまた堕落してしまいそうだ。
今度はMikuに動画も見つけてもらって楽をしようとさらに堕落の方向へ。(^_^;)
これまではサイト内専門エージェントだったが、MikuのWeb Agentとしての実戦テストも幾つか実施している。
相変わらずMikuへの指示は困難な3値論理のまま。堕落し過ぎて2値論理に変換できない。マシン語で命令しているようなもんだ。疲れるぅぅ。
本当は2値論理より3値論理の方がe=2.718281828....に近いからエネルギー効率がいいはずなんだけど...肝心の人間様が慣れていないからダメだ。