トマシープが学ぶ

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のサンプルがあるらしいのですがどこにあるのでしょう。

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

いつかやります・・・

 追記:やりました。

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

 

 

Autodesk Character GeneratorをやってUnityで動かしてみた

Mayaとかを作っている会社の、3Dのキャラクタージェネレーターをタダで使えると知って使ってみた。

www.4gamer.net

ジェネレーター

charactergenerator.autodesk.com

上のサイトからサインインするとweb上でいきなり使える。左上の+Newを押す。

基礎を選んだら、そこから細かく変形。

設定

このスキンの設定が大事になると思う。眉毛の色とかはここでしか変えられない?このスキンと髪型で印象がかなり変わる。

f:id:bibinbaleo:20170512171758p:plain

髪の色も選べる。

f:id:bibinbaleo:20170512181550p:plain

顔のパーツの微調整部分。

f:id:bibinbaleo:20170512173217p:plain

スライダーの使い方としては、例えば唇を薄くしたいと思ったら、右側から薄い人をドラックしてきて、スライダーの右側の左部分に置く。

そしてスライダーを左にすると左の顔の特徴が反映されるので、唇が薄くなる。

f:id:bibinbaleo:20170512181414p:plain

チェックマークはよくわからない。難しい。

服とかも選べるんだけど、身長はこの段階では変えられないみたい。最後の出力の時に決めれた。

f:id:bibinbaleo:20170512182128p:plain

服とか髪はぴったりした形の動きがないものがほとんど。動かす時計算が難しいからね。

感想

日本人の美少年を作ろうとしたけど多分無理。中性的な人を作るなら異性のパーツも混ぜながらやったほうがいい。

ネタ系は簡単に作れそうだけど、誰かに似せようとするのは難しい。デフォルトで似てる人がいるならともかく、特に日本人顔を作るのは色々調整が必要で大変そう。

操作は少し重い。スライダーを動かしてもリアルタイムに変化しない。まあでも無料でこれだけできるのはすごい!

出力

完成したら、Finishを押す。すると下みたいな画面が出るので左の出力マークを押す。

f:id:bibinbaleo:20170512171749p:plain

色々設定できる。青いマークがなんなのかよくわからないけどお金がかかるってことなのかな?でも青いマークがついても無料でダウンロードできた。

f:id:bibinbaleo:20170512171750p:plain

ファイル形式はUnityにした。

generateボタンを押して少したったら、左のメニューに緑のマークがつく。そこからダウンロードできた。purchaceって書いてあるけど特にクレジット画面とか出ずにそのままダウンロードできた。

f:id:bibinbaleo:20170512171748p:plain

追記:多分学生だから無料でできたみたいです。持ってるceditがunlimitedになってた。

f:id:bibinbaleo:20170521172656p:plain

無償利用にも載っていますね。

f:id:bibinbaleo:20170521172733p:plain

Unityで動かす

配置

書き出したものは初めからボーンが入ってました。

これはインポートした素材のインスペクタのrig>configureから確認できます。ここでAnimation typeをhumanoidにしないと動かせないかも。Applyを押す

f:id:bibinbaleo:20170512193749p:plain

f:id:bibinbaleo:20170512184103p:plain

シーンに配置するとこんな感じ。足が短く見える。ズボンのせいだね。

f:id:bibinbaleo:20170512184507p:plain

動かす

 Create>Animator controllerから新しいコントローラーを作る。

Animatorウインドウを開く。

ここにぽいとドラッグでモーションを追加する。もしくは右クリックから新しいstateを作ってNew StateのインスペクタのMotionに動作を追加する。

f:id:bibinbaleo:20170512192116p:plain

モーションデータはUnityちゃんのを使ったり、Assetstoreから探してきたりする。私はBasic Motionっていうのをダウンロードした。

そしてAnimator controllerをキャラのControllerに追加する。

f:id:bibinbaleo:20170512192223p:plain

f:id:bibinbaleo:20170512190126p:plain

・・・沈みます。動かないし。これ前もVRでやってる時起こった!なんで!どうしたらいいの?

