クイックレビュー アンビソニックマイク兼バイノーラルマイクのZOOM H3-VR

H3VRというとSteamで大人気の銃を撃つゲームがヒットしちゃう…SEO最悪です(挨拶)

現在ASMR配信なども盛り上がりを見せるVTuber界隈ですが、録音機材としても面白そうなこのマイク、H3-VRです。
4chのアンビソニックマイクとして見るとTheta V用アクセサリーのマイクより少し高い程度、ゼンハイザーの20万のやつより圧倒的に安い(現在Amazonで35000円程度)で、アンビソニック形式の立体音響を記録できます。

H3-VR Handy Recorder | Zoom

ちょっとだけH3-VRを触る機会があったので、VTuber案件をちょこちょこ手伝うエンジニア目線でレビューというか感想を書きます。

普通のアンビソニックマイクとして

大体パノラマ動画撮影案件で、Insta360Proの下にマウントして一緒のタイミングで記録開始(カチンコ入れると良い)して、映像はInsta360Pro,音はH3VRという組み合わせは、相当コストパフォーマンスが高いです。
(今までは40万のカメラに20万のマイクだったので…そしてInsta360Pro内蔵マイクはアンビソニック対応しててもノイズが多い…)

Adobe Premiereとかで後編集してYoutubeにアップするとお手軽で良さそうです。本体設定を変えればmicroSDカードに記録する時にAmbiX(Ambisonics B)に出来るので、変換漏れやミスも減って大変都合が良いです。
他のアンビソニックマイクは結構Ambisonics Aで記録して後処理でのAmbiX変換を要求します…

たしかこれが本体マイク取って出しのAmbiXなはず(ハサミチョキチョキです)

https://www.dropbox.com/s/6xja8srhn2rvmfg/H3-VR%20sissor_test181118_001.WAV?dl=0

バイノーラル、ASMR向けマイクとして

「バイノーラルや5.1ch出力にも対応」と書いてあってAmbisonicマイクなのにバイノーラルって何かと思ったら、4chのマイク入力から計算で擬似的に再現した バイノーラル2ch のwavを書き出すようです。

厳密なバイノーラル録音をするためにはダミーヘッドや、物理的な耳の形を再現しないとダメなんですが、このH3-VRは計算で求めるようです。イメージ的には100均の発泡スチロールのマネキン頭に素人工作するよりバイノーラル感はあります。
(ちゃんと3Dio社のFree Spaceとか使ってる人は乗り換える価値無いです)

どの程度のバイノーラル感(?)かを確認するには
ここからZOOM Ambisonics Playerをダウンロードして実行して、上のハサミチョキチョキwavファイルを突っ込んで、ヘッドホンをした上でステレオとバイノーラルを切り替えながら聞いてみてください。

https://www.zoom.co.jp/ja/products/field-video-recording/field-recording/h3-vr-handy-recorder#downloads

f:id:izm_11:20181118184157p:plain

ステレオと比べて明らかにバイノーラルの方が立体的に聞こえると思います。すげえ。

試しにバイノーラル書き出ししてみました。

Dropbox - H3-VR sissor_test181118_001_Binaural.wav

ライブ配信でのバイノーラルマイクとしての使用

本体から設定変えたら、リアルタイムで LINE-OUTからそのままバイノーラル2ch データが出てきます。 なんも考えずに使えて凄くグッド!!!! f:id:izm_11:20181118184538p:plain

(USB-IFモードだと単純な4ch Inputとして見ることになるので、バイノーラル配信よりちょっと手間かも。まあアンビソニック配信はVTuberの人あまり使わないよね…)

まとめ

ASMR配信にも興味があるけど、いきなりマネキン頭とか買ったりするのはなあ…という人も気軽に手を出せる値段で、これだけ遊べるのはとても良いと思います。おすすめ。

Noitom Hi5をVTuber案件で投入したのでレビューしつつ便利スクリプトを書いた

概要

PerceptionNeuronの開発元でもあるNoitomが手袋デバイスとしてHi5を発売しています。国内ではアユートさんが国内代理店として取り扱っています。

www.aiuto-jp.co.jp

手の指だけで15万円!!と結構良いお値段がする製品なのですが、試すことが出来ないか考えていたところ、 株式会社アユートさんより特別にお借りすることができました。 また株式会社BitStar さんより現場運用を試してもらう機会を頂くことが出来ました。

僕以外にもVTuber案件で指をトラッキングする手段を検討している人、結構多い印象があります。

このエントリを読むことで

  • 技術担当者は内部の挙動を察することが出来る
  • 非技術担当者は技術担当者に「Hi5こういう感じらしいけど、買いですか?」ってジャッジを委ねられる

みたいなお役に立てたら嬉しいです。

ここから宣伝

アユートさんはHi5マニュアルの和訳も行っていて、代理店として誠実な仕事をされています。「この製品は取り扱わないのか」みたいな相談も出来るので、みんなもアユートさんから製品を買いましょう。

