103
Live2D ををををををををを Unite2014 2 日日

Unite2014 Live2D x Unity x Kinect 2

Embed Size (px)

Citation preview

Page 1: Unite2014 Live2D x Unity x Kinect 2

Live2D を使ったアプリ開発Unite2014 2 日目

Page 2: Unite2014 Live2D x Unity x Kinect 2

自己紹介• 嶋崎一成( 0x14 歳)–学生–サイバーノイズで修行中

–普段はアプリ開発とか

Page 3: Unite2014 Live2D x Unity x Kinect 2

内容– 僕とリンと Live2D– Unity で Live2D を使ったアプリを開発する– まとめ

Page 4: Unite2014 Live2D x Unity x Kinect 2

僕とリンと Live2D全てはここから始まった

Page 5: Unite2014 Live2D x Unity x Kinect 2

ある日スマホでアプリを起動

Page 6: Unite2014 Live2D x Unity x Kinect 2
Page 7: Unite2014 Live2D x Unity x Kinect 2

動いたっ!

Page 8: Unite2014 Live2D x Unity x Kinect 2

早かった?

Page 9: Unite2014 Live2D x Unity x Kinect 2
Page 10: Unite2014 Live2D x Unity x Kinect 2

Live2D って言うらしい…↑ 運命の出会い

Page 11: Unite2014 Live2D x Unity x Kinect 2

• アプリ博で Live2D のブースを見かける• プログラマ募集中だったので応募

• Live2D のアプリとか作ってる ←いまここ

Page 12: Unite2014 Live2D x Unity x Kinect 2

ところで

Page 13: Unite2014 Live2D x Unity x Kinect 2
Page 14: Unite2014 Live2D x Unity x Kinect 2
Page 15: Unite2014 Live2D x Unity x Kinect 2

Q. リンちゃんは好きですか?

Page 16: Unite2014 Live2D x Unity x Kinect 2

好きですよね!!

Page 17: Unite2014 Live2D x Unity x Kinect 2

好きなはずです !!

Page 18: Unite2014 Live2D x Unity x Kinect 2

リンちゃんなう!聴きながら寝たつもりが朝になってた

Page 19: Unite2014 Live2D x Unity x Kinect 2

あのリボンを見ると昼食後の眠気が吹っ飛ぶ

Page 20: Unite2014 Live2D x Unity x Kinect 2

というか

Page 21: Unite2014 Live2D x Unity x Kinect 2

生まれ変わるなら

あのリボンになりたい

Page 22: Unite2014 Live2D x Unity x Kinect 2

好きすぎて rin 言語とか作る

