トマシープが学ぶ

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

Vtuberのアーリーアダプター自慢とイケメンYoutuber

アーリーアダプターとは

新たに現れた革新的商品やサービスなどを比較的早い段階で採用・受容する人々。

 私はバーチャルユーチューバーを比較的早い段階で見ていました。と言ってもキズナアイを去年の1月ごろに見始めただけで、みゅみゅさんとかもっとそれ以前の人をウォッチしていたわけではありません。

f:id:bibinbaleo:20180116071901p:plain

© Kizuna_AI © Mirai Akari Project © Siro YouTuber © Virtual YouTuber

まあそれでも、12月の爆発前から色々な人を見ていたので、色々アーリーアダプター自慢したくなるのですが、twitterでやってもうざい人だと思われそうなので、このブログに全部ぶちまけて、アーリーアダプター自慢はもうおしまいにします。

キズナアイ

1/30日ぐらいに見始めました。きっかけはフタバさんというマイクラゲーム実況者さんがtwitterで、「ミライアカリがすごい伸びてるな〜」的なことをおっしゃっていたことです。

なんとなくググったらまさかのAI!普通に可愛かったし、技術的な興味もあったので過去の動画とかを見始めました。

その中でテチテチどりという架空のキャラクターを作る動画がちょうど投稿されました。

www.youtube.com

f:id:bibinbaleo:20180116070443p:plain

その中で本人が、3Dモデル作ってくれる人いたら嬉しいな!って言ってたので投稿された当日に私はそのキャラをsculptrisで作って、twitterで本人にスクショ付きで送ったところ、「ありがとー!」的なコメントをもらってとっても嬉しかったのを覚えています。

しかし、後日理想のお部屋を考えるという動画がアップされた当日、またしてもSweetHomeで再現して、スクショを送りつけましたが、返信がなく、2回ぐらい送りつけても返信がなかったので、ショックでキズナアイをブロックしました。

www.youtube.com

当時のツイートも消したので画像とか残ってないです。

今考えるとマジで気持ち悪いオタクなので、忘れたいです。迷惑はかけてないから許して。

ちなみにその時作った部屋は、MMDの背景としてニコニコに投稿しています。Unityで作りました。

www.nicovideo.jp

また、その時点で外国人ニキにすごい気に入られていて、youtubeのコメントはほとんど英語だったため、嫌気がさしました。コメントも楽しみで見てるのに、ニコニコでは全然伸びていないし、youtubeは日本語以外ばっかりだし・・・って感じでだんだん冷めていきました。

ただ、今は大好きです。モデルも色々使わせていただいています。Youtubeのコメントも日本語が多くなっていますね!

www.youtube.com

見ていない最中も、いつのまにかバーチャルゲートのイメージキャラクターになっていてびっくりしたこともあります。

lp.virtual-gate.com

もっと夢に向かって羽ばたいてね。

あんたま

あんたまコミケ事件の目撃者。

たまたまCluster.を使い始めた時期で、あんずちゃんというキャラにCluster.出会えると聞いてパソコンから参加しました。

cluster.mu

Cluster.で初めてデフォルトモデル以外のキャラが出現したのと、可愛かったのと、名前を呼んでもらえたことで、普通に満足しました。

しかしtwitterで会社のフォロワーが10000人稼ぎしているのはかわいそうだな〜って思っていました。実際そのアカウント見ても、会社の人が宣伝しているだけで特に面白みもないアカウントでした。

twitter.com

そんなに興味がなかったのでフォローしなかったのですが、コミケ終了時にtwitterのトレンドにその会社名が載っていて、例の記事を知りました。

givemegohan.pigboat.jp

今は馬越さんを応援しています。

ねこますさん

次に知ったのはねこますさんかな?

というかねこますさんはVtuberとして知ったのではなく、VRchat関連で色々お世話になりました。

ワールドの作り方を解説する動画を投稿されていたり、私がtwitterで空リプ投げたら返事していただいたりしていました。

www.youtube.com

解説動画も、当時は100再生とかだったのに今見たらめっちゃ伸びてるやん。解説動画を見たときは、「なんで動画にしたんだろう?記事で書いてくれた方が見る方は楽なのに」って思いましたが、きっと動画を作るのが好きなのかな?

Vtuberとして活躍していたのは知らなくて、私も例のバズった記事を見て初めて知りました。

nyalra.hatenablog.com

それからアレヨアレヨというまに遠い人になってしまいましたね。私かリプもらったのが12/3で例の記事が12/5か・・・

自慢記事なので書きますが、私フォローしてもらってるんだぞ!

ミライアカリ

ミライアカリさんもVRchatの動画を投稿されているということで知りました。

www.youtube.com

この方を知ったのもちょうど12/3ぐらいか・・・

可愛いからモデル欲しいなっていうのが第一感想?でした。実際配布されてとても嬉しいです。

ときのそら

開発者の福田さんをVR関係で以前からフォローしていたので、なんとなく存在は知っていました。

