トマシープが学ぶ

Mac/Unity/AR好きのミーハー初心者 記事内容は自分用のメモ。何も求めないで

Live2D EuclidをUnityで使ってみた(VRもあるよ)

Live 2D Euclidとは

パーツごとに分けた2Dのイラストから3Dを自動で生成してくれるソフト。

www.youtube.com

3dnchu.com

最近リリースされたらしい。

なんかすごいですね。試してみましょう。ちなみにマニュアルをあまり読まずにやったので無駄なことが多いかも。

ダウンロード

サイトからダウンロードします。

http://www.live2d.com/ja/products/euclid

最終的にUnityに取り込みたいので、ランチャーとSDKとサンプルモデルをダウンロードします。

f:id:bibinbaleo:20170512203741p:plain

サンプルモデルとSDKを使えばLive2Dソフトを使わなくても体験できそう。

Live2DランチャーはMacでは使えないようです。ダウンロードしてから知った・・・

Unityでサンプルを動かす

一旦Live2Dソフトは置いていて、サンプルをUnityで実行してみます。

やり方はこのドキュメントを見ました。

Euclid SDKの使い方 | Live2D Manuals & Tutorials

まずSDKをフォルダごと入れる。

そして空のゲームオブジェクトを作り、そこにEuclid Modelスクリプトをつける。

次に素材を入れるためのフォルダを「Resources」という名前で作る。名前はこの通りにしないといけないっぽい。

f:id:bibinbaleo:20170513104237p:plain

そしてダウンロードした素材を、Resourcesに入れるわけだが、入れるものは素材のmoeフォルダにあるやつ。.moeはあらかじめ.bytesに拡張子を変えろとのこと。ということで複製して変えたやつとテクスチャが入っているフォルダをResourcesに入れる。

f:id:bibinbaleo:20170513104242p:plain

こんな感じ。

f:id:bibinbaleo:20170513104241p:plain

入れた.bytesを空のゲームオブジェクトに付けたEuclid Modelスクリプトの「Euclid Model」という欄に入れる。

f:id:bibinbaleo:20170513104240p:plain

次にMainCameraにEuclid Cameraスクリプトをつけ、スクリプトのTarget Euclid Modelらへんに空のgameObjectをドラッグすると下みたいにElement 0として表示される。(こんなことできるんだ)

f:id:bibinbaleo:20170513104239p:plain

そしてカメラのポジションをXとYを「0」、Zを「-1」にする。

f:id:bibinbaleo:20170513105752p:plain

そしたらやっと実行!

f:id:bibinbaleo:20170513104238p:plain

・・・めっちゃエラー出ました〜

だがしかし後日windowsで同じことやったらうまくいったのでMacのせいということにしておきます。

ノーマルモードでカメラを動かすにはスクリプトを書かないのかな?それか実行中にシーンのカメラを動かせばできるのか?すぐにVRに行ったのでここら辺は試してません。

体をつける

サンプルに入ってるfbxの体を入れます。4つあるうち、後ろ3つにそれぞれ異なるアニメーションが入ってました。

f:id:bibinbaleo:20170513171803p:plain

体を動かして顔の位置と合わせました。なかなか難しい。

あと体にはユニティちゃんシェーダーを使うとテイストがより一致します。

f:id:bibinbaleo:20170513165229p:plain

アニメーション

アニメーションをつけるには、Animator controllerを作って、fbxの使うモデルの中に入っているモーションデータをドラッグでつけて、モデルにAnimator controllerをつけたら動きました。

モデルはGenericのままで動きました。

動きはループさせないとヘッドセットをつけている間に止まってしまう。Editボタンを押してLoop Timeにチェックを入れてApply

f:id:bibinbaleo:20170513171831p:plain

体と顔のアニメーションの同期のさせ方はよくわかってません。

f:id:bibinbaleo:20170513171031p:plain

 VR

VRモードでもやりました。

VR(Virtual Reality)用の設定について | Live2D Manuals & Tutorials

上のリンクにあるようにunityで

Edit > Project Settings > Player)、 Other Settings を選択し Virtual Reality Supported のボックスをチェックします

f:id:bibinbaleo:20170513173846p:plain

 そしてEuclid CameraをEuclid VR Cameraに変え、ゲームオブジェクトをアタッチして実行したらVRでできました!

私はHTCViveですが、そのままMainCameraで動きました。

最初SteamVRアセットを入れて、CameraRigを入れてそこにEuclid VR Cameraをアタッチして動かしましたがそれでも動きます。コントローラーとかを使うならアセットを入れてやったほうがいいかも?

ちなみに高さが合わなかったので(顔が下のほうに表示される) カメラのYの値を変えました。GameObjectの高さを変えても変わらなかった。

f:id:bibinbaleo:20170513165223p:plain

自分で元の画像を書いたわけではないのでそこまで感動しませんが、2次元のイラストがこんな風に3Dに表示されるのは感動しそうですね。今度自分で絵描いてやってみたいです。

Live2Dソフト(触ってない)

winodwsに入れてみましたが、進めて行ってライセンスを取得ボタンみたいなのを押したら「tutorial」という項目があってそれを押したら「90日は無料だよ!」みたいなのが出てきて勿体無くなって押していません。どうせ絵描けないし。研究室のパソコンに入れたので必要な人が使ってくれ・・・って気持ちです。

逆にデータとUnityがあればそこに関しては無料で使えるのかな?

最後に

ろくに説明も読まないままやったので、多分公式マニュアルをよく見れば色々書いてあると思います。

ドキュメント&ダウンロード - Euclidマニュアル

Unityでの詳しい説明はEuclid SDK チュートリアルにありました。

そこを見るとUnity5のサンプルがあるらしいのですがどこにあるのでしょう。

普通にダウンロードページの「サンプルソースコード」にありました。これをみたら多分顔と体の同期とか簡単にわかりそう。

いつかやります・・・

 追記:やりました。

ちゃんと顔と体がくっついて、顔のモーションも入ってました。でもどうやってるのかはいまいちわからない。