Raspberlyのブログ

Raspberlyのブログ

Unityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。そろそろブログタイトル決めたい

勉強会レポ : 第1回 VRM勉強会

 

 

勉強会のレポート(メモ)です。
参加したのはこちら、「第1回 VRM勉強会」
会場提供は「メルカリ」さん。懇親会は「VRMコンソーシアム設立準備会」さん提供です。

connpass.com

ハッシュタグ : #VRM勉強会

 

f:id:Raspberly:20190220115312j:plain

 

 

動画はこちら(複数本に分かれてるっぽい?)
xR Tech Tokyoチャンネルで確認してください。

www.youtube.com

 

スライドのまとめはこちら

https://niconare.nicovideo.jp/events/44

 

 

時間(予定) タイトル 発表者  
19:00-19:10 Luppetで分かったVRMアプリ開発Tips @ CST_negi  
19:10-19:20 VVRMを使ったAR/MR撮影アプリを試作開発してみた話 @sotanmochi  
19:20-19:30 アバター生放送支援アプリ「アバれぽ」の紹介 @toRisouP  
19:30-19:45 休憩 ---  
19:45-19:55 おめめのうごき @miyumiyuna5 バーチャル登壇
19:55-20:05 誰でもできる!VRMモデルセットアップ小技集 @m2wasabi  
20:05-20:15 VRM対応スマホアプリ開発Tips集 @ yashinut  
20:15-20:30 休憩 ---  
20:30-20:40 VRM姉妹のGLTF(GLB)はやればできる子! セルフビルド狐おじさんが教える動く背景データの作り方と対策 @ichitarok バーチャル登壇
20:40-20:50 VRMSpringBoneをJobSystem&ECSで最適化してみた話 @ TEST_H_  
20:50-21:00 (個人で)VRM対応のアダルトアプリを作っている話 @nkjzm  

 

 

目次

 

 

 

LT1. Luppetで分かったVRMアプリ開発Tips

スライド

https://niconare.nicovideo.jp/watch/kn4016

開発の勘所について話します。

Luppetとは

ノートPCとLeepMotionで完結するVtuberシステムです。
・セットアップが簡単。
・バストショットに特化(頭表情手指のみ)
VRM対応

開発者視点から見るVRM

VRMはいろんなモデルがいる。

・複数モデルの使用が見込まれる
・モデルごとに体格が違う
・モデルごとに見た目が違う

これを考慮したワークフローと工夫点

・複数モデルの使用が見込まれる

モデルとモデルの情報だけのシーンと、キャラを動かすシーンで分ける。
役割を分割し開発を楽にする。キャラ選択ではモデルを全て生成せずメタ情報だけにしましょう。

・モデルごとに体格が違う

Humanoidモデルの各ボーンを取得する。
首の位置を取得して、そこにカメラの位置を設定する。
ただし、自動だと限界があるので手動調整をする機能を入れましょう。

・モデルごとに見た目が違う

背景色 PostProcessingのブルームなどを調整できるようにする。
明るさ調整 背景色ブルームなど。

まとめ

モデルの生成とメインでシーンは分ける。
調整はある程度自動化するとユーザにやさしい、でも手動も必要。

 

 

 

 

 

 

LT2. VVRMを使ったAR/MR撮影アプリを試作開発してみた話

スライド

VRMを使ったAR/MR撮影ツールを試作開発してみた話 / Prototype of Mobile Mixed Capture - Speaker Deck

 

やりたいこと

屋内外でAR/MRの動画を撮影したい。
実は業務用ですが事例がありますがこれを個人でワンオペでやりたい。

試作したツール

動画を合成して撮影、ケーブルなしで動いています。
構成はスライドを見てください。

開発Tips

姿勢の動機はHumanPoseを送受信。 
ただしこれだけだとうまく合わなかった、なぜならキャラクターによってスケールが違うため。
別途位置を同期するオブジェクトを用意しました。

 

冗長かもしれませんが、上半身と下半身で分けています。
上半身はモーションキャプチャ、下半身はアニメーションで動かしています。

 

まとめ

個人で購入できるハードウェア、ソフトウェアで実現しました。
モーキャプの制度とかを改善していけば遊ぶ分には問題ないでしょう。

 

 

 

 

 

 

LT3. アバター生放送支援アプリ「アバれぽ」の紹介

スライド

https://niconare.nicovideo.jp/watch/kn4017?nicorepotwitter_upload_knowledge

アバれぽとは

アバター生放送を支援するwindows向けアプリ。
VRMの表示、ツイッターや生放送のコメントをメッセージで表示できる。
生放送で使え、登壇時にリアルタイム読み上げができる。

APIを公開するのでいろいろ試してみてください。

技術的な話

使ってるライブラリいろいろあります。

UniVRM、UniRx、UniWinApi、CoreTweet、UnityBoyomichanClientなどなど
オニオンアーキテクチャを採用しています。

今後の予定

開発者向けにAPIを提供します。
VRMの連携、表情の自動制御やキーボードやパッドの入力を反映も予定。

4月くらいまでにリリースします。体験版、有償版を用意します。

 

 

 

 

 

LT4. おめめのうごき

 

これから目を動かすニーズは高まる。
実はVRMは標準で目の制御ができます。
しかしパラメータがたくさんあってわからないと思うので実演を交えて解説します。

ここでデモ(動画を見てね)


試行錯誤したら、縦15横23くらいがいい感じ、パラメータをいじるとそれっぽい感じになります。

 

最後に一言
ちょっとぐらい大げさな方がいいと思います。
自分のモデルを使うときは限界ギリギリを算出してみてください。

 

 

 

 

 

LT5. 誰でもできる!VRMモデルセットアップ小技集

スライド

docs.google.com

小さなTipsを話していきます。