福田さんの卓球VRゲームをプレイしたことがきっかけで、フォローしました。

store.steampowered.com

twitter.com

ただライブ配信なのと、福田さんのアカウントでそのライブの告知URL?とかが流れてこなかったので見たことありませんでした。というか今もまだライブ見たことないです。

ただHoloLiveというARでライブが観れるアプリはダウンロードしていたのでいつか観て観たいです。

 これってライブ中は動くんですかね?そんな機能ありましたよね!見たい!

シロ

ねこますさんがバズって、だんだんVtuberが認知され始めた頃も、まだシロさんはそこまで・・・って感じだった気がします。確かねこますさんが一番に抜かしたから、そんなでもないのかなっていう印象でした。

初めてちゃんと動画を見たのはこちらのAssetStoreのスクショコンテストの動画。

www.youtube.com

ちょうど私もこのコンテストに応募していたので見ました。

正直最初は声作ってるなーって印象でしたし、youtubeのコメントでもおんなじような感想がありました。

でもそれに対してシロを擁護しているコメントもあったので、特定の人には愛されてるのかな・・・とか思ってたら、ニコニコのPUBGサイコパス動画を機に一気に認知されていきました。

www.nicovideo.jp

実際私もPUBGプレイしてたから当時なんとなく見たら、勇気がすごくて惚れました。

スモークたかれてるのに歌って宣伝ってやばい

ボテバラ・ハラム

この方ははてなブログで私の記事を引用していただいたことがきっかけで知りました。

www.youtube.com

はてなブログ同士で、引用されると通知が来ます。

f:id:bibinbaleo:20180116062709p:plain

私の記事は滅多に引用されないので喜んで見に行くと、モデルやfacerigの記事を参考にしていただいていました。

wannabedaruma.hatenablog.jp

Unityもモデリングもわからない状態で一から短期間で実現したのは本当にすごいな!って思いました。

最初のゾンビモデルは被ってしまったので現在はfacerigでやっているそうです。

www.youtube.com

画力が私とちょうど同じぐらいなので親近感が湧きますね。マジで頑張ってください。

ニコニコ

何と言ってもバーチャルユーチューバー欲張りセット

www.nicovideo.jp

この方のシリーズで私も色々なVtuverを知りました。転載かもしれないので大きな声では言えませんが、全部ありがたく見させていただいています。

www.nicovideo.jp

Vtuberの方もこれに載ることを狙って作ってる方もいるみたい。

この記事でもありましたが、諸々の起爆剤になったのはニコニコだと思う。

blog.endstart.net

まず最初にキズナアイが例のアレカテゴリでいじられてから始まったし。

男性イケメンYoutuber

私はズーーーーット前から男のVtuber、できればイケメン!が欲しいっていっていました。2017年は馬と馬越さんと紙切れぐらいしかいなかったのですが、2018年の1月に入ってからめっちゃ増えました!!!!嬉しい!!!!!!!

こちらのサイトがVtuber全部まとまっています。 

vytfs.github.io

私がイケメンの部類に入ると思ったVtuberを紹介します。

キョウ

www.youtube.com

たぶん日本初のオリキャライケメンVtuber!

生放送行ったらすごい下ネタ言ってた。動画はまだ一本だけなので、短い動画あげて欲しいなあ

雨下カイト

www.youtube.com

正統派イケメンVtuber!

モデルは私もお世話にいなっている太一くんですね!そのうちオリキャラを作るそうです。

メンサ会員とかすごい。生放送見ても下ネタ言ってないので応援します。

わんわん魔王の息子

www.youtube.com

facerigのデフォルトLive2dのキャラで活動しているわんわんさん。

私一押しのVtuberです。

「我だ。魔王の息子わんわんだ」っていう出だしが面白くて好き。サムネも好き。

わんわんさんもオリジナルモデルを作るそうです。

最後に

書いたらスッキリした。

私も福岡を強調した地方系技術系Vtuberになって就活勝ち取ろうかな 

bibinbaleo.hatenablog.com

 

 

 

音声認識で3D文字表示【FlyingText3D】

前回、声認識してcharacter particleというアセットで言葉を可視化するとこまではできました。

bibinbaleo.hatenablog.com

Flying Text3D

 ただ、やっぱり3Dで表示したかったので、思い切ってアセットを買いました。

 20ドルぐらい

レビューでもコエカタマリンできたって書いてあったので安心して買いました。

f:id:bibinbaleo:20180113161121p:plain

使い方

空のゲームオブジェクトにFlyingtext3dスクリプトを付けます。

add Fontで.bytes形式のフォントファイルを入れます。

f:id:bibinbaleo:20180113160829p:plain

そして下のCreate~で実行中じゃなくてもボタン一つで3D文字が作れます。

f:id:bibinbaleo:20180116212806p:plain

わお!(日本語化は下に書いてます)

f:id:bibinbaleo:20180116212811p:plain

