iOS/Androidで4k動画を再生できるか調べる + Unityプラグイン
360°動画を再生するUnityスマホアプリ増えてる。
スマホで360°動画を再生するときにやはり気になるのは、解像度。画面の解像度はどんどん上がっているのに、FullHDだとかなり汚く見えてしまう。
iOSではiPhone6s以上から。Androidでも2016年に発売されているものは4k再生をサポートしているのが多い。
そこで、サポートしているものは4k, それ以外はFullHDを再生するために、そもそも指定のフォーマットをサポートしているか調べるネイティブプラグインを作ってみました。
Unity5.6のVideoPlayerはいけてるけど、まだAndroidはサポートしてないので、EasyMovieTextureで確認。
GitHub - asus4/unity-video-supported-plugin: Check iOS/Android supported video format from unity
使い方は簡単。
using AppKit; VideoSupported.IsSupported(1920, 1080, 29.97f); VideoSupported.IsSupported(3840, 1920, 29.97f);
手元の環境ではうまく言ってるんだけど、Android端末をそんなに持ってないので、
試して問題合ったらプルリクください。
OpenCV3 + opencv_contrib on macOS
OpenCV3のトラッキングAPIを使いたくって、macOSでインストールが面倒だったので、メモ。
TL;DR
MacBook Pro (15-inch, 2016)で動く
OpenCV 3.2.0(相当)のフレームワーク置いときました。
http://ibu.tokyo/downloads/opencv-3.2.0.framework.zip
homebrewで入らない
プロトタイプ作業だったので、pythonでやりたいし、homebrewで簡単に入れたかった。
理想はこのオプション
brew install opencv3 --with-contrib --with-ffmpeg --with-python3 --without-python
なんかエラー出る…
brew install opencv3 --without-python --with-python3
brew install opencv3 --with-contrib
これでも駄目。issue見てもいまいちわからず。
なにもオプションつけないビルド済みのもの以外入らないんじゃ…
余談だけど最近のhomebrewはインストールみすると、関連するissueをログに吐いてくれるの便利。
あきらめてソースからビルド
最新のリリースv3.2.0を以下からダウンロード。
opencv_contrib/README.md
に書いてある方法はなぜかめんどくさい方法になっていたけど、frameworkビルド用のスクリプトが用意してあるぽい。
python opencv/platforms/osx/build_framework.py --contrib opencv_contrib build
やったービルドできた。
しかし実行するとTracking moduleが入ってない…。
std::cout << cv::getBuildInformation() << std::endl;
でビルド情報が見れるらしく。
どうやら、依存しているdnnのせいで、trackingモジュールが入ってないぽい。
dnnはディープ・ニューラル・ネットワークのモジュールでCaffeのモデルを読んだりできるらしい。
dnnのCMakeListsを読むと、CUDA使えない環境では使えないようにしている。これ、AMD RadeonなMacじゃ使えないんじゃ…。
あとで調べるとADMでCUDA動かすプロジェクトもあるみたい。だけど流石にそこまではできない。 CUDAをRadeonで動かす(導入編) - Fixstars Tech Blog /proc/cpuinfo
masterビルドできる
で半分諦めるものの、Githubの中を追っているうちに、masterブランチでは修正されていることに気づいた。
同じ方法でmasterブランチ上でビルドすると今度は無事にdnnモジュール、trackingモジュールも入った。
ビルドしたモジュール: core flann imgproc ml objdetect phase_unwrapping photo plot reg surface_matching video xphoto bgsegm dnn face fuzzy imgcodecs shape videoio xobjdetect highgui superres bioinspired dpm features2d line_descriptor saliency text calib3d ccalib datasets rgbd stereo structured_light tracking videostab xfeatures2d ximgproc aruco optflow stitching world
入ってないモジュール: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java python2 python3 ts viz cnn_3dobj cvv dnn_modern freetype hdf matlab sfm
macは好きだけど、開発ではどんどん使えない子になっている…。
サンプル
contribに入っている、ArUcoのマーカーを吐き出すだけの、一番シンプルなサンプル。 github.com
Xcodeでビルドするときに依存ライブラリはこちら。