仕方がないので、アニメーターコントローラー入りのアセット(fighting Motion)をダウンロードして、直接モデルに適用したら動きました。

f:id:bibinbaleo:20170512192049p:plain

f:id:bibinbaleo:20170604223401p:plain

あとこのパックに入っているモーションなら、さっきの方法でも沈まずに動いてくれた。なんでだろう?

追記:Magic Packというモーションアセットもうまく動きました。たくさんの動きが入っています。

f:id:bibinbaleo:20170604223122p:plain

f:id:bibinbaleo:20170604223323p:plain

 

マテリアルを変える

デフォルトのままだとテカっててフィギュアっぽいので、マテリアルのsmoothnessを0にしてテカリを抑えた。

f:id:bibinbaleo:20170512192627p:plain

f:id:bibinbaleo:20170512192637p:plainf:id:bibinbaleo:20170512192646p:plain

 

この書き出したモデルは一枚のテクスチャになってるから、髪や服だけ素材を変えるっていうのはできないですね。

f:id:bibinbaleo:20170512192708p:plain

参考

takashicompany.hatenablog.com

ユニティちゃんトゥーンシェーダーを開いてみた

twitterで見かけた、ユニティちゃんトゥーンシェーダー2.0を開いてみました。というか1.0も使ったことがなかったのでどっちも開きました。開いてサンプルシーンを見ただけです。

ダウンロードはユニティちゃんサイトの右上から

unity-chan.com

ユニティちゃんトゥーンシェーダー2.0 - ダウンロード - UNITY-CHAN! OFFICIAL WEBSITE

2.0は5.5.3以上じゃないと使えないらしいので、今からアップデートします><

その間に1.0を使ってみました。

1.0

詳しい説明はManualの中に入っていました。unityにはAssetsフォルダを入れました。

f:id:bibinbaleo:20170511220730p:plain

Toonshaderというシーンを開くとSDユニティちゃんがいました。

f:id:bibinbaleo:20170511220734p:plain

ちなみに普通のシェーディングはこんな感じです(下二つ)。上と比べると服とか髪が違いますね。あとセルフシャドーもかかるので顔に影ができます。

f:id:bibinbaleo:20170511222458p:plainf:id:bibinbaleo:20170511222550p:plain

sampleフォルダの中のsampleシーンを開くと 球が出ました。

f:id:bibinbaleo:20170511220733p:plain

影のつき方とか、線の細さとか色々調整できます。

f:id:bibinbaleo:20170511220732p:plain

なかなか奥が深そうでシェーダー初心者には難しかったです。

2.0

5.6に無事アップデートできたので2.0を入れてみます。

toonshaderのサンプルシーン。右はセルルックだそうです。トゥーンに加えてセルルック。

f:id:bibinbaleo:20170512113123p:plainf:id:bibinbaleo:20170512113122p:plain

Boxprojectを開いたら、こんなのが出ました。

f:id:bibinbaleo:20170512113121p:plain

サンプルシーンにはこんな感じのボール。髪の毛の天使の輪が表現できるようです。

f:id:bibinbaleo:20170512113124p:plain

こちらもマニュアルがすごく詳しいです。

© UTJ/UCL

参考

akiiro.hatenablog.com

余談

この記事の画像にもあるような、インクボトルとメモリの入った部屋ってどこにあるのでしょう?

tsubakit1.hateblo.jp

ASEって紹介してあるけどググってもわからなかった。何かの略?アセット?

教えていただきました。Shader Calibration Sceneというアセットだそうです。また別記事で遊んで見ます。

https://www.assetstore.unity3d.com/jp/#!/content/25422

機械学習ライブラリ

Udemy

Udemyの機械学習の講座やっと終わりました・・・

www.udemy.com

一週間で終わるんじゃね?って言ってから18日かかりました。・・・あっ以外に短いですね。もっとかかった気がしてたけど。

bibinbaleo.hatenablog.com

 後半は何も考えずただコードを写してただけなので、何か学べたかというとそうでもないけど、やらないよりはよかったのではないでしょうか。いまいちどこが機械学習要素だったかわからなかった。本当はちゃんと復習しながらやったほうがいいんでしょうね。

機械学習ライブラリ比較