また自分でスクリプトを作って

FlyingText.GetObject("I'm bibinba");

とstart関数などに書くと

f:id:bibinbaleo:20180113164137p:plain

表示されました!簡単。

FlyingText.GetObjects("I'm bibinba");

GetObjects(sをつける)とすると一文字位置文字バラバラになります。

f:id:bibinbaleo:20180113164620p:plain

フォント追加

IPAexフォント Ver.003.01(IPAexFont Ver.003.01) | IPAexフォント/IPAフォント

ttfフォントを.bytes拡張子にしたら読み込めます。

f:id:bibinbaleo:20180113160835p:plain

手動でやってもいいですが、Flyngtextコンポーネントの下のほうにConvertするところがあるのでそこでもできます。

f:id:bibinbaleo:20180116212815p:plain

あとは上のほうのaddFontから加えれます。

日本語化

そのままだと私の環境では日本語が文字化けします。

f:id:bibinbaleo:20180113160832p:plain

f:id:bibinbaleo:20180113160353p:plain

f:id:bibinbaleo:20180113160401p:plain

UTF-16にしないといけないそうです。

Note that if you’re using characters in strings outside the ASCII range and you’re using C#, your script must be saved with UTF-16 encoding. Unityscript users can use UTF-8 or UTF-16.

スクリプトファイルの文字エンコーディングについて
日本語(マルチバイト文字)を扱う場合、文字エンコーディングは以下にする必要があります。(ドキュメントのP.17参照)
- C#: UTF-16
- UnityScript: UTF-8 または UTF-16

私の場合はこちらのスクリプトをassetフォルダ以下において、Unityを再起動したら使えるようになりました。

github.com

UTF-8に変換してくれるスクリプトだそうです。

DEBUG.LOG (スクリプトファイルのutf-8変換)

f:id:bibinbaleo:20180115160231p:plain

UTFあたりはよくわかりませんね・・・

altebute.hatenablog.com

物理など

設定からColliderや

f:id:bibinbaleo:20180113164245p:plain

rigidbodyを付けることもできます

f:id:bibinbaleo:20180113164251p:plain

床の上に落ちてくれます。

f:id:bibinbaleo:20180113164154p:plain

シーン内で手動で床をドン!ってやったらバラバラになった!

f:id:bibinbaleo:20180113164726p:plain

 

音声認識を表示

f:id:bibinbaleo:20180115160427p:plain

こんな感じのスクリプトで、音声認識で受け取ったstringをランダム位置に上から文字が下りてくるようにしました。

gist.github.com

なんかエラー出てたけど翌日になったら動いた。

f:id:bibinbaleo:20180113171735p:plain

最初はupdateObject関数を使っていたのですが、それだと同じ場所に文字が変わるだけなので、認識したときに一回だけ新しい場所から文字が降ってくるようにしました。

if (text != aa.kekka)
{
textObject = FlyingText.GetObject(aa.kekka, random, Quaternion.identity);
}
text = aa.kekka;

こんな感じでやったら変数の値が変わっているのを察知できました。

物理

rifidbodyとConvexmeshを付けます。

f:id:bibinbaleo:20180115162735p:plain

Physics Materialでどれくらい跳ねるかとか摩擦とかを設定できます。

f:id:bibinbaleo:20180115162835p:plain

また重力を減らして、ゆっくり落ちてくるようにするには、スクリプトを書いてもいいがProject setting>PhysicsからGravityで一括で変えることができる。

f:id:bibinbaleo:20180115162838p:plain

f:id:bibinbaleo:20180115162738p:plain

ちなみにみゅみゅさんの生放送ではtwitterニコニコ生放送などのコメントがリアルタイムで上から落ちてきて、掴んで投げたりしています。楽しそう!

www.nicovideo.jp

コメントの取得はニコニコに関してはアセットを公開してくださっている方がいます。

qiita.com

youtubeも記事はあった!

blog.sky-net.pw

まあそもそもコメント来ないから使わないけど。

当たり判定

床に当たった時にドンっていう音を発生させたい。

生成される文字オブジェクトにvoid OnCollisionEnter (Collision col)っていうスクリプトつけるのどうするんだろうと思ったけど、床につければいいのか。

ちなみにflyingtextにつけるスクリプトに書いても反応なかった。

とりあえずできました。2回床に当たるときはちゃんと2回音が鳴ってます。

文字をつかむ

VRTKを入れて文字をつかめるようにしたい。

ただ生成されるテキストにInteractableObjectなどのスクリプトを付けないといけないのだが、付け方がわからない。

f:id:bibinbaleo:20180115211749p:plain

スクリプトで動的につける方法が二つぐらいあるみたい。

tsubakit1.hateblo.jp

ただaddcomponentはうまくいかないし(外部のコンポーネントだとエラーが出る??)、RequireComponentはあらかじめ何かひとつスクリプトをつけないといけない。

qiita.com

