ぬるぬる動くドールの動画を制作中


そんなわけで、世間ではCEDECで盛り上がっているさなかに、ぬるぬる動くドールの動画をひっそりと作っているわけである。ひとりCEDECである。(←寂しい) ここで言う「ぬるぬる」とは「滑らかに」という程度の意味だ。それでは、ひとりCEDECの名に恥じぬよう技術的な部分を詳しく書いていく。


★ 何故、突然ドールの動画?



キャラクターをつくろう! 3DCG日和。 vol.2 - MikuMikuDanceで踊る、ユーザーモデル制作
MikuMikuDanceスターターパック
MikuMikuDance でPさんと呼ばれる本

ニコニコ動画にupされているMMD(MikuMikuDance)/PMDで作られた動画は完成度が高いものが多い。いまや特殊で高価なアプリなしに、フリーソフトだけでこれだけのものが作れるというのは驚くべきことだ。


書籍のほうも充実していて、キャラクターをつくろう! 3DCG日和。 vol.2 - MikuMikuDanceで踊る、ユーザーモデル制作 を見ればモデルの作り方がわかるし、MMDの使い方や動画作成の手引きなら、MikuMikuDanceスターターパックMikuMikuDance でPさんと呼ばれる本が懇切丁寧に教えてくれる。というか、本を買うまでもなく、MMDを立ち上げて少しいじればだいたいの使い方ぐらいわかるだろう。


単純なMMD/PMD動画ではもはや再生数が伸びない。特殊な補助ツールや自作のツールを組み合わせて、他の作品との差別化を図っていかなければ、見向きもされない。視聴者はそれくらいにMMD/PMD動画には食傷気味なのだ。


しかし一方で、実写ベースの萌え動画(figma,ねんどろいど,フィギュア,ドールなど)はそのノウハウ自体が確立されておらず、制作自体が難しいのが実状だ。


