のしメモ アプリ開発ブログ

Unityアプリとかロボットとか作ってるときに困ったこととかメモ

アルファチャンネル付き動画をモバイルで再生させる

解決したいこと

アルファチャンネル付きの動画をモバイルで再生させたい
※ 今回の手法はモバイルだけでなく他のプラットフォームでも可能ですが、動作は未確認になります。

どう再生するか

公式のVideoPlayerはアルファチャンネルつきでも再生可能ですが、WebMへの変換をしないといけません。今回はWebMへの変換をせずに再生してみます。
WebMで再生する場合は下記をご参照ください。
tsubakit1.hateblo.jp

今回はAVPro(有料Aseet)を利用し、動画とアルファチャンネルの情報を別にして変換し再生します。
これにより、アルファチャンネル自体は読みにいかなくなるので、それなりに安定して動作する…はず?
ちなみにAVProは TOP BOTTOM式、LEFT RIGHT式に対応しています。

AVProはこちら

動作確認環境

開発環境 Windows 10
Unity5.6.5p1
AVPro 1.7.5
ffmpeg 20180227-fa0c9d6 3.4.2
確認環境 Android 7.0

動画を変換する

今回変換する元の動画(スクショ)

f:id:noshipu:20180309144749p:plain

TOP BOTTOM式

変換したい動画の名前をtest.movとし、test_tb.movを書き出したい場合
下記をコマンドラインで実行

ffmpeg -i test.mov -vf "split [a], pad=iw:ih*2 [b], [a] alphaextract, [b] overlay=0:h" -y test_tb.mp4

変換後
f:id:noshipu:20180309145448p:plain

LEFT RIGHT式

変換したい動画の名前をtest.movとし、test_lr.movを書き出したい場合
下記をコマンドラインで実行

ffmpeg -i test.mov -vf "split [a], pad=iw*2:ih [b], [a] alphaextract, [b] overlay=w" -y test_lr.mp4

変換後
f:id:noshipu:20180309145332p:plain

Unityに組み込む

1. AVProをインポート
2. 変換した動画を入れる
3. 任意のオブジェクトにMediaPlayerをアタッチ
4. 変換した動画のパスをSourcePathに指定
5. Visualの項目のTransparencyを[Top Bottom]、または[Left Right]に指定
f:id:noshipu:20180309145757p:plain
6. 任意の再生させたいMeshに適応させればモバイルでも透過した動画を再生させることができる
f:id:noshipu:20180309151138p:plain

iPhoneXの表情パラメータをまとめてみた

iPhone XのDepth Cameraで表情のパラメータを取得できますが、数が多くわかりにくいのでまとめてみました。

FaceTrackingのパラメータをUnityで取得する方法はこちらをご参照ください。

f:id:noshipu:20180227174633p:plain

f:id:noshipu:20180227174644p:plain

f:id:noshipu:20180227174652p:plain

まとめてみましたが、やっぱりややこしいです。

パラメータ一覧

BrowDownLeft        =   "browDown_L";
BrowDownRight       =   "browDown_R";
BrowInnerUp         =   "browInnerUp";
BrowOuterUpLeft     =   "browOuterUp_L";
BrowOuterUpRight    =   "browOuterUp_R";
CheekPuff           =   "cheekPuff";
CheekSquintLeft     =   "cheekSquint_L";
CheekSquintRight    =   "cheekSquint_R";
EyeBlinkLeft        =   "eyeBlink_L";
EyeBlinkRight       =   "eyeBlink_R";
EyeLookDownLeft     =   "eyeLookDown_L";
EyeLookDownRight    =   "eyeLookDown_R";
EyeLookInLeft       =   "eyeLookIn_L";
EyeLookInRight      =   "eyeLookIn_R";
EyeLookOutLeft      =   "eyeLookOut_L";
EyeLookOutRight     =   "eyeLookOut_R";
EyeLookUpLeft       =   "eyeLookUp_L";
EyeLookUpRight      =   "eyeLookUp_R";
EyeSquintLeft       =   "eyeSquint_L";
EyeSquintRight      =   "eyeSquint_R";
EyeWideLeft         =   "eyeWide_L";
EyeWideRight        =   "eyeWide_R";
JawForward          =   "jawForward";
JawLeft             =   "jawLeft";
JawOpen             =   "jawOpen";
JawRight            =   "jawRight";
MouthClose          =   "mouthClose";
MouthDimpleLeft     =   "mouthDimple_L";
MouthDimpleRight    =   "mouthDimple_R";
MouthFrownLeft      =   "mouthFrown_L";
MouthFrownRight     =   "mouthFrown_R";
MouthFunnel         =   "mouthFunnel";
MouthLeft           =   "mouthLeft";
MouthLowerDownLeft  =   "mouthLowerDown_L";
MouthLowerDownRight =   "mouthLowerDown_R";
MouthPressLeft      =   "mouthPress_L";
MouthPressRight     =   "mouthPress_R";
MouthPucker         =   "mouthPucker";
MouthRight          =   "mouthRight";
MouthRollLower      =   "mouthRollLower";
MouthRollUpper      =   "mouthRollUpper";
MouthShrugLower     =   "mouthShrugLower";
MouthShrugUpper     =   "mouthShrugUpper";
MouthSmileLeft      =   "mouthSmile_L";
MouthSmileRight     =   "mouthSmile_R";
MouthStretchLeft    =   "mouthStretch_L";
MouthStretchRight   =   "mouthStretch_R";
MouthUpperUpLeft    =   "mouthUpperUp_L";
MouthUpperUpRight   =   "mouthUpperUp_R";
NoseSneerLeft       =   "noseSneer_L";
NoseSneerRight      =   "noseSneer_R";

