それは秘密のボタンを押しています。すみません、それは等高線モードです。この人数ですので、ぜひ突っ込んでください。これが最初にやったテディ(Teddy)です。次に見せるのは、もう少し角張ったものもやりたいというのでやったものです。
テディは丸っぽいものでしたが、もうちょっと角張ったものを作りたいと思ってやったことで、これは3次元モデリングソフトウエアではもう少しCADっぽいですが、ボタンが並んでいるのではなくて、ユーザーがやるのは線を引くということと選択するということ、ハイライトをします。ハイライトすると、コンピューターもハイライトされた2本のエッジに関係して、そこの操作法を提案してくれます。気に入れば選べばいいし、やめればアンドゥすると。3つ選べば、この3つに関係した操作法を提案してくれます。
この辺に線を引くと、この赤いのに関係して黄色としたいですかと言ってみたり、無視して外の線を引くと、角を切り落としたいのですかと言ってきます。そういう感じで選択して選んで、線を引いて、また選択して、関係する作業をコンピューターが提案して、関係するものをハイライトして、提案をしてやっていくことによって、メニューでこれをやりたい、あれをやりたいという代わりに、ここに興味があるんだよとユーザーが言うと、コンピューターが手助けをしてくれるみたいなことです。
これは3つ線を引くと、だいたい3等分にしたいのかなと思ってくれるだとか、だいたい4等分ぐらいにここまで線を引くと、ここを4等分にしたいのだろうとやってくれるというようなものです。そういうものをやっています。みそはハイライトをしたら関係する操作を出してくれるという話で、アプリケーションはいろいろあると思っていて、例えばPowerPointのメニューを見ると、ここにああいういっぱいボタンがあって、下にもあって、ここにも隠れていて訳が分からないと。この4つの位置をそろえたいとかPowerPointでやろうと思うと、知っている人は、ここに配置というのがあって、これを使えば左ぞろえがありますが、こんなものは見つけられないというときに、コンピューターに、これとこれとこれをそろえたいんだよと、そろえたい対象を指定してだいたいそろえておけば、コンピューターが提案してぐるっとやれば、そんなメニューから探さなくてもいいだろうと。
あとはフォントと色が違うような場合に、その仲間外れを一緒にしたいような場合も、これは普通にやると周囲の色はここ、中の色はここで、周囲の色はで、フォントの色はここで、フォントの大きさは上で、フォントの種類はここでといろいろなところにばらけているのを選んで、1つだけ違えば一緒にするというのを提案してくれるのは、非常にありがたいのではないかなと思います。
この研究で言いたかったのは、普通のコンピューターインターフェースというのは、人間がコンピューターに、あれをやれ、これをやれ、あれをやれと言って、コンピューターの方が言われた通りにやるだけというと、非常にぎこちないだろうと。人間と人間だったら、もうちょっと一緒に作業をするということをすると思っていて、AさんがBさんの仕事を見ていて、大変そうだなと思ったら助けてあげる、そういうのをコンピューター上でもやりたいと考えてやっています。
時間がないのでどんどんいきたいと思います。次はまったく全然違う話で、キャラクターに服を着せようという話です。CGの分野では、シミュレーションの研究は山のようにありますが、インターフェース的に服の操作方法を考えた人はあまりいなかったので、それを何とかしようと。普通どうやるかというと、板状の服の切れ端みたいなものをキャラクターの前と後ろに一生懸命、3次元的な操作をして配置して、はい、スタートと言うとシミュレーションが、ただ一方向に進むと。ただ、3次元に配置するのはなかなか大変です。
あとはリアルタイム・クロス・シミュレーションと銘打って、ハンカチをひらひらさせているような研究もありますが、インターフェース的な立場からすると、ハンカチを割りばしでつまんで、ひらひらさせているようなもので、それでは服を着せられないだろうということです。やりたいのは、いろいろな服の着せ方を、手軽にキャラクターモデルで試せるようなシステムを作りたいということです。
これが今、作っているサンプルシステムで、こっちは3次元モデル、これはテディで作ったモデルですが、裸なのでよろしくないと、服を着せてあげようと。右側に服を着せるパターンエディターがあって簡単に服を作れて、これはストールみたいな服を作って、こいつに掛けてやる。普通にやると頂点を引っ張ったり、押したり3次元的に回転して動かしてとやりますが、ちょっと嫌なので、簡単にマークを付ければいいというものを我々も提案しました。ここはだいたいこの辺に行って、この2本はだいたいこの辺に行ってと、だいたい指定をして、では着せてと言うと、コンピューターが計算して着せてくれるというものです。
いろいろなことができて、スカートみたいなものを作りたければ、簡単に鏡面反射させて縫い合わせて、筒状のものをこの線とこの線が、この線とこの線に行くように着せてねと言うと、ぱっと着せてくれるというものも作っています。あとは着せた後に上に上げたり、下に下げたり、ぐるぐる回したりということもできます。落ちてしまいました、すみません。
ほかにも、こんなものを着せたければ、これがここに行くように着せてと言うとぱっと着せる。着せた後も体の表面を滑らすこともできます。これがみそで、普通は3次元的に滑らせていくと、X・Y・Z方向に動くだけですが、これだと体の上を滑らせるので、服の操作としては非常にいいだろう。ピン留めをすると、そこを固定することができるので、こうやって肩に掛けたりといったこともできます。
せっかくなので、もう少し複雑な例を見せておくと、これぐらいのシャツはちょっと頑張れば作れるので、これを着せるときも押したり引いたりする必要がなくて、これとこれがだいたいこの辺に行くように指定して、これとこれがだいたいこの辺に行くようにしてと言うとぱっと着せてくれます。こんな感じで着せ付ける。着せ付けた後に、こうやって動かすことができますが、後ろで出しておくとこんなものができます。そんなようなものを作りました。
普通は、一方向にトランズされるだけですが、体の表面を滑らすような実装になっているので、キャラクターで服の着せ方をいろいろ試すことができるということになります。
次はアニメーションを作りましょうという話です。アニメーションを作るときに、普通はどうやって作るかというのをキーフレームというやつで、時間ごとにこのフレームはこのポーズで、1秒後はこのポーズで、次の時間はこのポーズでと、タイムフレームごとにキーを打っていきますが、それは非常に直感的ではなくて大変でした。一番やりやすいのは、たぶんビデオカメラを置いて、その前でこいつをリアルタイムでごそごそ動かして、それを録画して再生するのが一番いいだろうと。ただ問題は、普通の入力デバイスはX・Yぐらいしかなくて、角度がいっぱいあるので、これを何とかしようというのがこの研究です。
それをインターフェース的に何とかしようという話で、アイデアは簡単でキャラクターがいたときに、ふん、ふんという様子を録画して再生すればふん、ふん、ふんとここへ来ている。ただ、腕や足などではつまらないので、何とか全身の動きを作りたいというのでアイデアは簡単で、キーを打ちましょうと。このときは、この場所とポーズを結び付けて、この赤いボールにポーズが追従する。このポーズとこのポーズをなめらかにブレンドするとこうなると。
このシステムの大事なところは、任意にどんどんキーを増やせるところで、上へ行ったらこうとやるところだけでも、結構、赤いボールを動かすだけで面白い動きができて、こっちに行ったら足を上げてというのも作れます。こうやって、こうやって作る。ちょっと頑張るとこれぐらいのことができて、この一個一個のポーズはそんなに面白くないですが、連続的に動かすと、テディのジャグリングみたいな、こういう動かし方がボールを動かすだけでできる。
当然、録画をすることもできて、ここの「録画」と押してやって再生すると、こんな感じの動きが出てきます。こういう動きをキーフレームでやろうとすると、できないことはないですが、非常にロボットみたいな動きになるし、時間もかかるし、生き生きした動きにならない。これだと手の動きがそのまま出るので、こういう動きがすぐできていいでしょうというシステムになっています。
いろいろなものを作っていまして、テディの新しいバーション、モデルを作って色を塗ってということもすぐできるので、それでモデルを作って、今のアニメーションをさせると、これが一番気に入っていますが、最初は困っていて、思い付いて喜んでいるとか、ちょっとした動きがすぐできるというのが特徴です。
あと2つありますのでもうちょっとお付き合いください。これは、この間、ドクターを取った大和田さんという学生がやってくださった仕事ですが、やりたいことは、生物の教科書を開くと、断面で内部構造を説明した絵がいっぱいある。ところが普通の3次元モデルというのは、表面だけで中身は空っぽです。やりたいのはカッタブル3Dモデル、どこを切ってもちゃんと断面が表示されるような3次元モデルを作りたいというのがモチベーションです。
これは実は大変で、ちゃんと3次元モデルで中身の詰まったものを作ろうとすると、X・Y・Z座標に色の点を打っていかなければいけないのでなかなか大変です。こんな内部構造を撮ったようなものは、普通はX線写真みたいなものしかないので、こういう色鮮やかなテクスチャーを持った3次元モデルをスキャンする方法がないと。好きなところを切ってちゃんと画像が出るモデルというのは、実はなかなか大変です。それを何とかしようということです。
やり方はプログラム的に書いたり、スキャンをしたり、3次元的にぺたぺた塗るというのがありますが、なかなかこういうものは作れないと。どうやったかというと、みそは全部手で描くと大変なので写真を使おうと。お肉の断面の写真を持ってきて、コンピューターに教えます。人間がどこかを切ったら、この写真をうまく使って断面の絵を描きなさいと教えておくと、あとはユーザーがどこかを切るたびに、コンピューターが計算で断面の画像を適当に作るというシステムになっています。
ビデオを見るとこれです。使い方は簡単で切ればいいだけです。こう切ると、こう切れます。ユーザーから見ると、中身が詰まっているようにも見えますが、実は中身はただのメッシュで空っぽで、ただし断面ができると、そこにコンピューターが適切に画像を作るので、こんなことができるというシステムになっています。
次はキュウリをこう切ると切れます。こういうものをどうやって作るかというのがこの後出てきますが、最初に3次元モデルを読み込みます。この時点ではただの表面だけで中身は空っぽなので、切っても何も出てきません。切ります。何も出てきません。ここで作るためにコンピューターに教えます。断面が出てきました。この部分は、こういうタイプのテクスチャーにして、サンプルの写真を持ってきてくださいと。ここにサンプルの写真を入れて、これだけでは分からないので、この写真のこの部分と、この部分がお肉のこの部分に対応しますよと。内側と外側を教えて、その対応関係を教えておくと、あとはコンピューターが、そうかと、この写真のここは表面に対応していて、この部分は骨に対応すると分かっていると、これで教育が終了してあとは別なところを切ると、コンピューターは今の情報をもとに一生懸命、今、テクスチャーの合成計算をして、この断面を作ってくれるというものになっています。以上です。
あとは絵がいっぱいあって、ソーセージとか、木とか、ケーキもそうです。ケーキの写真を撮ってきて、こことここを使って断面の画像を作ると教えると、食べられるケーキができたり、すみません、止まってしまいました。そんな感じです。これでいろいろなことができると。
あと面白いのは、今から見せるのは竹です。竹というのは、どちらから切るかによってテクスチャーが全然違いますので、水平に切れば普通は節が見えるし、縦に切れば筋が見える。そういうものもできるようになっていて、これはコンピューターに筋の方向を教えます。これは竹のモデルは、ただの3次元モデルなので、どちらが筋の方向か分からないですが、コンピューターに対してユーザーが、こういう竹のつぶつぶを伸ばしたようなテクスチャーを、こっちの方向に流し込んでくれと言ってヒントを与えると、それで作ってくれます。これで教育が終了したので、あとはどこか別なところを切ると、コンピューターはさっき流れの方向を教えてもらったので、この辺は流れが垂直で、この辺は流れが水平だと分かっているので、それに基づいてテクスチャーを計算で作ると、ちゃんとこういう断面ができる。汚くて見えにくいですが、こういうふうになってます。
これは小学校に持っていって子供に使わせているところで、ただ線を引けば切れるだけなので、結構みんな分かって使えると、そんな感じです。これは単に切るのに失敗して、大きい方が飛んでいっただけだと思いますが、非常に盛り上がっていました。お料理コンテンツを作っていて、最初にジャガイモを切ってくださいとジャガイモを切って、ニンジンを切ってくださいとニンジンを切って、タマネギを切ってくださいとタマネギを切ってという、包丁も作ったりしていました。
最後にちょっとだけ時間を使って、最近の仕事も紹介したいと思います。これはやりたいことは、これも3次元グラフィックスではないので違う話になりますが、これは2次元グラフィックスですが、やりたいことは縫いぐるみがあったら、人間だったらぶんぶん振り回したり、頭を引っ張ったり、手を振ったり、縫いぐるみで遊びたいでしょうと。それをコンピューターの上でもやれるようにしたいということです。
普通どうやるかというと、コンピューター上で図形の変形は昔から当然ありますが、大きく分けるとこの2つで、1つは空間をゆがませる方法で、これが一番簡単で普通に使われていますが、結局、空間をゆがませているだけなので、あまり物をちゃんとつかんで変形している気がしないと。もう1個は、物の形をちゃんと表現しますが、シミュレーションみたいなことをやることによって、ちゃんと形は維持できますが時間がかかるし、なかなかうまく動かないという問題があります。
デモをすると、まず最初に空間をゆがませる方法というのはこれで、よくあるのは影響範囲を決めて、影響範囲の中心はいっぱい動かして周りを動かさない。これも実装はすぐにできますが、なかなか空間の絵をゆがませているだけという感じで、なかなか縫いぐるみをつかんで動かしている感じはしないということです、遅くなったりします。
別の方法として、さっき言ったシミュレーションっぽくやると、ここをエッジで切って長すぎたら短くするということをやると、一応、腕を振ったり、足を上げたりということはできますが、収束に時間がかかります。例えば両手を持ってぶんぶん振り回すようなことをやろうとすると、ぐにゃぐにゃしてついてこないです。こうやったらぐるぐる回ってほしいですが、全然回ってくれないという問題があります。
それを何とかしようというのが今回の研究で、やった内容は今みたいな計算を一瞬で終わらせよう。ある意味こっちに近いような効果を得たいのですが、計算をシミュレーションっぽくやるのではなくて、一発の計算で出すようにして、ハンドルを打ってハンドルを動かすと、それに応じて最終的な結果がクローズド・コンピューテーションで出るようにしたということです。
これが結果で、さっきのモデルと違って一瞬で答えが出るので、ぐるぐる回したりしてもちゃんとついてきて、足を引っ張ったりできるということです。それだけですが、非常に直感的な動きをします。これはただの形なので、これもただの写真ですが、写真も同じように形状変形をすることができて、こうやって変形することができると。ただの写真ですが、3次元的なオブジェクトをつかんで動かしているような感じが出るというのが面白いと思います。
今、作っているやつは、何か適当に描きますが、面白いのは自動的に全部やってくれるので、落書きをして、塗り絵をして、これをグループ化してハンドルを打てば、これは古いバージョンですみません。メッシュが見えていますが、こんな感じで描いた絵をすぐに変形できるのが特徴です。さっきデバンドしていたので余計なメッシュが表示されていますが、こういう感じになります。
あと面白いのは、こういう動きをそのまま録画することもできて、うん、うん、うんというのを録画して再生すれば、それですぐにアニメーションができるというようなものになっています。あと面白いのは、今、見せているのはマウスで全部形状を操作していましたが、複数のポイントデバイスを使うと、ここにありますが、今までは普通のポインティングデバイスを使ってやっていましたが、両手マウスとか、これです。例えばこれは両手マウスの例ですが、両手マウスを使うと、両手でも物をつかんで遊んでいるように動かすことができると。これもただの写真ですが、両手でつかんで動かすと、本物をいじっているようなことができる。これはソニーで研究しているデバイスで、手の形が取れるデバイスですが、そういうものを使うと指先が全部取れるので、5本の指で絵をこうやってつかんで、もぞもぞ動かすことができます。これもアニメーションの作製に使えると思っていて、一枚一枚全部の絵を描いていくのではなくて、絵を描いて手でつかんで動かせば、それでアニメーションができるでしょうというようなこともやっています。
全体の形状特徴を保ちながら絵を変形するというのは、曲線にもやることができて、これは、ただ線を描いているだけですが、つかんで引っ張ると細かい形状特徴を維持したまま、全体を変形するということもできます。そうすると、こう引っ張って草の形を変えたり、草全体を上にしたり、下にしたりということができる。これも非常に便利で、例えば顔みたいなものを描いて、鼻の形を変えたければ鼻を上に上げたり、下に下げたり、顔全体をもう少し膨らませたりといった調整ができます。あと便利なのは、素人が描くと始点と終点をぴったりくっつけるのが難しいですが、こんなものを引っ張って、こうやってちょっとなめらかにするという操作をすると、ぴったりくっつくというようなこともやっています。
雑然としてきましたが、そろそろ時間なので終わりにしたいと思います。やりたいことは、3次元CGは非常に使いにくいので、それを使いやすくするような技術をいろいろ開発すると。中身は、今日はインターフェース部分しか見せていないですが、こういうことを普通のコンピューターの上で、高速に動かせるようにアルゴリズムをいろいろ工夫しているという感じです。以上です、ありがとうございました。(拍手)
|