4月16日はVRMリリース1週年です。
記念にセットアップ本を無料で公開します。

MToon編

MatCapとリムライトについて。
MtoonのMatCapは乗算ではなく加算である、なので白色にびかびかになるので注意。

Mtoonには4つのRenderingTypeがありVRM/Untilよりも使いやすい。
半透明の処理などができるようになります。

 

SpringBone編

セットアップはニコニ立体ちゃんを参考にしましょう。
左右対称のVRMSpringBoneColliderGrouoはコピペしてxの+-を入れ替えればok。
JSONでのインポートエクスポート機能は、ボーン構造が少しでも変わっていると使えないので、コピペがおすすめです。

Boneのコライダーの生え方

基本的にRigの配置にそって生える。ただし方向は関係なく位置関係のみで配置されます。
長さ0のボーンについては、親から延長された直線状に生えます。
重力0なら関係ないが、あるとそのコライダーが影響を受ける。

misc編

標準以外のマテリアルはスクリプトを改造、使いたいシェーダーの名前を追加しないといけない。

 

 

 

 


LT6. VRM対応スマホアプリ開発Tips集

スライド

https://niconare.nicovideo.jp/watch/kn4008

 

VRMはいいぞ

 

IOSのダウンロード事情

IOSはダウンロードする場所を選ぶことができる。(Androidはダウンロードフォルダへ)

zipはスマホ側でインポートするのが大変。専用のアセットを使いました。

プリセットキャラのロード

デフォルトキャラが入っています。StremingAssetに置けばロードはできるがVRMのランタイムロードはすごく重い。
prefabで配置したほうがいい。

バグ対応

・一部端末で描画が死ぬ、体が消える
・一部端末で落ちる
・一部端末で読み込みができない
これらで言いたいのは、Android端末は多様性があるのでデバッグ端末を用意しておくといいです。

おまけ

OculusGoは中身がAndroidなので同じようにできます。
Webを開いたりもできましたが、ダウンロードフォルダのvrmを消せない、
アプリ内から消せる仕組みが必要。

 

VRMはいいぞ

 

 

 

 

LT7. VRM姉妹のGLTF(GLB)はやればできる子! セルフビルド狐おじさんが教える動く背景データの作り方と対策

スライド

https://niconare.nicovideo.jp/watch/kn4013

 

内容盛りだくさんなのでスライドを見てください。

 

アニメーションなど

世界は不順な動きで満ちている、これを作ることで現実に近づけることができる
アニメーションはユニティ内で作りましょう。確認しながら作れるため。

階層はうまく使いましょう
空のオブジェクトを作ってグループ化していきましょう。
ただし階層は途中で変更すると動かなくなります、注意しましょう。

.animはavaterに入れましょう、これはよく忘れます。

フレームレート

多ければいいという問題ではない、1でもいい。 
回転する時はquatinonを選びましょう。

出力時の注意

animationのpreviewを解除しないで出力しようとするとだめ。
フレームレートは回転が速すぎてできない場合はフレームレートを増やす。

 

 

 

 

LT8. VRMSpringBoneをJobSystem&ECSで最適化してみた話

スライド

https://niconare.nicovideo.jp/watch/kn4015

ニコニ立体ちゃんを256体を同時に動かして負荷テストします。

JobSystem

・モデルごとに処理

 モデルの持つボーンを一箇所で全て平行処理します。
mainスレッドは5msいないに収まった Jobの処理がまばらなのかスパイクがあった。

 

・全モデルを一括で処理

ボーンをモデルごとではなく全モデルの情報一括で処理します
キャラが何体いようと全てまとめて処理できます。

処理自体は一番良い結果となった。
データをまとめることでジョブの発行を抑えることができるようになりましたが、
動的なモデルの追加削除の負荷はそれなりにかかります。

ECSとjobsystem

ESCとGameObjectがかかわってくるのでHybridが必要。
増減はJobベースよりもマシになる。
ここで時間切れ、続きはスライドを見てください。

 

 

 

 

 

 

LT9. (個人で)VRM対応のアダルトアプリを作っている話

スライド

https://niconare.nicovideo.jp/watch/kn4023

開発したきっかけ

ドワンゴ利用規約で許可されているため

開発思想

健全なアダルト文化を作りたい。
社会的な意義があり、安全なものを作っていきたい。
現実よりもアバターの方が自分を表現できる人たちがいる。その人たちを支援したい。

安全なアダルトアプリ

アバター時代のリベンジポルノになるのを防ぎたい->性的表現を許可してるモデルだけを通すようにする。

アバターを生み出す人は、配布やライセンスには要注意。悪用されるリスクがでてきます。

作ってみた知見

有償でも買ってもらえる。
反応がわかりづらい、聞きづらい。
イベントで門前払いされる、アダルトOKな会場がない。

今後

マルチプラットフォーム
任意のモーションを読み込む
複数人対応

まとめ

アダルト系の開発者イベントがやりたい

 

 

 

 

 

 

 

 

 懇親会&展示会の様子

 

 

 

 

 

 

 

 

 

ピザがたくさん出ました。ポテトやソーセージなどいろいろありますが、
とろとろのチーズピザが一番おいしかった。

f:id:Raspberly:20190220115638j:plain

f:id:Raspberly:20190220115644j:plain

f:id:Raspberly:20190220115650j:plain

f:id:Raspberly:20190220115714j:plain

f:id:Raspberly:20190220115726j:plain

f:id:Raspberly:20190220115730j:plain

 

 

他の方のメモ、感想ブログ

platoronical.hatenablog.com

qiita.com

 

 

 

次回は5月頃のようです。

 

間違っている所、消してほしいツイートなどがありましたらコメントにお願いします。

 

誤字や、校正忘れを修正しました。