R と I と N だけでいろんなものを表現しようとした結果(一例

Page 23: Unite2014 Live2D x Unity x Kinect 2

職場の方から一言

「リン廃だったのかw」

※ リン廃 = 重度の鏡音リン依存症もしくは鏡音リン中毒の人を指す言葉である。                           (ニコニコ大百科より

Page 24: Unite2014 Live2D x Unity x Kinect 2

最近気づいたけど( 1 )

「あ、そうかリンちゃんも   動くようになるのか…」

Page 25: Unite2014 Live2D x Unity x Kinect 2

最近気づいたけど( 1 )

「動くようになるのか…」

Page 26: Unite2014 Live2D x Unity x Kinect 2

Σ( ゚Д ゚ )

Page 27: Unite2014 Live2D x Unity x Kinect 2

ktkr!!

Page 28: Unite2014 Live2D x Unity x Kinect 2

最近気づいたけど( 1 )

自分の好きなキャラが動く!!

Page 29: Unite2014 Live2D x Unity x Kinect 2

最近気づいたけど( 2 )

【悲報】俺氏絵が描けない

Page 30: Unite2014 Live2D x Unity x Kinect 2

最近気づいたけど( 2 )

参考に動画サイトとかまわってた

Page 31: Unite2014 Live2D x Unity x Kinect 2

最近気づいたけど( 3 )

気づいたらミクも好きになってた

Page 32: Unite2014 Live2D x Unity x Kinect 2

最近気づいたけど( 3 )

本屋さんでボカロ専門コーナーへ…

Page 33: Unite2014 Live2D x Unity x Kinect 2

Σ( ゚Д ゚ )

Page 34: Unite2014 Live2D x Unity x Kinect 2

最近気づいたけど( 4 )

「こんな本を 見かけちゃうと つい手に取ってしまう。

 やるしかないよね !? 」

Page 35: Unite2014 Live2D x Unity x Kinect 2

• モデルを作ったりとかその間に挫折したりとかいろいろ…(略

Page 36: Unite2014 Live2D x Unity x Kinect 2

このスライドには「リン」という単語が多く含まれますが、「自分の嫁」に変換してご覧ください

Page 37: Unite2014 Live2D x Unity x Kinect 2

Unity で Live2D を使ったアプリを開発する

思ったより簡単に作れる

Page 38: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D– Live2D LIVE を作ってみた– Unity で Live2D を動かしてみる– Unity × Live2D × いろんなデバイス

Page 39: Unite2014 Live2D x Unity x Kinect 2

Live2D LIVE を作ってみた

Page 40: Unite2014 Live2D x Unity x Kinect 2

Live2D LIVE を作ってみた – 概要

• イベントや生放送で使えるリアルタイムコントロールシステム

Page 41: Unite2014 Live2D x Unity x Kinect 2

Live2D LIVE を作ってみた – 概要

• リアルタイムで自分の声と動きをキャラに反映させる

Page 42: Unite2014 Live2D x Unity x Kinect 2

Live2D LIVE を作ってみた – 概要

•自分のなりたいキャラになれる

Page 43: Unite2014 Live2D x Unity x Kinect 2

Live2D LIVE を作ってみた – 概要

DEMOミク( Kinect )チトセ(マイク)

Page 44: Unite2014 Live2D x Unity x Kinect 2

Live2D LIVE を作ってみた – 実績

• コードギアス

Page 45: Unite2014 Live2D x Unity x Kinect 2

©SUNRISE/ PROJECT GEASS  Character Design (c)2006-2008 CLAMP ・ ST

Page 46: Unite2014 Live2D x Unity x Kinect 2

Live2D LIVE を作ってみた – 実績

• GDC ( Game Developers Conference )

Page 47: Unite2014 Live2D x Unity x Kinect 2
Page 48: Unite2014 Live2D x Unity x Kinect 2

Live2D LIVE を作ってみた – 実績

• AnimeJapan2014

Page 49: Unite2014 Live2D x Unity x Kinect 2
Page 50: Unite2014 Live2D x Unity x Kinect 2

Live2D LIVE を作ってみた – 構成

サーバ

ネットワーク

クライアント A

クライアント B

Page 51: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D– Live2D LIVE を作ってみた– Unity で Live2D を動かしてみる– Unity × Live2D × いろんなデバイス

Page 52: Unite2014 Live2D x Unity x Kinect 2

Unity で Live2D を動かしてみる

Page 53: Unite2014 Live2D x Unity x Kinect 2

Unity で Live2D を動かしてみる

• 用意するもの– Live2D ライブラリ (.dll)– Live2D のリソース

• モデルファイル (.moc)• モーションファイル (.mtn)• テクスチャ (.png)

Page 54: Unite2014 Live2D x Unity x Kinect 2

Unity で Live2D を動かしてみる

• Live2D モデルを表示するまでの基本的な流れ

– 初期化• インスタンスの作成• テクスチャの関連付け• 表示位置と大きさの指定

– 更新• 頂点の更新• 描画

初期化

更新

Page 55: Unite2014 Live2D x Unity x Kinect 2

Unity で Live2D を動かしてみる

• Live2D モデルの初期化

void Start () {Live2D.init (); // 初期化

live2DModel = Live2DModelUnity.loadModel(mocFile.bytes); // moc の読み込み

for(int i = 0; i<textures.Length; i++){

live2DModel.setTexture(i, textures[i]); // テクスチャを設定}

}

Page 56: Unite2014 Live2D x Unity x Kinect 2

Unity で Live2D を動かしてみる

• Live2D モデルの位置やサイズ設定、更新・描画

void OnRenderObject(){

Matrix4x4 m1=Matrix4x4.Ortho(0, モデルのサイズ , モデルのサイズ , 0, -1, 1);Matrix4x4 m2 = transform.localToWorldMatrix;Matrix4x4 m3 = m2*m1;

live2DModel.setMatrix(m3); // 位置の設定live2DModel.update(); // 頂点の更新live2DModel.draw(); // 描画

}

Page 57: Unite2014 Live2D x Unity x Kinect 2

• 実際にミクを表示してみる

Page 58: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D– Unity で Live2D を動かしてみる– Live2D LIVE を作ってみた– Unity × Live2D × いろんなデバイスを組み合わせてみる

Page 59: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × いろんなデバイス

– Unity × Live2D × ???

– キャラを動かす :ゲームパッド– リップシンク(口パク)  :マイク– キャラになってみる : Kinect– 指先で触れる : Leap Motion– 視線で通じ合う : The Eye Tribe

Page 60: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × いろんなデバイス

– Unity × Live2D × ???

– キャラを動かす :ゲームパッド– リップシンク(口パク)  :マイク– キャラになってみる : Kinect– 指先で触れる : Leap Motion– 視線で通じ合う : The Eye Tribe

Page 61: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × ゲームパッド

Page 62: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × ゲームパッド

自分の好きなタイミングでリンちゃんにお気に入りのポーズをとってもらいたい!

Page 63: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × ゲームパッド

「ゲームパッドでモーション再生」

– Live2D でモーションを再生してみる– ゲームパッドで操作してみる

Page 64: Unite2014 Live2D x Unity x Kinect 2

• Live2D モデルのモーションを再生する

– モーションクラス• インスタンスの作成• 設定

– モーション管理クラス• インスタンスの作成• モーション再生• モデルの更新• モーションの終了

モーション設定

更新

モーション反映

Page 65: Unite2014 Live2D x Unity x Kinect 2

• ゲームパッドで操作してみる

– Unity の InputManager で確認

– 入力に反応するVoid Update(){

if( Input.GetButtonDown( "Fire1" ) ) { //Fire1 が押された時の処理

}}

Page 66: Unite2014 Live2D x Unity x Kinect 2

• 重要なのはたった 3 行くらい

実際に Unity で確認

Page 67: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × いろんなデバイス

– Unity × Live2D × ???

– キャラを動かす :ゲームパッド– リップシンク(口パク)  :マイク– キャラになってみる : Kinect– 指先で触れる : Leap Motion– 視線で通じ合う : The Eye Tribe

Page 68: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × マイク

Page 69: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × マイク

あ、

Page 70: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × マイク

リンちゃんが

しゃべってるように見せたい

Page 71: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × マイク

「 Live2D モデルに口パクを実装する」

– マイクの音量を取得する– 音量をモデルに最適化してセット

Page 72: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × マイク

• マイクの値を取得する

– Microphone クラスを使ってマイクの値を取得する

Page 73: Unite2014 Live2D x Unity x Kinect 2

• Live2D モデルにパラメータを設定する

– 値を上書きする//PARAM_ANGLE_X を 30 に設定live2DModel.setParamFloat( "PARAM_ANGLE_X", 30 ,1 );

Page 74: Unite2014 Live2D x Unity x Kinect 2

• 重要なのはたった 1 行くらい

実際に Unity で確認

Page 75: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × いろんなデバイス

– Unity × Live2D × ???

– キャラを動かす :ゲームパッド– リップシンク(口パク)  :マイク– キャラになってみる : Kinect– 指先で触れる : Leap Motion– 視線で通じ合う : The Eye Tribe

Page 76: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × Kinect

Page 77: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × Kinect

リンちゃんに

Page 78: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × Kinect

なりたい!

Page 79: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × Kinect

「 Live2D モデルに体の情報を反映させる」

– Kinect と接続する– Kinect から取得した値をモデルに最適化してセット

Page 80: Unite2014 Live2D x Unity x Kinect 2

• Kinect と接続する

– TCP/IP で通信– Unity をサーバ、 Kinect をクライアントとして扱う– Unity にサーバの機能を追加– Kinect クライアントとしてアプリを作成– お互いを接続

サーバ

ネットワーク

クライアントA

クライアントB

Page 81: Unite2014 Live2D x Unity x Kinect 2

• 重要なのはたった…ここまでの知識でいける!

実際に Unity で確認

Page 82: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × いろんなデバイス

– Unity × Live2D × ???

– キャラを動かす :ゲームパッド– リップシンク(口パク)  :マイク– キャラになってみる : Kinect– 指先で触れる : Leap Motion– 視線で通じ合う : The Eye Tribe

Page 83: Unite2014 Live2D x Unity x Kinect 2

Unity と Live2D と Leap Motion を組み合わせてみた

• 仕組み– SDK のサンプルを改造– Unity を使ったら簡単に表示できました– Leap Motion で取れる値を利用してモデルを操作している– ジェスチャーを認識して表情の切り替えやモーションを再生

• 1時間ぐらいでできた

Page 84: Unite2014 Live2D x Unity x Kinect 2

Unity × Live2D × いろんなデバイス

– Unity × Live2D × ???

– キャラを動かす :ゲームパッド– リップシンク(口パク)  :マイク– キャラになってみる : Kinect– 指先で触れる : Leap Motion– 視線で通じ合う : The Eye Tribe

Page 85: Unite2014 Live2D x Unity x Kinect 2

Live2D と The Eye Tribe を組み合わせてみた

• 仕組み– SDK のサンプルを改造– Unity を使ったら簡単に表示できました– The Eye Tribe で取れる値を利用してモデルを操作している– 顔のあたりに視線が行くとモーションを再生

• 2時間ぐらいでできた

Page 86: Unite2014 Live2D x Unity x Kinect 2

• センサデバイスと組み合わせる– センサデバイスから値を取得– Live2D モデルに最適な値に変換– setParamFloat() で値を設定

• センサデバイスの面白い、良いところ– サーバとクライアントっていう考え方– もともとの数値情報を意味あるものとして利用しやすい– ジェスチャが使えれば、イベントが発生とかできる

(例 Kinect では手を振るとモデルの手を振るモーションを再生などができた

– SDK で Unity のサンプルがあることが多く、 Unity ですぐに試すことができる

Page 87: Unite2014 Live2D x Unity x Kinect 2

• センサデバイスで考えること– センサデバイスの特性(限界、スイートスポット)– センサの値を安定させる方法

Page 88: Unite2014 Live2D x Unity x Kinect 2

• Live2D は思ったより

簡単

Page 89: Unite2014 Live2D x Unity x Kinect 2

まとめ今とこれからのこと

Page 90: Unite2014 Live2D x Unity x Kinect 2

• なぜ Live2D を使うのか

– 原画をそのままに動かすことができる– 原画の良さを生かしたまま作品を作ることができる

(世界観を壊さない)– モデルを作れば多くのプラットフォームに展開できる

Page 91: Unite2014 Live2D x Unity x Kinect 2

• 2次元のキャラを原画そのままに、リアルタイムでインタラクティブに表現できるようになった

Page 92: Unite2014 Live2D x Unity x Kinect 2

革命

Page 93: Unite2014 Live2D x Unity x Kinect 2

• 自分の好きなキャラがデスクトップで微笑んだり• スマートフォンの中でナビゲーションしてくれたり• PV でアクションさせたり• 人工知能などが発達した時キャラを表現する器にもなる• ギャルゲーとかエ■ゲーとかでも…

かつてないほどに、キャラクターたちが活き活きとする

Page 94: Unite2014 Live2D x Unity x Kinect 2

可能性• Live2D は教育機関でも採用され始めている• 無料版や学生版がある• SDK も幅広く対応• モデルのサンプルもある• 公式フォーラムで情報がやりとりできる

• 作品のコンテストもやってる

Page 95: Unite2014 Live2D x Unity x Kinect 2

理由をお探しのあなたへ• すぐに始められる• 流行り始めた今だから学ぶ価値がある

• 愛する嫁のためならやらない理由がない

Page 96: Unite2014 Live2D x Unity x Kinect 2

僕自身が思ったこと

Page 97: Unite2014 Live2D x Unity x Kinect 2

Live2D のキャラを動かすのは

簡単で楽しい

Page 98: Unite2014 Live2D x Unity x Kinect 2

想像してみてください

Page 99: Unite2014 Live2D x Unity x Kinect 2

• 自分の描いた絵が活き活きと

動き出す

Page 100: Unite2014 Live2D x Unity x Kinect 2

• 自分の好きなキャラが自分のデスクトップで微笑む姿

Page 101: Unite2014 Live2D x Unity x Kinect 2

• 声優さんがリアルタイムにキャラを演じるイベント

Page 102: Unite2014 Live2D x Unity x Kinect 2

日本で生まれた新しい表現方法で世界を驚かせましょう

Page 103: Unite2014 Live2D x Unity x Kinect 2

ご清聴ありがとうございました