この講座の最後の方に、機械学習ライブラリが紹介されてたので、調べました。

 

以下、ダラダラとそれぞれについて調べたことを追記していきます。

Chainer(チェイナー)

私が一番初めに名前を聞いたライブラリ。確か日経ビジネスで紹介されてたので知った。タダで使えるよ!みたいな。線画に色をつけるやつで有名になった?日本の方が作ってるので日本語がある。やったー

qiita.com

TensorFlow(テンソルフロー)

ディープラーニングgoogleのやつ。udemyの講座でpycharmを通してライブラリを入れるところまではやった。chainerとそこまで差はないらしい。ただtensorboardという可視化ツールがいいらしい!

日本語はあまりない。でもgoogle好きだからいいよ。

blog.btrax.com

Caffe(カフェ)

大学がやっている?コミュニティが活発。

www.atmarkit.co.jp

scikit-learn(サイキットラーン)

Udemyで使ったやつ。ディープラーニングはできない。統計系。

qiita.com

Keras(ケラス)

初心者向け。環境と整っている。

www.mathgram.xyz

用語

用語のメモ

畳み込みニューラルネットワーク(CNN)

画像系のやつ。猫の画像を与えると、猫である可能性をパーセントで教えてくれる。

hiro2o2.hatenablog.jp

DCGAN

画像を生み出せる。一つがデータから形成して、もう一つがCNNで似てる度を言い渡して、それを繰り返してより本物らしくしている。

qiita.com

楽しそうですね。

参考

比較記事です。

speakerdeck.com

d.hatena.ne.jp

qiita.com

www.procrasist.com

ほとんどのライブラリがpythonで動いているようなので、人工知能系をやるならやっぱりpythonを学ぶべきですね。

Kudanリベンジ

Unit 2017のツイートで何回か見かけたkudan AR。マーカーレススマホで簡単にできるやつ。

昔チャレンジして見て結局できなかったから忘れていたけど、今ならできるんじゃないかと思って再チャレンジ。

昔の記事

bibinbaleo.hatenablog.com

 サンプルを動かせた!

最新のkudanパッケージをダウンロードしてきて、unityに入れる。

Download AR SDK | Kudan

私のunityのバージョンは5.5.0

kudanAR>Samplesの中にあるAngelSceneを起動。

f:id:bibinbaleo:20170511165821p:plain

Kudan Cameraのインスペクタを見る。

f:id:bibinbaleo:20170511165820p:plain

下の方にあるget Editor API keyをおす。

f:id:bibinbaleo:20170511170043p:plain

飛んだサイトにあるUnity Editor Play Mode Keyをコピーして、Editor API keyにはる。

またそのページのclick hereから飛んで行った先にある(↓のページ)長いキーをコピーして、APIkeyにはる。

https://wiki.kudan.eu/Development_License_Keys

f:id:bibinbaleo:20170511165819p:plain

 

またandroidの設定画面にあるBundle Identifierをeu.kudan.arにする。API levelは4.0.3にする。

f:id:bibinbaleo:20170511165818p:plain

これでアンドロイドに移したらサンプルは動いた。marklessボタンを押して右のボタンを押したら表示される。

f:id:bibinbaleo:20170511170820p:plain

f:id:bibinbaleo:20170511170825p:plain

精度はマーカーありには劣るし、影がないとよくわからないや・・・

マーカーありもできました。samples>texturesの中に入っているlego画像がマーカーです。

f:id:bibinbaleo:20170511170829p:plain

パソコンでもマーカーありならできます。スマホで表示したレゴ画像にちゃんと反応してくれる。

f:id:bibinbaleo:20170511171039p:plain

ユニティちゃんAR

ユニティちゃんARアプリでも使われています。

f:id:bibinbaleo:20170511171607p:plain

ピンチ操作で大きさを変えられるし、ドラッグでくるくる向きを変えられる。光の強さはスライダー(私の研究と同じ方法)、そしてポーズや表情を選択することもできます。

unity-chan.com

最後に

前回は多分bundle idを設定し忘れててのかな?っていうかbundle idって上のカンパニーネームとかと一致させないといけないと思ってたけど、そうじゃなくても動くんだね。