ゲームを実行してから、生成されたものにGrabbable〜などをつけたら掴むことはできるけど、これを動的にやるのはどうするんだろう???

f:id:bibinbaleo:20180115211752p:plain

ちなみにつかめるようにするには、Window>VRTK>setup interactable~を開いて、オブジェクトを選択した状態でsetupボタンを押したら設定したようにつかめる。

f:id:bibinbaleo:20180115211757p:plain

頭から出す

前回同様、頭(自分)の位置から言葉を出して、ものに当てたい。

頭の位置を取得してそこから発射して、AddForceでその方向に力を加えたら良さそう。

Vector3 head = eye.transform.position;
Vector3 force = eye.transform.forward*300;
textObject = FlyingText.GetObject("スタート", head, Quaternion.identity);
textObject.GetComponent<Rigidbody>().AddForce(force);

こんな感じで一応最初のスタートは発射されました。

 

*300で力の強さが調整できます。ふわーんって発射したいな

qiita.com

unity3d.sakura.ne.jp

色の変化

色をランダムで変えようと思ったのですができません!!!

まず直接変えるには<color=#7e1113>みたいなカラーコードを文字列のところに打つ必要があるのですが、Unityでカラーコード形式のランダム数値を作る方法がググっても出てこない。

FlyingText.GetObject("<color=#7e1113>スタート");

qiita.com

次にマテリアル経由で変える方法もやったのですが、GetObject関数の中にマテリアルを入れたらエラーが出る。

f:id:bibinbaleo:20180115161307p:plain

全部のパラメーターを書かないといけないっぽい。

textMaterial.color = rand;
Vector3 random = new Vector3(Random.Range(-12.0f, 6.0f), 4, Random.Range(1.6f, 6.0f));
textObject = FlyingText.GetObject(aa.kekka,textMaterial,null,1.0f,0.3f, 10,random, Quaternion.identity);

ということで書いたら、変わるけど、全部の色が変わる。

そうか、マテリアルは全部共通だもんね。

じゃあ"<color=#7ae090>スタ<color=#009090>ート"こういう感じで別の色にしたらどんな感じでマテリアル生成されるの?って思ってやったら一色なんですけど!はあ?なんですけど

gist.github.com

よくわからないけど、必須スキルじゃないから無視しよう。

あとマテリアル変えるだけならGetObject関数の中にマテリアル書かなくても、勝手にマテリアル変わりますやんか。

最後に

ツイートが若干バズったせいで、自分の気持ち悪い声を1000回近く再生されることになった。

f:id:bibinbaleo:20180115215410p:plain

しかも最初の言葉が「世の中そんなに甘くないんだ!」だし。辛い。ちなみにこのセリフはおそ松さんのセリフです。

f:id:bibinbaleo:20171207221924p:plain

このブーメランをやりたいんだ!

f:id:bibinbaleo:20171207221919p:plain

詳しくはこちら

bibinbaleo.hatenablog.com

 

あとこちらの方は、音声認識とこのFlyingTextを使って作品を作ったそうです。

qiita.com

qiita.com

WinMR with プロ生ちゃんでVtuberになる。

 この記事が追記&追記でごちゃごちゃしてきたので新しく書きます。

bibinbaleo.hatenablog.com

こんな感じのができます。

www.youtube.com

モデル

太一君やプロ生ちゃんを使いました。口パクまでできたのはプロ生ちゃん。

太一くんは表情変える方法がわからないので、口パクもできません。

www.youtube.com

IK

こちらの配布されているIKを使わせていただきました。
chobi-glass.com

マニュアルは出来たけどもう時間が無いので、パッケージのアップは年明けに。
皆様良いお年を!http://chobi-glass.com/Unity/XR_MecanimIKPlus.html 

 

女の子に変身して鏡の前でウフフキャハハしたり、バーチャルYouTuberっぽい事ができるUnityパッケージとビルド済みデモをアップしました。
Final IKを使わずUnity標準のIKを簡単なスクリプトで補完しています。ちょっとギコチナイですが、流行りの真似事くらいは出来るかも…http://chobi-glass.com/Unity/XR_MecanimIKPlus.html  pic.twitter.com/XVQMmVkXCI

 

 足も動かすことができ、Vive,oculus,WinMRなんでも使えます。

リップシンク(口パク)

OVRを使います。

現在はここにあります。

Oculus Lipsync Unity | Developer Center | Oculus

developer.oculus.com

こちらのとおりに設定したらできました!!!

tips.hecomi.com

f:id:bibinbaleo:20171228232322p:plain

注意する点

・WinMRをつないだ状態だとMicinputが働いてくれなかった。

・同じシーンに複数人口パクする人を置いたら動かない。

・口パクしてくれないときはOVRLipSyncを付けなおしたら動いた。

 

 MicInputにSelected deviceに何も表示されず、マイクが認識されていない場合は、このスクリプトのUpdate関数内のStopMicrofonらへんをコメントアウトして、どんな時でもOnになるようにします。

画面分割