例えば、DancingDoll(→ http://dancingdoll-rz.com/ )の人の動画(→ http://dancingdoll-rz.com/movie2010.htm )はスーパードルフィー(身長60cm程度)をロボットに改造して物理的に動かした。サーボや制御基板以外の部品はひとつひとつを設計して、強度の足りないところは部品加工を業者に依頼したりして、だ。これは、この人のロボコン(ロボットコンテスト)で培ったノウハウがあってこそだと思う。ちょっとやそっとで真似できそうにもない。


スーパードルフィーか、ドルフィードリームかそれが問題だ。


えっくす きゅーと Secret Wonderland みう



あまり小さいドールだとぬるぬる動かしても、元の作りが粗雑なため、見栄えしない。
えっくす きゅーと Secret Wonderland みう(左の上の写真)などは可愛いとは思うが、動かしたときに小さすぎて少々物足りない。


少なくとも60cm級のドールでなければならない。また、それより大きいものは、「動かせて当たり前じゃん」とか思われるのも癪なので、今回は不採用である。


ゆえに、候補としては、VOLKSのSD(スーパードルフィー)、DD(ドルフィードリーム)ぐらい。


この二つはどちらも身長60cm程度なのだが、SDはキャスト製なので硬く、造形がしっかりしている。写真写りが良い。対して、DDは硬質ソフビで肌触りは良いのだが、どちらかと言えばキャラもの用。動画にして映えるのはSDだろう。よって私が選択したのはSD。


※ しかし、最近にDDは比較的出来が良く、DDの瓜生桜乃なんかはアイとウイッグを交換すればSDっぽい。


ちなみにSDよりはDDのほうが1,2万円安い。SDは天使の里でフルチョイス(→ http://www.volks.co.jp/jp/superdollfie/full_choice/index_full_choice.aspx )だと10万円ぐらいになる。衣装のほかメイクもいるし、ウイッグやアイを交換したり、何かと手間がかかる。自分でメイクが出来ないなら、フルチョイスするしか選択肢が無いのだ。一方、DDは素材の性質上、服から色移りすることがあるので、代替えのパーツが売られており(→ http://www.volks.co.jp/jp/dollfiedream/optionparts.html )、このヘッドをカスタムしたものがヤフーオークションで売られているので、そうやって自分でメイクするのを回避することは出来なくはない。あとDDのヘッドがSDで使えるかと言うと、実は使えるのだが、公式で推奨されることはでは無さそうなので深入りしないことにする。


あとSD13(スーパードルフィー・サーティーン)というシリーズがあって、13歳だからSDより若いのかと思ったら、こちらのほうがSDより体つきが大人らしい。(胸がL胸だったりする) では、SDは、一体何歳なのだ…。


ちなみに左の下の写真は、2010年ドールズパーティ23限定発売のSD「蘭 in 原宿Ver.」 定価92,400円。ヤフーオークションでは10万円前後で取引されている。

★ ぬるぬる動くドールの動力源は?


ずっとサーボか空気圧駆動かどちらにしようか悩んでいたのだけど、結果的にはそのどちらでもない。
サーボでも空気圧でもその場でドールをジャンプさせることすらままならない。


意地でもジャンプしたり片足を上げたりしたいのだ。
ごっすん組↓レベルの萌えダンス(?)をドールに踊らせたいわけだ。


プリブラ魔理沙は大変なライブを踊っていきました【ごっすん組】
D


通常のドールロボットではそのような激しい動きは到底不可能だ。


小型ロボットでは真上にジャンプさせることすらままならない。それどころか片足で立つことすら困難を極める。


★ 人間っぽいモーションの作成


はじめてのロボット創造設計 (KS理工学専門書)





ROBO‐ONEのための二足歩行ロボット製作ガイド (RoboBooks)


普通、この手のロボットモーションは、例えば、あるタイムラインで指先が通過しなければならない点を指定して、そこから逆運動学的に各関節の角度を求めるわけだ。それは20年ぐらい昔の機械制御の教科書にだって書いてある。クォータニオンとか、ヤコビ行列とか出てくる奴な。


あと重心を垂直に下ろした点が足の内側(詳しい定義は割愛)に無いと静止できない。だから、それぞれのパーツの重量、重心位置を計算しておいて、きちんと静止できるようにモーション自体も設計しないといけない。


それからパーツごとのたわみがあるんだよ。長い部品だとたわむので断面の二次モーメント求めてたわみ量とか計算しないと正確に動かせない。まあ60cmぐらいのドールならたわみは無いに等しいだけど。(DDではなく)SDのほうはキャスト製でそこそこ硬いしな。


そうなってくるともっと自律制御できないものかと思うんだ。GA(遺伝的アルゴリズム)で、きちんと歩けるようになるまで学習させるとかやりようはあるんだけど、踊りの振り付けをしたいんだよ、踊りを!歩けるようにするだけなら教示信号は比較的楽だけど、踊りとなるとモーションに対して点数みたいなのをつけないといけないからなんか未知の世界だ。


そもそもSDは姿勢的には非常に不安定なのできちんと二足歩行させようと思うと事前に計算したモーションをそのまま再現するだけでは自立すら難しく、ジャイロをつけて補整しないとどうにもならない。


あと、萌えロボットのモーション作成で難しいのは、重心の位置だ。一般的に言って、重心の位置は低くにあるほうが安定する。ダンレボ(DanceDanceRevolution)で重心を落として(つまり膝をかなり曲げて)プレイしている人をときどき見かけるが、重心を落としたほうが素早い動きに対応できる。


しかし、膝をずっと曲げて重心を落としたまま歩行している人を普段見かけないのはそんなことをすると疲れるからだ。ふとももに負荷がかかるからだ。結局、筋肉や関節に対する負荷が低くなるような動きを人間はしているわけである。


ただ、ロボット工学的には、足を伸ばしている状態だと(重心が安定しないという欠点以外にも)ヤコビ行列で計算するときに特異点が出来て計算し辛いという欠点がある。


しかしやね、いまどきマシンパワーもメモリもふんだんにあるんだから、ヤコビ行列なんか使わなくとも、(例えば指先を任意の場所に移動させたいなら)腕から先の関節の角度をそれぞれ変えたときに指先が三次元座標上でどこに来るのか、そのすべての組み合わせを事前に計算してテーブルとしてメモリ上に持っておけばいいと思う。特異点が出来るからどうのこうの言ってるのは、計算資源の乏しかった時代の話ではなかろうか。(よくは知らん)


★ ジャイロは不要説



D

重心を計算しながらモーションを生成すればジャイロがなくとも歩くぐらいのことは出来るようだ。(左の動画)


もっと速い動きをやらせるとなるとジャイロは必須だと思うのだけど、ジャイロ無しでもそこそこ頑張れるんだなぁと思った次第。


★ もっかい聞いていい?動力源は?


サーボと空気圧での制御を諦めた直後、ストップモーションアニメ(コマ撮り)にしようかと思った。


人間の手の関節の自由度は7以上と言われているが、両方でサーボが14個以上いるんだよ。指だって動かしたいし、結局、両腕だけで30ぐらいの自由度が欲しいんだよ。小型のサーボはギアの遊びがあったりして、なかなか思っている動きにならない。おまけに安いサーボだとギアがプラスチックで出来ている。耐久性にも問題がある。少し力が加わったら破損する。CNC買ってきて、ギアから自作するしかない。


ともかく、現代のサーボの技術では無理だ。人工筋肉か何か知らないが、未来の科学技術が必要だ。まあ、その未来の科学が必要な部分は、なんとかずる賢い大人のやりかた人類の叡智でごまかさねばならない。


ストップモーションアニメでやるの?


コマ撮りアニメーションの秘密―オスカー獲得13作品の制作現場と舞台裏

しかし、コマ撮りは莫大な労力が必要なわりには完成度が低くなる。


まず、ぬるぬる動かそうと思えば、30fpsでひとコマひとコマがきちんと動いてなければならない。


アニメ技術で言うところの(あるコマとあるコマの中間のコマを作成するという)中割りなんだけど、これは単に手間的な問題だけではなく、プロのアニメーターならともかく、うまく中割りをして躍動感を出すのは素人にはとても難しい。


そこで事前に(Autodeskの)MotionBuilderでモーションを作成してその通りに1コマずつ忠実にドールの関節を動かして撮影することにした。これなら、それらしく見える。あとは、After Effectsの別売りプラグインのReelSmart Motion Blurを用いてblurをかける。素人の作ったコマ撮りアニメのほとんどにはblurがかかってないけど、blurをかけないととても不自然だ。あと、同じくAfter Effectsプラグイン被写界深度も調整したほうが自然に見える。


ゆえに、擬似モデルを適当なモデラー(アプリ)で作成して、MotionBuilderで読み込ませて、ちょっとモーションを作ったりしてたのだけど、途中でモーションを作るのが嫌になった。そこでPMDからモーションをコンバートしようかとPMDのデータフォーマットを解析したりしたのだけど、MMD/PMD用に公開されているデータだとどうも動きが不自然に見えるデータが多い。


これはMMDが、関節の動きとして直線的な移動しか指定出来ないからではないかと思う。(←出来ましたので訂正) 人間の動きって、移動中に加速したり、移動終点ではなだらかに減速したりする。そうしないと関節を物理的に痛める。このへんがうまくモーションとして再現できていない(再現するのに莫大な手間がかかる)のが原因かなぁとは思う。


人間が踊っているのをトレースしてあるPMD用のダンスモーションは人体の重心の移動まで正確で、非常に素晴らしい動画もあるのだが、なかなか気に入ったものに出会えない。


ノリの良い曲で動きがある程度激しく、かつ人間が実際に踊れるようなモーションが理想なのだが、結局そんなMMD/PMD用のデータは公開されていないのが実状で、仕方ないので自分で振り付けを考えてモーションから作ることにした。あとMotionBuilderだけではうまく編集できないので人間の関節の動きっぽくなるようにモーションを補整するプログラムを書いた。


しかし、そこまでやったところで、さらなる問題に直面した。

ストップモーションアニメの限界



Canon デジタル一眼レフカメラ EOS Kiss X4 ダブルズームキット KISSX4-WKIT



SLIK 三脚 F740

コマ撮り撮影であるため、髪の毛がなめらかに動かないのだ。ずっと重力方向に向いたままなのだ。服のシワもコマごとに連続性がないのでコマを繋いだときにすごく不自然だ。あとコマごとに関節を1度±0.2度ずつぐらいの精度で移動させたいのだが、そこまで正確に移動させられない。


SDの各パーツは内部的にはテンションゴムと呼ばれるゴム紐で固定されており、関節と関節の接触部には滑り止めシートのようなものを貼るのだけど、どうしても違う方向にも回転してしまう。これを直すのもただならぬ労力が必要だ。一定方向に正確に1度±0.2度ずつ回転させられるような治具を製作する必要がある。


要するに、シワのあるような服を着ていたり、髪の毛があったりする場合は、ストップモーションアニメで滑らかに見せることは不可能なのだ。また、関節を正確に回転させることも非常に難しいのだ。かなり気合を入れて補助器具を製作しないとどうしてもカクカクになる。このへんが現在のストップモーションアニメの限界だと思う。


一方、撮影のほうは、CanonのEOSシリーズ(例 → Canon デジタル一眼レフカメラ EOS Kiss X4 ダブルズームキット KISSX4-WKIT )のように、パソコンから撮影のタイミングを制御できるものがあり、撮影自体の自動化は出来なくは無い。カメラはもちろん、三脚などで固定しておく必要がある。少しでも動くと(そこでつなぎ目が不自然になって)大変なことになる。


パソコンから撮影のシャッターのタイミングを制御できるもう少し安価なデジカメが欲しいのだが、それが出来るのはCanon製ぐらいしか市販されておらず、そしてCanon製でも一眼レフシリーズでないとパソコンから撮影タイミングなどを制御できないようだ。(一眼レフではない下位のモデルとの差別化なのだろうか?)


★ 高解像度化の勝利


ストップモーションアニメ(コマ撮りアニメ)やクレイアニメ(粘土を使ったアニメ)はもう何十年も昔からあるが、初期のころからほとんど技術的に進歩してないんじゃないかと思う。


しかし、初期のころと比較したとき、大きなアドバンテージは、デジカメの登場(現像する必要がないし)と、その高解像度化だ。いまやデジカメは20Mピクセル程度あり、ブルーバック(背景に青い画用紙などを用意する)で撮影して青い部分(と境界の1,2ドットぐらい)をソフト的に除去(or何らかの処理)したのちに縮小すれば埋め込んだときの違和感が全くない。これは高解像度化の勝利だと言えよう。昔ははめ込み合成には境界に明らかに不自然なところがあったのだが、そこは現在では特殊な機材なしでもほとんど違和感が無い。


ストップモーションアニメを制作しているプロの人はStopMotion Proというソフトを使って、撮影する人も多いようだ。(パソコンのディスプレイ上に、前のフレームで撮影した画像を現在のカメラからの画像にoverlayさせて表示する機能があるので被写体を移動させる距離を把握しやすいようだ。あとブルーバックの抜きの処理をやる機能があるようだ)


ただし髪の毛は話が別だ。髪の毛は細い。5616×3744ドットで撮影しても(動きまわるのことを考慮して)全身(+α)がフレームに入る状態だと髪の毛は数ドットの幅しかない。ブルーバックにして輪郭処理をしたときこれだと問題になる。欲を言えば、デジカメはあと10倍か20倍の解像度が欲しい。


ともかく、ストップモーションアニメでは、常識的には、スキンヘッドか、さもなくばfigmaのようなsolid(←「形状が変形しない」の意味)でなければならない。せいぜい、これ↓くらいのことしか出来ない。


D


ただ、この↑動画がカクカクしている原因は、1秒当たりのコマ数が足りてないからだ。flvをダウンロードして調べたところ秒間12コマ程度しか動いていない。コマ撮りだからカクカクしているというわけではないのだ。コマ撮りでも1コマずつ動かせば非常に滑らかにはなる。


★ 3Dで頑張ってレンダリングしよう





そんなわけでストップモーションアニメにも見切りをつけ、3D CGでなんとかすることを考えた。まずモデルを用意しないといけないのだが、これはこれで手間がかかる。ドルフィーから直接モデリング出来ないものかと考えていたら、Strata Foto(→ http://www.swtoo.com/strata/ )というソフトを見つけた。


写真から3Dモデルを作り出すSTRATA FOTO 3D[in]
http://journal.mycom.co.jp/articles/2007/12/11/sfoto/index.html


この円状のマーカーを印刷して、これを基準にして3Dモデルの構築を行なう。回転台にマーカーを印刷したもの(左上図)を載せ、その上にモデルを配置し、複数の写真を撮影すれば、テクスチャーの貼りつけられたモデルまで自動で構築してくれる。


余談だがこのマーカーは、小さな●と大きな●とが印刷されており、それぞれ二進数で0と1を表している。1列に●が4個あるので2の4乗 = 16通りの方向が表現できる。特定の方向のマーカーの一部が欠けても(被写体の背後にあっても)正しく認識できるという、なかなか面白いアイデアだ。AR(拡張現実)で使うマーカーにも応用できそうだ。


さて、Strata Foto自体は二次元画像からのZ depth(奥行き)の推定という観点から見ても大変興味深いソフトなのだが、このソフトに付属のサンプル画像でモデル化したのが左下図だ。元のサンプル画像の人形(?)の出来が悪いというのもあるが、形状はともかく、テクスチャーはまったく質感が無くてとても本物には見えない。


将来的には、フィギュアをStrataで取り込んで3Dプリンターで印刷すれば、フィギュアの複製が簡単に出来たりするんだろうけど、いまのStrataではちょっと荷が重そうだ。まあ、モデルの形状抽出には役に立ちそうなので、テクスチャーだけ自分で高解像度のものを用意すればそれっぽいものは出来ると思う。


ただし髪の毛のような細いものは形状抽出は不可能だ。画像自体の解像度が足りてなくて、髪の毛のZ depthを正確に推定できない。いま流行りの三次元カメラでも髪の毛の奥行きがなんかおかしいのはこれが原因なのだと思う。


★ 服のしわを再現できない


作業を進めていると、服のシワがそれっぽく無いことに気づいた。きちんと物理演算で再現できない。LightWaveプラグインのsyflexを購入しようかと、syflexで布のシミュレーションをするデモを見たのだが、服っぽく見えない。ビニールシートが貼りついているかのようだった。布のシミュレーションは私が大学のときに卒業研究でやったが(もう15年ぐらい前だ)、その時のほうがよっぽどマシな動きがシミュレーション出来ていた。


参考用にsyflexのサンプル動画を張っておく(→ http://www.siliconstudio.co.jp/solution/syflex/ )。セロファンで出来てるのかと思うようなひどい服だ。こんなデモ公開したら誰も買わないんじゃないかと心配になるぐらいだ。


服のふわっとした素材っぽさを表現するためには、この手のシミュレーションでよく使われる、「格子点を設定して、その間を弾性バネで繋ぐ」モデルそのものがおかしいんじゃないかと私は思う。私が大学のときに研究していたときですら、布の素材をバネとして見たとき、バネが距離に比例する力(フックの法則)に支配されるようなバネではないことはわかっていたし、生地は一定以上には伸びないし、一定以下に縮めるにはそれ相応の力が必要だし、布の曲げ方向に対して元の状態に戻ろうとする力は生地ごとに特性が違うし、そういうのをきちんとシミュレーションしていた。(日本繊維学会が出してる学会誌に布の特性データはいろいろ載ってたし) syflexはそれすらやっていないように思う。


まあそれはそれとしても、ボディに密着させた服のシミュレーションが難しいのは確かで、いくつかのテクニックを投入しないとうまく動くものにならない。逆にペティコートやスカートのようにボディから離れているならば、(服に関して)いい加減な物理モデルであってもそこそこうまく動いて見える。↓のPMDの動画なんてその典型だ。


【MMD】すかーとテスト【物理演算】
D


それでも↑の動画はトゥーンレンダリングがしてあるのであまり気にならないというだけの話で、これを実写っぽくするとすぐに不自然さが目に付く。


まあ、いずれにせよ、服のしわの動きをきちんと表現できるようなシンプルな物理モデルはまだ誰も発明していないのだと思う。


★ 髪の毛の動きは意外と簡単かも知れん


髪の毛の動きだが、これは、一本一本が独立しているような髪の毛なら大変だろうけど、普通はある程度塊になって動くので、それっぽく見えるモーションを作ること自体はたやすい。(さきほどのの動画↑でも髪の毛の動きはそれっぽく見える) また、髪の毛は服のようにボディに密着しているわけでもないので衝突が絡みにくいのもあって動き自体は実物っぽい。


このように動きには問題ないのだが、髪の毛っぽい質感を出すのが難しい。ドールの髪の毛っぽく見えるものをCGで何故うまく表現できないのだろうか。金属のようなマテリアルはCG(ray tracingなど)では非常にうまく表現できている半面、髪の毛の質感の表現は非常に難しいのが現状だ。


よくは知らないけど、金属はある角度で入射した光がどれだけ反射してどれだけ散乱してどれだけ熱として吸収されるかがうまく定式化されているんだと思う。それに対して、髪の毛は1dotより細いので1dotを1本のrayでray tracingしたのでは解像度的に不十分なのかも知れないし、あと髪の毛は厚みがなくチューブ状なので内部で特殊な反射をしてたりするのかも知れない。(よく知らん)


髪の毛一本一本をチューブとしてモデリングして、かつ1dotをレンダリングするのに何百本ものrayを走査すればそれっぽく見えるのかも知れないけど、現在のコンピュータの演算能力ではそれはとても無理な注文だ。他にやりようがあるのかも知れないけど、最近の論文は追いかけてないし、あたしゃ知らん。


結局のところ現在のCG技術を駆使しても人形の髪の毛の質感を完璧に表現したり、服のシワのモーションを物理的にシミュレーションして作成するのは難しいか、あるいは不可能なのだと思う。それっぽいテクスチャーでも貼って誤魔化してろってことか…。


逆に、3D CGで粘土(ex.ねんどろいど)のような質感を出すのは比較的簡単だ。(例えば、この↓動画)
D


★ 結論


ひとりCEDEC(←寂しい)の道のりをざっと書いてきた。ここに書ききれていないことはまだたくさんある。ともかく試行錯誤の連続で、いろいろ試しては投げ出し、試しては投げ出しを繰り返している。


ここまでの結論をまとめると、現在の技術では、20cm〜60cmぐらいの人形が跳んだり跳ねたりするようなダンスを踊っている動画を作るのは、ロボット工学的にも、ストップモーションアニメ技術的にも、3D CGの技術的にも不可能だという結論になる。あと20〜30年ぐらい後にはいずれかの分野で出来るようになっているのかも知れないのだが。


そんな2010年現在に存在するのはおかしいはずの動画をいま私は制作している。仕事の息抜きにコツコツとマイペースで作っているので完成までにはまだ日にちはかかりそうだが、一応技術的な問題の大半はクリアした。なんとかなりそうだ。


完成した動画を見ていただければ、それが現在のロボット技術では実現不可能な動きで、かつ、ストップモーションアニメでは実現不可能な服や髪の毛の連続性のある動きで、かつ、3D CGでは再現不可能な髪の毛や服のシワの表現であることはわかっていただけると思う。この意味において、2010年現在にこの動画が存在するのはおかしい。


私の工作技術的な問題で、撮影補助器具の精度があまりよろしくないのでせっかくきめ細かいモーションを作成しても、結果としてカクカクになりそうな予感はするが。


撮影補助機材の製作にあと3ヶ月ぐらいと、撮影補助ソフトの製作に2ヶ月ぐらいと、モーション作成にあと2,3ヶ月ぐらいと、SDのメイクアップの修行のために1,2ヶ月ぐらいかかりそうだ。まだまだ先は長い。年内の完成は厳しいかも知れん…。


完成したらニコニコ動画にupしようと思ってはいるが、たぶん、「操り人形」だとか「ポルターガイスト」だとか、「サイコキネシス」だとか適当なタグが張り付けられて、誰にも見られずに再生回数も伸びずにひっそりと埋もれていくだろうとは思う。


まあ、価値のわかる人にだけわかってもらえればいいやと思っている。我々の子孫が何十年後かにこの動画を発掘したとき、「当時の技術では到底実現不可能なはずなのですが」とオーパーツのような存在として取り上げてもらえるならば作者冥利に尽きるというものだ。