【2017年】作ったもの総まとめ

今年(2017年)に作ったものをTwitterを追いながらまとめてみる

1月

Makebox

VR Oculus Rift CV1 リリース


2016年秋ごろからコツコツ作ってたのをリリース

続きを読む

VR用のPCを組んでみた

Fallout4 VRをちゃんとやりたいのと、サイバーマンデーが来たのでPCを組むことに。

予算は「20万ぐらい」で「GTX 1080を搭載したVR ReadyなPC」を目指す。
また、開発でも使うので多少オーバースペックになってもOKという感じ。

買ったパーツをまとめました。

マザーボード

サイバーマンデーで安くなっていたのでこれをベースに。
好きな色で一部を光らせることができます。

ASRock Intel Z270チップセット搭載 ATXマザーボード Z270 Extreme4

ASRock Intel Z270チップセット搭載 ATXマザーボード Z270 Extreme4

CPU

7700は欲しいけど8000番台は予算オーバーかなと思いこれを購入

CPUクーラー

売れてるやつに

サイズ オリジナルCPUクーラー 虎徹 Mark II

サイズ オリジナルCPUクーラー 虎徹 Mark II

メモリ

DDR4で人気のものに。黒色も同じ値段だったので、せっかくなので赤を選びました

GPU

1080!

ASUS NVIDIA GeForce GTX1080搭載ビデオカード メモリ8GB TURBO-GTX1080-8G

ASUS NVIDIA GeForce GTX1080搭載ビデオカード メモリ8GB TURBO-GTX1080-8G

SSD

サイバーマンデーで20%オフになっていたので、M.2にしてみました

SSD用ヒートシンク

熱くなりやすいみたいなので念のため

アイネックス M.2 SSD用ヒートシンク HM-21

アイネックス M.2 SSD用ヒートシンク HM-21

HDD

とりあえず安くて売れてるやつに

電源

750Wで十分かなぁと。あとは80PLUSでゴールドのやつで絞って買いました。

PCケース

サイバーマンデーで安くなっていたのと、マザボが光るのでそれが見えるのでないとダメかなと。
光るファンの色は変えられます。裏に配線回せて結構すっきりな感じになります。

Corsair Crystal 460X RGB ミドルタワー型PCケース CS6657 CC-9011101-WW

Corsair Crystal 460X RGB ミドルタワー型PCケース CS6657 CC-9011101-WW

合計の購入金額

購入時の価格で計算してみました。

マザーボード 14,532
CPU 35,244
CPUクーラー 3,635
メモリ 22,335
GPU 61,636
SSD 25440
ヒートシンク 575
HDD 8,580
電源 10,794
PCケース 12,796
合計 195,567円

これにOS等のソフトウェアの料金が入りますが、BTOパソコンで同じスペックのものだと、24万ぐらいはするので若干お買い得という感じでしょうか。
組み立ての手間と初期不良だったりのコストやリスク等も考えるとBTOで買ったほうがよさそう。

パフォーマンステスト

f:id:noshipu:20171214195142p:plain

これでしばらくは快適なVR生活を過ごせそうです。