RenderTextureとUIのPanelを使いました。

自分目線と、固定カメラの両方を表示したい。固定カメラを大きめにして、自分視点を隅っこに置くようにする場合、両方のカメラにRenderTextureをつけます。

ただHMD部分に当たるEyeにRendertextureを置くと実行されなくなったので、その子オブジェクトに自分目線表示用カメラを置いて、その映像をpanelに写しました。

f:id:bibinbaleo:20171228214628p:plain

OBSで配信or録画

Maximize On Playを押すと大体全画面になるので、OBS側でいい感じにトリミングしました。 

 

OBSでUnityのGameビューを全画面表示する方法
・UnityのGameタブでMaximize On Playボタンを押す
・実行するとエディタいっぱいに広がるが、上下にUIが残る
・OBS側でその部分が映らないように拡大する

これでVtuberの配信とか録画が簡単にできそう

 

またUnitycamというプラグインを使っている方も多いようです。

github.com

これはUnity内のカメラをwebcamのように外部に仮想カメラとして出力できるものです。

ダウンロードして、runme firstの中のRegister.batを管理者として実行したあと、

f:id:bibinbaleo:20180110183940p:plain

UnitysampleフォルダをUnityに入れて、

CameraにUnitycamスクリプトを付け、TargetEyeをNoneにした状態で実行

f:id:bibinbaleo:20180110185454p:plain

OBS側で映像キャプチャデバイスからUnitycamを選ぶと受信しました!

f:id:bibinbaleo:20180110185545p:plain

これ複数カメラ使い分けたりできるのかな?あとUIとかって表示できるのか?

 

今回は最初にやったUnityのゲーム画面を直接キャプチャする方法でやりました。

f:id:bibinbaleo:20180114195154p:plain

参考

バーチャルYouTuberのやり方 - ReDo

集合演算でモデリングできる無料アセット使う!【SabreCSG】

SabreCSG Level Design Tools

めっちゃ欲しかったモデリング機能付きの無料アセット!

現在はgithubに最新版があるそうです。

github.com

CSGとは

Constructive Solid Geometry - Wikipedia

基本形状(プリミティブ)を足したり引いたり、和集合、積集合でモデリングする手法

f:id:bibinbaleo:20180108104108p:plain

つまりBoxから小さいBoxを引いて箱が作れるんです!!!!!!全人類欲しかったでしょ。

UnityでモデリングできるアセットとしてはProbuilderを昔使いました。これも一応箱は作れる。

bibinbaleo.hatenablog.com

使う

チュートリアルを見ながらやってみました。

www.youtube.com

GameObjectからcreate CSGでBoxができます。

f:id:bibinbaleo:20180108105151p:plain

編集画面。

f:id:bibinbaleo:20180108105147p:plain

左下の形状をクリックするとオブジェクトが追加され、左下のRebuildで実体化されます。

 f:id:bibinbaleo:20180108105648p:plain

f:id:bibinbaleo:20180108105644p:plain

実体化されたものは、普通のオブジェクトとしてUnityで扱えます。meshGroupにあるのが実体化したもの。

f:id:bibinbaleo:20180108113510p:plain

Collider付き!

f:id:bibinbaleo:20180108113514p:plain

演算

引き算をするには、引きたい方を選んで

f:id:bibinbaleo:20180108110517p:plain

左下のAddをSubtractにして

f:id:bibinbaleo:20180108110514p:plain

-になったことを確認して

f:id:bibinbaleo:20180108110518p:plain

Rebuildを押すとできます!!!!

f:id:bibinbaleo:20180108110519p:plain

頂点編集

Vertexタブで編集できます。Rebuildで決定。

f:id:bibinbaleo:20180108112732p:plain

スライス(clip)

Clipタブにした状態で、2辺を選ぶとスライスする面が現れます。

f:id:bibinbaleo:20180108112252p:plain

そしてClipを押すとスライスされました!

f:id:bibinbaleo:20180108112255p:plainf:id:bibinbaleo:20180108112253p:plain

テクスチャ

faceタブでマテリアルのsetや編集ができます。

f:id:bibinbaleo:20180108112828p:plain

setボタンを押すとマテリアルが選べるので自分で用意したものとかも使えそう。

f:id:bibinbaleo:20180108112825p:plain

最後に

とても良きアセットですね。多分他にも色々機能がある気はします。チュートリアルとかみてください。

www.youtube.com

そしてこのアセットを紹介してくださったAssetStoreまとめさん、いつもお世話になっております。

assetsale.hateblo.jp

言葉を可視化して戦うVRを作る【Part1】

 前回構想しました。

bibinbaleo.hatenablog.com

今回実装しました!!!!できた!!!!

ただやりながら書いたので恐ろしく読みにくいです。

方針

音声認識はこのアセットが使えそうということで買いました。 

bibinbaleo.hatenablog.com

サンプルを動かすことはできましたが、次は自分で書かないといけません。