BitStar さんは僕のコードを実地検証、フィードバック、改善してくれました。既に大規模イベント含む幾つかの案件でHi5込みの全身トラッキングを使用中です。 VTuber案件の企画立ち上げから技術面の相談も出来るそうです。お困りの企業さんは是非問い合わせ窓口 ( https://corp.bitstar.tokyo/contact ) からどうぞ。(もしくはDM戴ければ担当者まで繋げます)

宣伝終わり

最初にまとめ

  • Hi5自体はVTuber用というよりインタラクションを行うViveコントローラ置き換え用、みたいな意図を感じる
  • なのでVTuber案件に投入するときはちょっと調整が必要(本エントリでスクリプト配布します)
  • 適用するキャラクターモデル手指のボーンは姿勢リセットしていてほしい(ユニティちゃんはダメだった…)
  • 親指の向きは Hi5が特殊(パーではなく手刀の形)なので、モデル側で合わせるかスクリプト側で吸収する
  • ジャイロセンサが入っているだけです。なので磁気ノイズ耐性はPerception Neuronと同等程度だが、SDKから取得できる指の角度が制限掛かっている為骨折していないように見える。
  • マウスやキーボードを長時間触るとノイズがつらい
  • キャリブレーションは平易なので上手くいくまでトライすること。(何もして無くても特定の指がピンと立ったり寝たりするのは、キャリブレーションミスです)
  • 減磁は30分に1度くらいやると良い

Hi5自体の精度はこのくらいまで詰められます。

運用など

演者さんにこれを見せてキッチリキャリブレーションしてもらいましょう。

www.youtube.com

サイズはほとんどの日本人男女はMで良いです。

レシーバは手袋と近づけて下さい(通信環境が悪いところだと値が飛びます)

動作確認用にVive無しで動くキャリブレーションバイナリ

F1キー押したらBとPのキャリブレーションが自動で実行されます。Vive刺してない普通のノートパソコンとかでも動くはず。

www.dropbox.com

Hi5のキャリブレーションデータは C:\Users\UserName\AppData\Roaming\HI5\CalibrationData 以下に保存されている (つまり、この動作確認用exeでキャリブレーションしたデータを、他のアプリからも参照する)

Hi5をUnityのVTuber案件で使うためのセットアップとスクリプト

CustomHI5_InertiaInstance.cs · GitHub

このスクリプトを LeftHandというEmptyObjectに一個 RightHandというEmptyObjectに一個 づつアタッチしてください f:id:izm_11:20181008010203p:plain

f:id:izm_11:20181008010322p:plain

後はお手持ちの指以外のトラッキングシステムと組み合わせてあげてください。

このカスタムスクリプトは通常のHi5スクリプトに対して追加でこういった機能を含んでいます。

  1. 親指特殊補正(thumbPreEuler , thumbAfterEulerを手動で書き換えて下さい)
  2. 指のパー補正 (Calibration Keyで行います。後述の手首向きの初期値も合せて指定します。P,Bポーズとは別の3段階目の補正です)
  3. 手首向き補正 (手首の向きをリセットします。2.と合せて行います。演者さんにTポーズをしてもらってF2キーを押します。演者さんが向く方向は補正後の手首向きを見て下さい)
  4. Humanoidのキャラクターを前提にした指ボーン自動割り当て (HandBoneのelement[0]にキャラのRootを割り当てて右クリックから「Automatic Set Handbone」を選んで下さい)

導入結果の評価

表情と同じくらい手の形は感情を表現するので(VRChatで手はOculusTouchを使うヘビーユーザーがいるのを参照)15万円のハードウェア代はペイすると思います。 なにより技適が取得されていて、大っぴらに使えますからね…

後はSDKから生のジャイロの値が取れるか、少なくともオイラー角じゃなくてクオータニオンの値が取れるとすっごくうれしいです!

補足

複数人同時運用…PC1台ごとにHi5は1個しかペアリング出来ないため、PCを複数台用意してPhotonとかで同期してHumanPose経由で手袋のデータを送ると楽です。

OculusGoをNOLO VR(CV1)使って6dofの頭と両手トラッキングをした

概要

今年はAndroid系のStandaloneなHMDが各社から発売されて面白いです。

今だとLenovo Mirage SoloとOculus GoがTLでは盛り上がっています。

一方で手の位置のトラッキングは両者とも備えていないため、両手も使えたら良いなあと思い、OculusGoとNOLO CV1を組み合わせて動作することを確認しました。

いわゆるVTuberごっこがPC無し+完全無線で出来るのは、結構おもしろいと思います。NOLO CV1はベースステーションがバッテリーでも動くのが萌えですね。


OculusGo with NOLO VR(CV1) VRIK VTuber Setup

NOLO CV1自体は昨日から日本代理店がAmazonで取り扱いを開始しています。

技術的なハマりポイントとかはここに書いています。

Oculus GoでNOLO CV1を使えないかのテスト - Qiita

以下ツイッター引用

ViveTrackerを使ったAmazonで買えるフルボディトラッキング取付機材

たぶん誰かがまとめていると思うんですが、あんまりお金掛けずに入手性が安定している(Amazonで買える)物を書きます。

まずはViveTrackerの入手性が安定してくれたらうれしいですねorz

【国内正規品】 HTC VIVE Tracker 2018

【国内正規品】 HTC VIVE Tracker 2018

肘や手首や足にはこれを使うと良い

マウンタ

坪倉さんの公開してる 坪倉輝明@メディアアーティスト (@kohack_v) | Twitter

このマウンターのv2(25mm溝)を適当な3Dプリンタでプリントします。

HTC Vive Tracker Band Adapter by TsubokuLab - Thingiverse

f:id:izm_11:20180516142544p:plain

ネジ

こういうネジがちょうどぴったり。外しやすいですし。

バンド

AAA verclo 固定バンド 固定ベルト 5本セット 各サイズあり : 台湾生産 (2.5cmx30cm 非収縮 (10本セット))

これが平均体型の男性なら肘や足にちょうどフィットします。 細めの人は25cmとか20cmの方が良いかもしれません。

腰にはこれを使うと良い

坪倉さんの公開してる 坪倉輝明@メディアアーティスト (@kohack_v) | Twitter

このマウンターのv1 large(40mm溝)を適当な3Dプリンタでプリントします。

HTC Vive Tracker Band Adapter by TsubokuLab - Thingiverse

ネジは上に挙げたのを使いまわします。

f:id:izm_11:20180516142625p:plain 100円均一で買えるフニャフニャのベルトが40mm溝にちょうどフィットするので100均に行きましょう。 家から出たくない場合は「ガチャベルト」と言う商品名で調べると、望みの品がヒットしやすいです。

みんなもレッツフルボディトラッキング

ユニティちゃんトゥーンシェーダー入門以前 あるいは現代トゥーンシェーダーへの橋渡し

概要

古来よりNPR(Non-Photorealistic Rendering)と言うのはあって、ほとんどの人間はDirectXもしくはOpenGLを使った簡易なトゥーンシェーダーを書いたことがあると思います。
しかし人間にとって3DCGのモデリングは難易度が高いので、せっかく作ったトゥーンシェーダーをティーポットやドーナツのレンダリングするくらいしか思春期で経験することが出来ません。

そうした経験を持つ人間は成人してUnity+UTS2.0(ユニティちゃんトゥーンシェーダー)環境を手に入れます。

そして可愛いキャラクターを可愛くレンダリングしようと思ってUTS2.0.4のシェーダーファイルを開くとゴツい分量のコードと対面してしまいます。
またUTS2.0.4はシェーダーコードの分量に比例してマテリアル上のインスペクタを開くとビビるくらいテクスチャを指定できる場所とfloatやcolorを指定できる場所があります。UTS2.0.4のマニュアルを開いても専門家向けっぽい用語と使用例のオンパレードで、よくわかりません。
一体、この10年くらいで、何が起きてしまったのでしょう?

本エントリでは同様の疑問を持った僕がUTSに至るまでのトゥーンシェーダーの表現技法の発達を追いかけつつ、説明を試みます。本エントリは Unite2018Tokyo2日目の夜に UTS使いこなし系CGクリエイターの @AkatsukiWorks さんとベラベラ喋ってたラジオを元にしています。

暁ゆ~き デザイン開発ミニオン (@AkatsukiWorks) | Twitter さんの協力無しでは本エントリは成立しなかったので、本当にありがとうございました。(僕自身はモダントゥーンシェーダーエアプです…)

注意事項

  • 本エントリの誤りがあったら全て僕が悪いです。嘘ついてたら教えてください。
  • サンプル画像も数式も出てきません
  • UTS使いたいならマニュアル読んで!

とりあえずUTS2.0.4を使いたい

  1. アセットストアで適当なキャラクターを入手する
  2. マテリアルを全部UTSに置き換える
  3. BaseMap,1st_ShadeMap,2nd_ShadeMapの3個に元のdeffuseっぽいテクスチャを張って、下記みたいな感じに影色設定と有効化をする f:id:izm_11:20180512024248p:plain

終わり!!!!後の細かいパラメータはマニュアル読んで下さい。 最初に1影と2影のマップを当てる、というのが以外と忘れる人多そうなので、今日はこれだけ覚えて帰って下さい。

では以下はガガッと歴史的な説明です。

続きを読む

例のプールでオフ会をしてきたので知見を公開します

No.136 Hanazono Room – ピースタジオ CM・ドラマ・映画・グラビア・ロケの撮影スタジオ

こちらの貸しスタジオです。
たまたま機会があり、3時間コースでプールを借りることが出来ました。
得られた知見を公開します。

f:id:izm_11:20180429175543j:plain

予約

電話問い合わせを行います。プールの3時間貸し切りが約5万円でした。(最短利用が3時間からです)
後述しますがプールのみ利用する場合とプールのある階を貸し切る場合で料金が2-3万円変わります。
目安としては4-5人まではプールのみで大丈夫ですが、大人数になるとプールが手狭なこともあり、階ごと貸し切る方が良いかと思います。今回は3人で借りたのでプールのみのレンタルです。

移動

最寄り駅は新宿御苑で徒歩5分程度です。新宿から歩く場合は10-15分程度掛かります。移動中に飲み物を買っておくと良いです。

現地に到着した後は駐車場側から入り、電話で問い合わせると中には入れます。スタッフさんが迎えてくれ、施設の使い方の説明もしてくれます。

現地での注意点

まず、日中の室温がめちゃくちゃ暑いです。4月末でしたが室温が33度を超えています。プール用のクーラーが無い+天井がガラス張りで日光を思い切り浴びるので、めちゃくちゃ暑いです。
タオルの用意と飲み物の用意を忘れるとつらい目に遭います。遭いました。

また、プール内での飲食物の持ち込みは禁止なので、写真撮影を行う際は小物のフェイク飲み物とかを持ってくるなどの配慮か、係の人に事前相談を行う必要があります(プール以外の小部屋や共有スペースは飲み物大丈夫っぽいです)

f:id:izm_11:20180429172324j:plain

現地の環境

プール手前の3m*3m程度の小部屋にコンセントが2口あります。

f:id:izm_11:20180429181925j:plain

しかしプール内にはコンセントがありません。プール内で電子機器を使う予定がある場合は10mの延長コードを持参しましょう。

wifiはフリーwifiがあります。LINEの友達追加でスタジオのQRコードを読み込むと、idとパスワードが書かれたLINEメッセージが届きます。

また、ルータの設定が変な時は係の人を呼ぶと対応してくれます。 参考までにUnityのダウンロード、githubへのpush,pullが通りフィルタリングは掛かっていませんでした。回線速度は休日昼間に50Mbps以上安定して出ていました。 これはプログラミングを行う上で大変便利です。

VTuber流行ってるので指トラッキング手袋を作ってみた

概要

VTuber流行ってますよね。最近の一押しはアズリムさんです!元気で全力なアズリムさんをみんな見て!!!

www.youtube.com

ええと、話を戻すとHTC Viveを使った全身トラッキングをするとき、演者さんの指の開閉をセンシングするには Valve Knucklesやnoitom Hi5などの未発売(*1)なデバイスが欲しくなってしまいます。発売するの待つより自分で作れないかなあって思って作ってみました。

  • ESP8266+モバイルバッテリーで無線運用
  • 曲げセンサで指の開閉を取得してUnityにデータを送る
  • Unity側でキャリブレーションを実装

あたりを行っています。

作った物

現在こんな感じです!

www.youtube.com

試作基板と手袋で動作確認が終わったところです。

作っている様子

3/8くらいに作ってみようと思ってメモを書き散らして f:id:izm_11:20180325195257p:plain

3/11 にブレッドボード上で動作を確認して基板をガッと設計してFusionPCBに発注(結構送料高いお急ぎプランにしたけど10日くらい掛かりますね…)

  • 3/22 にFusionPCBから基板が届く
    f:id:izm_11:20180322235217j:plain
  • 3/23 にはんだ付けして動作確認
    f:id:izm_11:20180324143516j:plain
  • 3/24 くらいに必死で手袋に針と糸をチクチクして実装します。
  • 3/25 に冒頭動画公開

という感じでサクっとやっています。指の開閉はグーで一回、パーで一回抵抗値を覚えておいて間を補完する感じです。

最近はソフトウェアばかり書いていたので、たまにハードウェア絡むと納期があったり、針と糸にCtrl+Zが無いことに苦しんだりして楽しいです♪

最後に

これ完成したら使ってみたいなーって言う方いらっしゃいましたらTwitterのDMでお気軽に相談ください~

(*1) noitom Hi5が基板発注中に発売しちゃいました…もしかしてこのプロジェクト、ポシャるかも…orz

現実と戦うUNET入門

概要

諸事情でUnityのUNETを使わざるを得なくなった人に対するラーニングパスの提案です。

最初に

それUNETじゃないとダメですか?Photonありますよ?Monobitありますよ?また、リアルタイム性が不要だったらNiftyクラウドあります。 あとソシャゲ的な作りの場合はUNETあんまり使わないですよ。LANじゃないインターネット経由のマッチメイキングはUNETも有料ですよ?

UNETのリリース時に謳われたアップデートが遅々として進まないのは、もしかしたらUNETはUnity的に見捨てられてて、ある日突然deprecatedになるかもしれませんよ。

https://forum.unity.com/threads/unity-hello-is-there-anybody-out-there-p.445978/

また、十分な開発期間が取れるならLLAPIやUDPを元にHLAPI相当を自作するとかも検討に入るかもしれませんよ。

…はい、やりましょう。これも人生です。

UNETがあんまり好きじゃない理由

  • ドキュメントの未整備
  • 様々なバグがドキュメントに記載ないまま 「仕様です」のまま放置されている 例: https://forum.unity.com/threads/onstartclient-called-before-scene-is-fully-loaded.427952/
  • ホストマイグレーション未対応
  • 実践的なサンプルの少なさ
  • 出来る人の多くがPhotonに移行してしまうので、初心者向け資料ばかりある(この記事も初心者向けです。なぜなら僕が初心者なので)
  • 標準のNetworkTransformと標準のNetworkAnimatorすら使い物にならないので自作することになる。
  • SyncListを多用するとランダムにパケットロスする

この辺の話を聞いても、まだやりますか… 一応こういうまとめも訳しています。

UNET Unofficial Documentation (Errors, Workarounds, Best Practices)
https://qiita.com/neon-izm/items/8b98d8fbf590b31c72ef

具体的なラーニングパス

最初に 凹みさんの詳説を全部読む。

tips.hecomi.com

1. ひよこのたまごさんのUNET解説記事を全部読んで順番に試す。 http://hiyotama.hatenablog.com/entry/2015/07/06/153000
ステップバイステップの記事として一番情報量が多い日本語記事です。

2. Tank! Networking Demo.を穴が空くほど突つく。 Tank! Networking Demoは、2018年現在において、 まともな 資料があるUNETを使ったネットワークゲームっぽい作りの無料サンプルとしてほぼ唯一です。絶対におすすめです。 アセットストア https://assetstore.unity.com/packages/essentials/tutorial-projects/tanks-networking-demo-46213

解説動画 https://unity3d.com/jp/learn/tutorials/s/tanks-tutorial

Unityフォーラムスレッド https://forum.unity.com/threads/multiplayer-networked-tanks-demo-q-a.356443/ あと、このサンプルはPhoton版もあるので逃げたくなった時の移植も参考に出来ます(ボソッ)

それ以降
もっと凝った物ということで Tank! Reference Project  も2.と同じような感じですがキャラクター選択などの現実的な追加実装が入っています。また戦車かよ!という気もしなくもないですが…

https://assetstore.unity.com/packages/essentials/tutorial-projects/tanks-reference-project-80165

その他メモ(数か月前の自分に向けたメッセージ)

使う技術の取捨選択はこんな感じ f:id:izm_11:20180305154916p:plain

  • NetworkManager,NetworkdDiscoveryはまともにゲーム作るなら99%の確率で継承した自前版を作ることになる。
  • NetworkManagerを使った純粋なサーバークライアントモデルの資料は少ないのでホストクライアントモデルで作った方がマシ
  • Rpcで呼ばないと各端末のオブジェクトが同期しない。(逆に言うと、同期しなくても良い物はRpcを避けた方がネットワークに優しい)
  • 極論すればNetworkTransformやNetworkAnimatorもRpcの糖衣でしかない
  • 随時ジョイン可能なゲームにすると考えることが一気に増えるのでロビー→締め切り→ゲーム開始 型にした方が良い
  • そもそもネットワークゲームを初めて作る時にUNETを選ぶのは悪手。自分のネットワークの理解が足りないのか、自分のUNETの理解が足りないのか、UNET固有のバグかを絞り込めなくて死ぬ。MonobitかPhotonで始めましょう。
  • UNETのAndroidとUnityエディタの通信は、ウィンドウズのファイアウォール切って試すと通信成功したので、横着するならこれで良い気はしました。

以下随時思いついたら追記

https://forum.unity.com/threads/my-compiled-list-of-unet-bugs-issues.403578/

www.raywenderlich.com

UNET使ったカードゲームサンプル assetstore.unity.com

第1回 VTuberハッカソン(バーチャルYouTuberハッカソン)参加してきたwrite up

概要

2018/2/24-25 で開催された VTuberハッカソンで当日結成した「肉1.5倍」という6人チームに参加してきました。得られた知見とか考えていたこととかを書きます。

peatix.com

作った動画はこちら

www.youtube.com

(で、出来れば暇を見つけてもう少しアップデートしたい!) → 一週間後の03/03でアップデートしました。

チームメンバーにも恵まれ、充実した二日間の開発を経て動画を出して、 アユート賞とCGCG賞と玉置P賞を頂くことが出来ました。嬉しいです!

チームビルディング+企画

結構事前にチームを作ったり一人でやると覚悟を決めていたりした人が多い感じでした。 僕は何も考えてなかったので当日結成のチームです。

企画案は 暁ゆ~き さん 暁ゆ~き@C94 3日目 西ね04b (@AkatsukiWorks) | Twitter が考えたパルクール系YouTuberです。
この企画は以下の3点で技術的にチャレンジングでしたが、まあ暁ゆ~きさん(スゴウデ)とナカジさん(スゴウデ)が同じチームだったし、ナントカなるやろ…って感じでいきました。

チャレンジングな点は

  • 当日ゼロベースのキャラモデリング
  • 広いエリアを使った動画(つまりモーキャプ流し込みでは無理)
  • 360動画出力

です。ハッカソンの勢いじゃなければマジで工数を頂きたい…w

企画のコンセプトアートを暁ゆ~きさんが書いて、 f:id:izm_11:20180225235025p:plain それに併せてYouTube出力時のサムネイメージをナカジさんが作って f:id:izm_11:20180225235150p:plain

全体の方向を決めます。 (このタイミングでslackチームを作って、githubリポジトリを立ててます)
現代世界を舞台にするか荒廃したポストアポカリプスで行くか悩みましたが、ポストアポカリプス良いよね、良い。という気持ちで後者になりました。
企画台本をgoogle documentにワイワイとみんなで書いていきます。

余談ですがこの時に40インチモニタを会場であるアカツキ社さんが貸してくれたおかげでスムーズな台本作業が出来ました。ハッカソン会場に大きいモニタは便利ですね。持って行くのはつらいですが…

特に今回は依頼した声の方が日曜日に対応が出来ないので、土曜日中に台本fixをしなきゃいけない。という点で、割と普通の動画製作案件みたいな進め方になります。(台本→コンテ→モーション→モーションに合わせてシーン調整)

こんな感じの台本というかコンテというか仕様書が1日目の夕方に出来上がってます。 f:id:izm_11:20180226001236p:plain

モデリング+実装

モデリングは ガチンコの方が2名いたので分担して2キャラ(ライムさんとお供ロボットのデコポンさん)を作ってもらってます。この辺りは僕詳しくないので、また適宜追記します。 デコポンさん(このお供ロボット)はCADが得意なスゴウデメンバーがラフスケッチを描いてものすごい速度でモデリングしてくれました。すごい… f:id:izm_11:20180226002023p:plain

普通は2日間のハッカソンでゼロからキャラモデリングしない方が良い、とのことです。

実装です。

1日目の内に要素技術をガシガシ検証していきます。

  • PerceptionNeuron環境セットアップ(会場は結構ノイズ厳しかったですが、別室の会議室はノイズが少なかった!ありがたい)
  • 広いエリアを作って決まったルートを歩かせる(スプラインエディタとfollow splineのコンポーネント+mecanimセットアップ芸)
  • 360度動画出力 (Unity2017.3で、AVProのムービー出力のアセットを使いました。パノラマ出力とPostProcessing Stack v1との相性を危惧していましたが、まあ、ギリギリ使える印象です。ブルームが誤爆したりはしなかったです。つなぎ目は目立ちます)

後はモデルが来ることを信じてユニティちゃんで仮のシーンセットアップを作っておいて、各カット毎のシーンを作ってあまりプレハブ使わない運用でいきます(短時間での共同作業を可能にするための措置で、ハッカソンでなければお勧めしません)

最低限の歩き回り+障害物乗り越えジャンプのmecanimステートを作って、上半身をアバターマスク切っておきます。今回は歩く下半身はmecaimのモーションブレンドセットアップで、上半身はセリフに当てた決め打ちのモーキャプ流し込みを使う事にしました。また、後々使いそうなFinalIKの各種セットアップ+パラメータ調整をユニティちゃんを使って、ここでやっておきます。

こうしておくことでモーキャプデータが綺麗に取れなくても、マスクブレンドを使って(例えば無難そうな胴体周りの微動だけモーキャプを当てるとか)逃げられるようにしつつ、最低限のアニメーションを担保できます。

1日目の深夜に台本音声ファイル+何かあった時に備えて汎用っぽい台詞集を受領。これで決め打ちモーキャプを2日目朝に取れます。 ここまでが一日目っていうか二日目の早朝です。

f:id:izm_11:20180226003713p:plain

気合いで完成まで

2日目 モデルが2日目の昼くらいに1stで上がってきました!素敵!かわいい! というわけでモデル差し替えをしてガーッと実装していきます。

1st:ウェイト適当+仮マテリアル
2nd:ウェイト塗り+仮マテリアル
3rd:ユニティちゃんシェーダーセットアップ
4th:口パクモーフ追加

と、計4回のモデル更新がありましたが、うまいこと差し替えます、1stを出来るだけ早く貰うことで、足幅の矛盾やアニメーションの変なところが無いかを確認出来ます。(実際この1stモデル差し替えタイミングで、シーンの建物配置の調整が入っています) 分かる人向けのハマりポイントとして、ブレンドシェイプ(口パクとか)を追加したタイミングでmeta無しfbxのみ書き換えでの差し替えが破綻するので注意です。

そこから先は根性で出来るだけ頑張るという世界なので、Unity上で手をいっぱい動かすだけです。

うう、記憶が無い…

動画をカット単位で出来たシーンから出力する前に、台本ベースで字幕を用意しておいてもらって、Premiereで連結+出力+Youtubeにアップロード。 をしたところで17:00で開発終了です。

担当範囲と感想

こんな感じで手を早く動かしてUnityでガーっとやってました。実装の見切りとかもやってます。

相当に時間ギリギリまでUnityを触ってて(たぶん参加チームのうち、動画出力が一番最後だったはず)割とヘロヘロになりましたが、審査員の方から感想や賞も頂けて、とても楽しかったです。

特にサマーレッスンの玉置Pさんから褒めて頂けたのは、とてもうれしいです!

企画の時点でビビっと来る素敵な案で、初期にコンセプトアートや雰囲気をチーム内で共有できたことで、残り時間を見ながらの取捨選択もスムーズに行えて、結果的に限られたリソースで良い物が作れたのではないか、と思います。

第二回があるかはわかりませんが、工数は修羅場でも、和気あいあいとした雰囲気のチームでとても楽しかったです。

以下、ハッカソン中のチーム名言(?)集

https://speakerdeck.com/izm/shui-wu-yue-raimufalseri-ke-woshao-jie-simasutuspeakerdeck.com

Unity2017 Game Optimization 2017 Second edition読んだ& 最初の100ページくらいの粗訳

概要

Unity 2017 Game OptimizationというUnityの最適化にフォーカスした本が出ています。ちょうど年末年始休みだったこともあり、ざっと読んでいました。 結構読み応えのある本で、知らなかったことも多くて役に立ちました。

https://www.amazon.co.jp/exec/obidos/ASIN/B076T4TW9G/

  • 1章: プロファイル計測
  • 2章: MonoBehaviourの最適化
  • 3章: Bathingの最適化
  • 4章: Artの最適化
  • 5章: 物理演算の最適化
  • 6章: 動的なグラフィックス最適化
  • 7章: XR向け最適化
  • 8章: C# メモリマネジメント
  • 9章: 他のtips集

という量で350ページです。日本語版無いの?と聞かれることもあったので冒頭2章までくらいの粗訳を書いてみました。読んで面白そうだと思ったら是非皆様の本棚にも加えてみてはどうでしょうか。個人的なおすすめは7章のXR向けパフォーマンスチューニングと8章のメモリ最適化です。

続きを読む

2017年12月現在Oculus Rift DK2は使えるのか

概要

使えます。ただし操作をするためにはXBOXコントローラを買いましょう。

セットアップ

OculusのSetup.exe を起動して、セットアップ時にこの画面でHDMIを探してずっとクルクルが回るので、 skip setupします。 f:id:izm_11:20171206024244p:plain

すると、home画面などはDK2のディスプレイには映りませんが認識はされています。
デスクトップ上のOculusからLucky Taleを起動してからDK2を覗き込めば、無事起動しているのが確認できます。(Lucky Tale 1.05で動作確認済)
XBOX コントローラを使うアプリケーションであれば動作するものがある。という感じで覚えておきましょう。

Oculus App上では以下のように認識されていればOKです。(ver 1.20.0.474906で確認)
常に上の方に「Setupがまだだよ!!」という警告が出ますが、気にしなくてOKです。

f:id:izm_11:20171206024547p:plain

Unity上での開発

エディタ実行でもDK2上にプレビューが出来ます。
また、ビルドした実行ファイルを起動すればDK2に映すことが出来ます。

何が出来ないか

あまり詳しくは確認していませんが

  • そもそも古いGPUやOptimus付きのノートPCなどは動作保証外なので動かない可能性が高いです。要スペック確認です。

  • Riftを被っているか判定するセンサがDK2には無いので、市販のアプリでHMDを被ったらゲーム開始、みたいな仕組みが入っているとDK2では遊べない予感です。

  • OculusHome画面は見られません。アプリ起動を切り替えるには都度Oculus Rift DK2を頭から外して、PCモニタ上でアプリを切り替えましょう。

  • また、将来にわたって動作を保証するものではありません。今から新規で購入する場合はOculus Rift CV1をお勧めします。

余談:もし友人などから「余ってるから使ってみる?」と言われたら1-2万円くらいなら買っても良いんじゃ無いでしょうか!

Insta 360Proをガーっと一週間くらい使った感想

概要

現時点のレビュー未満のメモです。

買いかどうか

45万円は、これまでの相場から考えると驚きのバーゲン価格、ステレオパノラマが必要なら現実的に第一選択肢だと思います。 NokiaのOZOとか先行事例より一桁安いし、GoPro2台の魚眼より横向いた時の破綻が少ないし、立体オーディオもいけるし…

微妙に気になった点

起動までの時間

電源入れてから撮影開始までが1分強掛かります。覚悟が必要です。

動画撮影中の電池の減り

大体1時間にバッテリー1本使います。大量購入推奨。

静止画の内蔵スティッチが遅い

特に8kステレオパノラマ。撮影開始してスティッチ終わって、次の絵が撮れるまで30秒くらい掛かります。全部6kステレオパノラマ動画で撮ってPC上で後処理してフレーム書き出しした方が良い気がします。

天頂付近がクシャッとなる

アップデートで修正予定だそうです。

ファンノイズ

これは静かな室内や、ペット撮影ではちょっとつらいかも。ただし内蔵マイクはデジタルノイズキャンセルがあるので、ファンの音はほとんど気になりません。素晴らしい。

スティッチ精度

付属ソフトウェアによるNew OpticalFlowスティッチはすごくスティッチ痕を消してくれます。しかし人工物(背景のビルとか)を人が横切ったりすると、荒れます。 ここら辺は現場で試し撮りして、ガッとOpticalFlowスティッチして確認した方が良いです。 例えば人混みのシーンなんかは、苦手です。

Androidクライアント無し

iOSおよびMacおよびWindows(x64)のみです。Androidで遠隔シャッターだけでも動くと嬉しいので、楽しみにしてます。

めちゃくちゃディスクの空き容量が減る

びっくりしました。ちょっと1週間遊んだだけでPCの空き容量が500GB程度減りました。

マニアックな気になった点

各カメラがシャッターシンクロしてない

ほとんど明かりが無い夜に車が走ってるのを道端で撮ると顕著ですが、各カメラはシャッターシンクロしていません。なのでステレオパノラマにしたときに左右のシャッタータイミング由来の奥行誤認が起きます。

//普通の日中や照明がある用途だと気にならないです

OpticalFlowスティッチ+ステレオパノラマで立体視が破綻する

左目画像と右目画像それぞれで、OpticalFlow計算結果が独立しているようです。なのでカットによっては左右の立体視が壊れます。まあ気にならない事の方が多いですし、多くの場合は左目画像と右目画像は同じようなスティッチをするので問題ないかもしれません。

最後に

重箱の隅を楊枝でほじくるような事ばかり書きましたが、これ45万円は本当にあり得ないほど安いんで、お勧めです。ただ、誰でもどんなシーンでも使える夢の万能機ではない、という事は念頭に置いておく必要がありそうです。

OpenPoseがどんどんバージョンアップして3d pose estimationも試せるようになっている

概要

今年のゴールデンウイークに公開されたCMUのOpenPoseはその推定精度の高さと、(Ubuntuなら)気軽に試せる依存ライブラリの少なさ、結果の分かりやすさから多くのサイトで話題になりました。

github.com

このエントリは、このOpenPoseについての最近(-2017/7)の情報をまとめておく、という備忘録的な意図です。

  • 手と顔の推定が正式追加
  • WindowsBuildが実用的に動く
  • 骨格の3次元座標が(セッティングすれば)取れる
  • 商用ライセンスが正式に発表

あたりがトピックになるかと思います。

手と顔の推定が正式追加

これは話題になった当時からビデオは公開されていましたが2017年7月にコードが公開されました。早速試された方がいるようです。(nnn112358さん凄い!最初のインストール記事も書かれた方です)

OpenPoseのFace Estimationを動かしてみた。 - Qiita

OpenPoseのHand Estimationを動かしてみた。 - Qiita

WindowsBuild済み実行ファイルが実用的に動く

1.0.1相当のビルド済みDemoがzipで配布されています。 github.com

Windows10環境(と、たぶん初期ビルドだとGeforceGTX900番台のGPU)でこの800MBくらいのデモ環境一式をダウンロードして http://posefs1.perception.cs.cmu.edu/OpenPose/OpenPose_demo_1.0.1.zip

bin\OpenPoseDemo.exe --video examples\media\video.avi

コマンドラインで実行するだけで、Windows上でOpenPoseを試すことが出来ます。

f:id:izm_11:20170801125449p:plain

もし、起動に失敗するようであれば以下のリンクを頼りに外部ソフトウェアのインストールやセットアップを行ってください。

openpose/installation.md at master · CMU-Perceptual-Computing-Lab/openpose · GitHub

手や顔の認識も同時に使いたい場合は

bin\OpenPoseDemo.exe --video examples\media\video.avi --face --hand

とfaceオプションやhandオプションを付けて実行すれば良いようです。

参考サイト OpenPoseのFace Estimationを動かしてみた。 - Qiita

骨格の3次元座標が(セッティングすれば)取れる

OpenPose公開時の反応で多かったのが、各関節の3次元座標が取得できるという誤解でした(僕も最初はそう思っていました) しかし、実際にOpenPoseが行っている処理では、画像内の関節の2次元座標(xyの位置)だけしか求めていません。 なのでモーションキャプチャシステムに使うとかの用途だと、そのままでは使いにくい面もありました。

しかし 2017年7月に3次元骨格推定 がコミットされています。

openpose/3d_reconstruction_demo.md at master · CMU-Perceptual-Computing-Lab/openpose · GitHub

現時点ではまだbeta扱いで、UbuntuWindowsでしか動作確認が無いですが、骨格の3次元座標が取得できるデモも作られています。(1.0.2で追加) カラクリとしては複数のカメラの内部行列(視野角とか歪みパラメータ)と外部行列(カメラ間の位置と姿勢)を予め求めておいた後、普通のOpenPoseを起動して、各カメラ上の関節座標の2次元座標を元に、3角測量的に3次元座標を求める、という仕組みです。

推奨カメラはPointGray社のFLIRで、たぶんこれはシャッタータイミングを同期させる事と、速くて高解像度のカメラの方が精度良く推定することが出来る為だと思います。もちろん理屈の上では機種がバラバラのUSBカメラを3台でも求めることは出来ます。

商用ライセンスが正式に発表

以前よりライセンスに「非商用、研究用に限る」と記載されていましたが、正式な商用利用の手段が公開されました。 商用利用の場合は年額25000ドル(約270万円)程度かかるようです。ちょっと高めなのでお財布と相談の上ご利用になれますね!

OpenPose - Realtime Multiperson 2D Keypoint Detection from Video | Flintbox

共著 VRコンテンツ開発ガイド2017 出版されました

ご挨拶

こりん (@k0rin)さんに誘われてMdN様のVR技術書に参加しました。

VRコンテンツ開発ガイド 2017

VRコンテンツ開発ガイド 2017

僕は4章のパノラマ動画プレーヤーのUnity実装について50ページほど書いております。各種パノラマ案件で培った各種ノウハウ、小ネタ等を書きました。

TLで、パノラマ動画関連だと情報が散らばってるなあという話や、しょうもないバッドノウハウが多いなあと思っていたので、こうして本という形にまとめる機会を頂いたことに感謝します。

内容について

パノラマ動画プレーヤーをPC両HMD(MediaDecoder)、Cardboard(EasyMovieTexture)、Unity5.6VideoPlayerそれぞれで実装したサンプルコードが付属しています。ちょっとした動画プレーヤーならコピペでいけます。

ちょっとした動画プレーヤーの例

ハコスコやCardBoardのデモをする時に便利なパノラマ動画再生アプリ作った - izm_11's blog

ソースコードは出版社の方に許可を頂きMITライセンスにしました。また、サンプル動画はCC0です。エンコードテストにバシバシつかっちゃってください。

また、マルチプラットフォーム対応(固有SDK非依存)+3DオブジェクトもuGUIも両対応の視線選択のアセットをUnitypackage形式でフルソースコードで提供しています。いわゆる、秘伝のたれです。これもMITライセンス。

案件やってる時にハマった点と解決策を書面のスペースの空きある限り詰め込んでいます。ハマる前にお守りとして1冊くらい手元に置いておくのはいかがでしょうか!

また、ご不明な点や不備などはお気軽にメンション頂ければ、と思います。

以上、宣伝でした。

本の出版について

紙の本を書くのは大変勉強になりました。

to:社内および社外の下読みを手伝って下さった皆様 ありがとうございます!おかげでヘロヘロのtwitter文体だった原稿が日本語になりました

to:エムディエムの担当の方 章立ての方針や、図説のわかりやすさ、編集作業やライセンスの件など大変ありがとうございました

常日頃からオンライン、オフライン問わず界隈の方が知見を公開していて、それによって大いに勉強になっていました。 僕も今回の本によって、幾分かでも恩返しが出来たら嬉しいです。

wacomの中古液タブを買った

日記エントリです。

概要

wacomの出している業務用液タブは、ヤフオクebayで安価に出ている事があります。 筆圧検知レベルが粗かったりしますが、安くて大きい液晶タブレットは素敵です。

DTU-1931,DTU-2231あたりが、解像度もそこそこ高くて2-3万円ラインなのでお勧めです。 僕はDTU-2231Aを買いました。2万円くらいです。

以下、買う時の注意点です。

ヤフオクで買おうと思ったらACアダプタが欠品

この手の液タブのACアダプタは、内径2.1外径5.5コネクタで12V出力が多いようです。

タブレットの裏側見て「Input 〇V □A」と書いてあったらamazonで〇V □A ACアダプタと検索して買いましょう。アンペアは大きい分には怒られないので12V5Aのタブレットに12V8AのACアダプタ刺しても大丈夫です。電圧はちゃんと合わせてください。

ヤフオクで買おうと思ったらスタイラスペンが欠品

これは大変キツいです。専用ペンだったりします。 一番安全なのはスタイラスが付属している個体を買う事です。次は製品情報を見て純正スタイラスの型番でe-bayや、ヤフオクで探すことです。(スタイラスはe-bayの方が見つかりやすいです。)

一応DTU-2231,DTU-1931は未確定情報ですがHPのタブレットPC(TC4400 TC4200 2710p 2730p 2740p 2760p)に対応しているスタイラスが使えそうです。「PL-800 stylus」という単語でe-bayで調べると安価(2000円くらい)で手に入りそうです。

2017/3/28追記 PL-800を買って試したところ、DTU-2231で筆圧検知して無事使えました

ヤフオクで買おうと思ったらスタンドが欠品

良いモニタアームを付ければ大丈夫です。一昔前は高くてもエルゴトロンが一番!と思っていましたが最近はloctekさんのモニターアームも評判が良いようです。

https://www.amazon.co.jp/dp/B01CE5JB7Q/

というわけで、ジャンクの液タブはパソコンオタクじゃなくて普通の絵描きの人でも手を出しやすいと思います。是非おもしろ半分で買いましょう。 //あと、こういうジャンク液タブ特有の事情ですが、値下がりしきっているので中古で手放す時も、購入時に近い価格で売れます。