cv::imwriteとうのファイル読み書きにWebP.framework入れろって怒られたので、iOS用のリンクしたら普通にビルドできた。
oFなどで使う場合はimwrite,imread使わないので、WebPなくても大丈夫。
マスト丼にログ残す実験をして、
ハマったところを後でブログに残そうって思ったりするのでhatenaさんとか、qiitaさんとかのインスタンスが立ったらいいなー。
https://mstdn.jp/@asus4
モデルアニメーション
Unityで水のアニメーションをしたいって要件があった。
Nvidia FLEX使ったけど、今回の用途だとちっと違って、事前のシミュレーション結果をアニメーション制御したほうが良さそうだった。
でもAlembic使うほどではないときに。
(Alembic使えればこっちでいいと思う) github.com
iPhone 7 TAPTIC Engineどれほどのものなのか…
iOS その3 Advent Calendar 2016 - Qiita
16日目の記事です。
iPhone7 plusを買ったのですが、TAPTIC Engineいいですね。
iPhone 7 / iPhone 7 PlusのTAPTICがどれほどなのかを研究する記事です。
UI
UIアニメーションに細かに振動が付いています。
このUIの動きに全部ちがう振動が付いているの気付きましたでしょうか。




FlashではUIアニメーションと音が切っても切れない中でしたが、iPhoneではUIアニメーションと振動がセットになってるんですね。
上から落ちてくるタイミングが完全に合ってるのとか、凄いと思うんだけど。
こちらの記事も面白かったです。
iPhone 7のTaptic Engineが今後のスマホインターフェースを変えるかもの話 - FICC Workbook
さらに自分で叩くことで新しい触感ファイルを作れます。

のりのりの着信音
これは6sからの変化ですが、気になったのは着信音。
TAPTICが以前のバイブレーションとどれくらい変わっているのかの動画がありました。
iPhone 6s Plus Taptic Engine vs iPhone 6 Plus Vibration Motor
圧倒的に表現力が上がってますね。
何をやってるか分析のために、一番有名な着信音の、振動部分の採譜をしてみました。
Score iphone ringtone with taptic
- ハイハットのクローズが短い振動
- オープンが長めの振動
完全に着信音に合わせてきてやがります。
UnityのゲームからTAPTICを試す
こんだけ表現力あるんだし、 UI以外の演出にも使えそうだなーと思ってUnityから使えるようにしてみました。
アニメーションに合わせて震えたり、ダメージで揺れたり。できるかなーと。

- UINotificationFeedbackGenerator
- UISelectionFeedbackGenerator
- UIImpactFeedbackGenerator
のAPIを叩けるようにしてみました。機会があったらゲームとかで使ってみてほしいです。
明日は @soranoba さんです。
カレーまとめ 2016年4月〜
前回の投稿で皆さんに教えてもらった分も含めて今年も色々行きました。 重複してるのは、好きだからか、手軽にいけるから。
前回のまとめはこちら。 asus4.hatenablog.com
家が三茶、オフィスが渋谷なのでその近辺が多い。
前回のも含めた地図
Cafe Red Book @中目黒
ここもFacebook経由で教わった。お薦めカフェカレー。
TOKYO SPICE CURRY @代々木八幡
週一木曜昼だけBAR SARAKAがカレー屋さんになる。常連客が全員知り合い。みたいな感じだった。
渋谷 ネパリコ いいダルバート
Facebookで教えてもらってすぐ行った。ダルバートは恵比寿のソルティモードしか知らなかったけど、ここも良かった。
チリチリ
何回か食べてる気がする…
あしたの箱@ 恵比寿
昼だけの間借りカレー
マリーアイランガニー @渋谷
辛くてよい。
SUNVALLEY HOTEL @ 三軒茶屋
カレーと見せかけて、ビリヤニ!
カレーノトリコ @ 秋葉原
何回か行ってるなあ
香食楽 KaKuRa
便秘は一瞬でなおります。
Amin 三田/田町
入り口は完全に居酒屋。ギャップよい
yinega 渋谷
オフィスから一番ちかい
カンティプール @ 渋谷
一人前とは…
マリーアイランガニー @渋谷
肉球みたいな
コーヒー ガーデン @ 大阪 西三荘
出張行った時に。圧倒的 家カレー
フラヌール@渋谷
タバコ屋さんのステーキカレー
カレー好きがばれていて奥さんの会社の同僚からスパイスセット戴くという。ありがとうございます!