Exampleスクリプトを見たらなんとかなるかと思いましたが、コメントもついていない長い他人のスクリプトを理解できる能力がまだなかったようです。

頑張ればできそうだけど、めっちゃ頑張らんと

 こちらの方のHololensでやったスクリプトも見ました。

github.com

 

声認識の方のスクリプトのいじり方がわからなかったので、最初はサンプルのcanvasを持ってくるというワークアラウンドな方法でやります。

これでトリガーとかスタートボタン機能を自分で作る必要がなくなります。

f:id:bibinbaleo:20180104204704p:plain

その上で、認識した言葉をcharacter particleに渡す部分だけ書き加えます。

Character particle側

発射する文字をスクリプトから変えるのは意外に簡単でした。

character paerticleにgivemojiスクリプト内のgiveという文字列を渡しました。

最初の方をTextにして

    public class CharacterParticlegive : MonoBehaviour
    {
        #region Property

        [Tooltip("characters to emit")]
        [SerializeField]
        private string _text;

        public string Text//////ここ
        {
            get
            {
                return this._text;
            }

            set
            {
                this._text = value;
                this._charactorIndex = 0;
            }
        }

 後ろの方にUpdate()を作ってその中に、

(渡すスクリプト名).(stringが入っている変数)

でできました。

        private void Update(){
            Text = givemoji.give;
        }

 

ちなみにパーティクルを発射するときの数をEmissionで設定しないといけません。

f:id:bibinbaleo:20180104204238p:plain

「こんにちは」ならCountを5にしないと、ここで設定した数しか文字が発射されないのです。

これをスクリプトで変えれるのか試しました。

文字列の長さ(文字数)を取得する - .NET Tips (VB.NET,C#...)

文字の長さはtext.Lengthでint形式に取れるそうです。

そしてパーティクル発射数はEmit (数);でできるらしいです。

public class givemoji : MonoBehaviour {
    public static string give;
    public static int len;
    public ParticleSystem a;
    // Use this for initialization
    void Start () {
        give="こおろぎ";
        if (give != null)
        {
            a.Emit (give.Length);
        }
    }
    

 こんな感じでやりましたが、変わりませんでした!

public void Emit(ParticleSystem.EmitParams emitParams, int count);

emitParams パーティクルのプロパティーを上書きします。

 emitParamsっていいうやつがいるらしいけどどういうことなんだろう?何を入れたらいいの???

docs.unity3d.com

unitylab.wiki.fc2.com

と思ったらBurstか

docs.unity3d.com

と思ったらBurstだとエラーが出まくる。なぜ??リファレンスの通りに書いているのに。

f:id:bibinbaleo:20180104220355p:plain

ググる

https://forum.unity.com/threads/shuriken-change-emission-burst-particle-count-at-instantiation.151259/

英語の方のEmitにはスクリプトも載っていた。

docs.unity3d.com

音声認識

デフォルトで日本語にするには

_languageDropdown.value = _languageDropdown.options.IndexOf(_languageDropdown.options.Find(x => x.text == Enumerators.LanguageCode.ja_JP.ToString()));

ここのen_GBをja_JPにします。

またデフォルトでは、voice Detection Enabledのトグルがオンになっていて、かつstart Recordを押した時に認識が開始されます

f:id:bibinbaleo:20180105104242p:plain

これをゲームが始まった時からずっとオンにするには

        void Update(){
      
                _speechRecognition.StartRecord(true);//スタート
       
        }

Update内で_speechRecognition.StartRecord(true);にしておけば良さげ。

音声認識側はphrasesという名前のstringsに認識した言葉を入れているようです。

そしてそれをListに入れている??Listってなんなんだ

        public void ApplySpeechContextPhrases()
        {
            phrases = _contextPhrases.text.Trim().Split(","[0]);

            if (phrases.Length > 0)
                _speechRecognition.SetContext(new List<string>() { phrases });
        }

  public static string phrases ;をトップに書いています。

受け取る側はstringにしてたのでエラーが出てしまいました。どっちに合わせたらいいんだろう?

f:id:bibinbaleo:20180104201239p:plain

 

 

違いました。Exampleの結果が表示されているところを見ると

if (obj != null && obj.results.Length > 0)
            {
       
                _speechRecognitionResult.text = "Speech Recognition succeeded! Detected Most useful: " + obj.results[0].alternatives[0].transcript;

 という感じでobj.results[0].alternatives[0].transcript;に結果が入っていました。ちゃんとstring形式!

ということで同じ場所に

kekka = obj.results[0].alternatives[0].transcript;

を書いて public static string kekka ;をトップに書きます。

再びcharacter particle側

音声認識スクリプトがnamespaceを使っているせいか、変数を呼び出せませんでした。

qiita.com

そんな時は呼び出す側のスクリプトにusing namespace名;でできました。

そして先ほどのように

        private void Update(){
            
            Text = aa.kekka;
        }

 こんな感じで受け取ったらできました!!!!

f:id:bibinbaleo:20180105104611p:plain

mizutanikirin.net

Unityでゲーム開発 -C#で文字列操作-

Power UIを使った3Dテキスト表示

汗人柱さんにPowerUIというアセットの中のText 3Dという機能が使えるのでは?と言及していただきました。

assetsale.hateblo.jp

早速使ってみました。

サンプルの中の21番Text3D

f:id:bibinbaleo:20180105104252p:plain

カメラが二つ生成されてゲーム画面に何も映らないので、PowerUI下のCameraをオフにします。

f:id:bibinbaleo:20180105104559p:plain

こんな感じで3Dの文字が出ます。日本語にする方法よくわからない。

f:id:bibinbaleo:20180105104554p:plain

text3Dというhtmlファイルから生成しているものと、C#スクリプトから生成しているものの2種類がありました。

f:id:bibinbaleo:20180105104255p:plainf:id:bibinbaleo:20180105104248p:plain

今回は動的に生成したいのでc#の方をいじります。

text 3d exampleスクリプトの、メッセージを受け取るとこ( msg.innerHTML)に、音声認識したものを入れます。

    void Start(){

    }
    void Update(){
        var document = GetComponent<PowerUI.Manager>().Document;

        var msg=document.getElementById("message");
        msg.addEventListener("animationiteration",delegate(PowerUI.AnimationEvent e){

            // Write out the next message:
            msg.innerHTML=aa.kekka;
            Debug.Log(msg.innerHTML);
            // Cycle index:

        });
    }


}

するとできました。helloと言ったらhelloになりました! 

f:id:bibinbaleo:20180105104245p:plain

これで日本語ができて、かつこの文字にrigidbodyつけれて、動かすことができたら使えそうです。

最後に

結局flyingText3Dという立体化できるアセットを買いました。

 

bibinbaleo.hatenablog.com

 

WinMRで遊べる無料アプリ【steam含む】

おすすめというか、まともに遊べたやつをまとめる。随時追記予定

Winストア

ここにあります。

www.microsoft.com

検索がしにくい・・・

Halo Recruit

銃を撃っていくゲーム。怖くない。

www.microsoft.com

銃を撃って的に当てるだけ。音楽は壮大だけど、襲ってこないし的は2次元なので怖くないし難しくもない。チュートリアル的な感じ。

日本列島VR

日本を上から見れる。

www.microsoft.com

f:id:bibinbaleo:20180104163515p:plain

f:id:bibinbaleo:20180104163519p:plain

HoloTour

マチュピチュやローマをガイドしてくれる。360度映像。

www.microsoft.com

店頭でやった。多分マイクロソフト公式。

360Channel

いろいろな360度の動画が見れる。

www.microsoft.com

winMRだけじゃなくていろいろなのに対応してる気がする。

イケメンからキズナアイまで

steam

ここからwinMR対応の無料ゲーム一覧が見れます。

http://store.steampowered.com/search/?sort_by=Price_ASC&vrsupport=104

 

あらかじめこれを入れておく必要があるようなないような

store.steampowered.com

 

winMRに対応してなくても遊べるものも多いです。

VRchat

ソーシャルVR

正式には対応してないけど遊べました。

store.steampowered.com

メニューは小さいWinマークボタン。移動はパッドの上の方を押すと前に進みます。自分のアバターが一歩先を歩くのでそのアバターが目的の位置に行ったら離します。

マイクのオンオフはメニューの左下のボタンでしか変えれないみたいです。

Altscape

人が少ないソーシャルVR.こっちは対応している

store.steampowered.com

Rec room

ミニゲーム系ソーシャルVR

store.steampowered.com

ゲームのやり方がわからなくて全然遊んでいないけど、広場的なところにほかの人がいるのは確認しました。

いくつかゲームがあってたぶん全部対戦型なんですが、ゲームのルールとか操作方法が全然わからなくて、でも勝手にゲーム始まって迷惑かけていや~~~って感じです。

やり方わかったら楽しいだろうけどわからないとかなりストレス。

その他

CM3D2の最新版?の体験版でwinMRできました。クリックができないのでクリックはマウスでしました。

※R18です。

CUSTOM ORDER MAID 3D2

f:id:bibinbaleo:20180104171028p:plain

f:id:bibinbaleo:20180104171039p:plain

小さいほうのメニューマークを押したら手の種類が変わって、ペンライトとカメラに切り替えることができます。

f:id:bibinbaleo:20180104172021p:plain

あとVR彼女の体験版も普通に動きました。

vrkanojo.com

最後に

ほかにもThe Labとかダウンロードしたけど、スタートした後先に進まない・・・

azure-recipe.kc-cloud.jp

FaceRigを使って配信と自作Live2Dモデル使用。

FaceRig

webカメラ経由でキャラに自分の表情を反映させられる。

f:id:bibinbaleo:20171231154523p:plain

ちょうどセールで60%オフだったので買いました。

store.steampowered.com

Live2Dのキャラを反映させる追加モジュールも200円だったので買いました。

store.steampowered.com

基本的な使い方はこちらが詳しかったです。

xn--w8jxbvbn6g2byc.com

左上からアバターを変更できる。

f:id:bibinbaleo:20171231154332p:plain

Live2Dも!

f:id:bibinbaleo:20171231154211p:plain

上のタブの一番右端アドバンスUIに変更を押して、

f:id:bibinbaleo:20171231214930p:plain

アバターの行動タブでカスタム動作を有効にするとキー操作で舌を出したり腕を振ったりできます。

f:id:bibinbaleo:20171231214325p:plain

ショートカットキーなどは一般オプションのキーバインドにあります。

f:id:bibinbaleo:20171231214917p:plain

 日本語化も設定からできます。

配信

背景を緑にして、ブロードキャストに切り替えを押して、

f:id:bibinbaleo:20171231161753p:plain

OBSでfacerig Virtual Cameraを取り込んで、

f:id:bibinbaleo:20171231161747p:plain

フィルターでクロマキーを適用したら

f:id:bibinbaleo:20171231161741p:plain

完成!!

f:id:bibinbaleo:20171231170503p:plain

途中でトラッキングが切れたのか8分あたりから無表情になってしまいました!

www.youtube.com

細かい設定などはこちらが詳しかったです。

リップシンクなどもできます。

ch.nicovideo.jp

medium.com

Modを入れる

一般の人が配っているModを入れることもできるそうです。

steamのfacerigコミュニティにいっぱいありました。

http://steamcommunity.com/app/274920/workshop/

f:id:bibinbaleo:20171231212929p:plain

サブスクライブボタンを押して、ソフトを起動したら勝手にダウンロードされるそうです。

またLive2DのLiveraryでfacerigって検索したらいくつかでてきます。

library.live2d.com

ニコニコにもありました

www.nicovideo.jp

 

今回はこちらの方の初音ミクさんをお借りしました。

library.live2d.com

そしてフォルダをここに入れます。

SteamLibrary\steamapps\common\FaceRig\Mod\VP\PC_Common\Objects"

すると・・・入ってる!

f:id:bibinbaleo:20171231172035p:plain

とてもかわいい!!

f:id:bibinbaleo:20171231172031p:plain

FaceRigを購入したついでにネプテューヌのMODを導入してみる - 人生dat落ち

ほかにもマインクラフトのスキンを使えるものもありました。

www.nicovideo.jp

Steam Workshop :: Minecraft your skin on Live2D

f:id:bibinbaleo:20171231214333p:plain

かわいい!テクスチャを変更したら自分の好きなスキンにできますね!

f:id:bibinbaleo:20171231215241p:plain

自作

自分で作ることもできます。

こちらを参考にやってみます。

ch.nicovideo.jp

 基本的には.cfgという形式のテキストデータとサムネを作れば普通にLive2dで作ったやつを使えるみたいですね・・・

昔作ったほねばみさんをfacerig用に書き出してみます。

bibinbaleo.hatenablog.com

私はcubism3を使っています。

ファイル>組み込み用書き出し>mocファイル書き出し(2.1用)を選びます

f:id:bibinbaleo:20171231202800p:plain

facerigは2.0系でしか動かないといううわさを聞いたので2.0にしました。

f:id:bibinbaleo:20171231204137p:plain

あとはcfgファイルを作って

f:id:bibinbaleo:20171231202814p:plain

サムネ用画像を作って

f:id:bibinbaleo:20171231202742p:plain

一式そろえてさきほどのfacerigのmodの下にいれました。

f:id:bibinbaleo:20171231202739p:plain

するとちゃんと入っている!

f:id:bibinbaleo:20171231202811p:plain

ただ動きませんでした・・・なんなんでしょうね・・・

f:id:bibinbaleo:20171231202806p:plain

試しに別の自作ものでもやりましたが動きませんでした。

じゃあ公式サンプルはどうかと思いやってみたところちゃんとできました。

f:id:bibinbaleo:20171231205204p:plain

 たぶんlive2dでの作業をミスってるのかもしれません。昔適当に作ったやつなので

 

あとこちらの公式には、ユニティちゃんと初音ミクがいます。

サンプルデータ集 - Live2D Cubism 2 マニュアル

たぶん規約的にデフォルトで組み込めなかっただけだと思うので、ダウンロードして自分でcfgファイルとサムネ画像作っていれたらよさげ。

FaceRigでLive2Dモデルを導入する | 多趣味ブログ

unitychanできました

f:id:bibinbaleo:20171231211606p:plain

© UTJ/UCL

感想

思ったより楽しかったです!いろんなキャラになれるのがいいですよね。

親に何に使うのって聞かれたけど、配信とか動画ぐらいしか思いつかない。

あとウィンクができない(私が)

顔面を動かすいい運動になるので、毎日やったら表情筋が豊かになりそう

 

ではよいお年を