何回かbundle id のエラーは出たけど、やり直したらなんとかなった。

ただkudan ARを使って何かを作るには、ユニティちゃんARみたいに物体の大きさをピンチで変えられるようにしないと、その環境にあったものを表示するのは難しそう。

あとマーカーありに比べたら幾何学的整合性に劣るのでそこは改善を待つしかないのかな?

参考

tuti107.hatenablog.com

VRで3Dのサウンドを流す【Unity】

HTC ViveのVRシーン内に設置したスピーカーから音を出す方法を調べました。

と言っても別にVRかどうかは関係なくaudioの設定を3Dにしただけです。

ただUnityで音を実装するのが初めてだったので、細かく書きます。

使用できる音の形式

まずここからですよね。音楽を流したくて、itunes内にあったのをデスクトップにドラッグしたら、m4aという謎の形式でunityでは受け付けてくれませんでした。

docs.unity3d.com

mp3とかwavとかだと受け入れてくれるらしいので、itunesでmp3に変換します。

まずitunesの環境設定から、「読み込み設定」を押し

f:id:bibinbaleo:20170510194646p:plain

読み込み方法をMP3エンコーダにします

f:id:bibinbaleo:20170510194648p:plain

その後変換したい曲を選択した状態でファイル>変換>MP3バージョンを作成を押します。

f:id:bibinbaleo:20170510194647p:plain

すると同名のmp3ファイルができます。

名前が同じだし拡張子表示されないのでどっちがどっちかわかりません。デスクトップにドラックして確かめてます。

できたものはunityに放り込めばそのまま使えます。

Unityで音を流す

音を流したいオブジェクトにAudio Sourceというスクリプト?をつけます。デフォルトであるので、add componentから検索で探しました。

そこのAudio clipにさっきインポートした音ファイルをつけます。

次に3Dにするには下の方にあるspetial Bland(2Dー3D)のスライダーを3D側(1)にします。

f:id:bibinbaleo:20170821215717p:plain

詳しい設定などはこちらのサイトを参考にしてください。

hiyotama.hatenablog.com

私はVolume Rolloffでどれくらい離れたらどれくらいの音量になるかをカスタマイズしました。

そして次にAudio Listenerを聞き手となるオブジェクトにつけます。

デフォルトではMain Cameraについているので、別のにつける場合は消さないといけません。

私の場合確かCameraRigの中にあるコントローラーにつけた気がします。HTC Viveの場合どこにつけるのが正解なんでしょうね?

終わり

無事近づいたら音が大きくなり、離れると小さくなるのができました。右耳左耳がちゃんとなっているかはよくわかりませんでした。

作ったのがこれです。

スマホアプリで操作できるIoTデバイス紹介

発想次第で遊べるIoT商品を二つ紹介します。どっちも持ってないけど気になる。

Mesh

meshprj.com

sonyが作ったセンサータグ。人感センサー、湿度、動きなど4種類のセンサーとボタンやLEDなどのタグとスマホを組み合わせて、色々なことができる。

湿度タグを使ったら、家の湿度を外出先でもスマホで見れたり、人感タグを使って人が通ったらメールが来るようにしたり?アプリでは、twittergmailなどとも連携できます。まさにアイデア次第で色々なことができる。

ただクソ高くて、一つにつき5000円ぐらいします。全部揃えたら3万8000円って狂気の沙汰では?無理です。

アマゾンの一覧 http://amzn.to/2pqvvUP

Mabee

この単三型パッケージに単4電池を入れて、単三が入る機械(おもちゃのクマとか、電動歯ブラシ)にこれを入れると、その機械を専用アプリで操作?できるらしい。 

f:id:bibinbaleo:20170509182152p:plain

電池の出力を変えることで、動かしたり動かさなかったりするのか!その強さをアプリを通して時間や声とかで変えられる。

公式サイト

mabeee.mobi

割と子供をターゲットにした宣伝をしていますが、絶対大人も楽しいですよね。専用機械がなくても遊べるのはすごいな〜欲しいかも。でも自分でお金を出すほどではないかな〜ちょっと高いし。