そら☆しゃ〜ぷ

VR/MRとか360camの話題を中心に。

After Effectsの新機能 「VRコンバーター」の謎に迫る

 

After Effects CC 2018の新機能

2017秋に、Adobe PhotoshopやPremiere Pro、AfterEffectsの360関連機能が強化されました。今回の強化では、Premiere ProとAfterEffectsの双方に、基本的には同じ名称のエフェクトが追加されています。しかし、AfterEffectsにはあるけれど、Premiere Proにはないエフェクトもあります。

その1つが、今回紹介する「VRコンバーター」というエフェクトです。

なぜVRコンバーターが気になるか?

私は、KODAK SP3604Kで撮影することが多いです。編集ワークフローは、KODAK純正のソフトで正距円筒図法に射影変換して、それをPremiereで読み込んでいます。

ただ、KODAK純正のソフトの仕様がイマイチで、複数ファイルを一括で処理することが出来ず、ファイル数が多いときには非常に煩わしいのです。

なので、Adobe製品群の方で射影変換できれば、ワークフローが改善されるのではないかと期待しました。

VRコンバーターの仕様が分からない

VRコンバーターエフェクトを適用してみると、以下のような画面が現れます。入力と出力の射影方式を指定すると、その通りに変換されるという、シンプルなUIです。

 f:id:TJ16th:20171217095252p:plain

ここで、魚眼レンズから正距円筒図法に変換しようとした時、厄介なことがあります。それは、魚眼レンズの射影方式です。

実は、魚眼レンズと一言でいってしまいがちですが、射影方式という観点で見たとき、複数の種類があります。正しい射影方式を指定しないと、射影変換後に画像が歪んでしまいます。

各射影方式における、入射角に対する像の大きさ(像高)を下図に示します。正射影、等距離射影、立体射影、等立体角射影というのが、魚眼レンズの射影方式です。

f:id:TJ16th:20171217194549p:plain

魚眼レンズの射影方式によって、入射角に対する像の大きさ(像高)は、このように違ってきます。ですので、射影方式を正しく指定しないと、正距円筒図法にした時に像が歪んでしまうのです。

ちなみに、いわゆる普通のレンズというのが、中心射影になります。中心射影は原理上、入射角が90度を超えることが出来ないので、魚眼レンズには適用できません。

VRコンバーターにおける「魚眼レンズ」の射影方式

魚眼レンズの射影方式の重要性がわかったところで、VRコンバーターの「魚眼レンズ」がどの射影方式を指すのか、検証してみます。

検証方法は色々と考えられますが、今回は以下の方法を取りました。

  1. 5degピッチの等緯度線を描いた、正距円筒図法の図を用意
  2. VRコンバーターで、「正距円筒→魚眼レンズ」の変換を実施
  3. 魚眼レンズの緯線のピッチを測定

というわえで、用意したのが以下の正距円筒図法の図になります。

 f:id:TJ16th:20171217200138p:plain

これをVRコンバーターで画角180°の魚眼レンズに変換した所、以下のような結果となりました。

  f:id:TJ16th:20171217200518p:plain

緯線が見事に等ピッチで並んでいますね。ということは、VRコンバーターの「魚眼レンズ」の定義は、等距離射影だと言うことがいえます。

まとめ

VRコンバーターの「魚眼レンズ」の定義は、等距離射影だと言うことが分かりました。ところで、世の中に存在する魚眼レンズは、等距離射影でないものも多いです。ちなみに、主だったレンズ交換式の魚眼レンズの射影方式は、以下のようになっているようです。

  • SIGMA 4.5mm F2.8 EX DC CIRCULAR FISHEYE HSM:等立体角射影
  • SIGMA 8mm F3.5 EX DG CIRCULAR FISHEYE:等立体角射影
  • Nikon AF-S Fisheye NIKKOR 8-15mm f/3.5-4.5E ED:等立体角射影
  • Nikon AF DX Fisheye-Nikkor 10.5mm f/2.8G ED:等立体角射影
  • Nikon AI AF Fisheye-Nikkor 16mm f/2.8D:不記載
  • Canon EF8-15mm F4L フィッシュアイ USM:不記載
  • Samyang 8mm F3.5 UMC FISH-EYE CS II:不記載
  • Samyang 8mm F2.8 UMC FISH-EYE II:不記載
  • Samyang 7.5mm F3.5 FISH-EYE:不記載

これら、立体射影ではないレンズで撮った画像は、VRコンバーターで正距円筒図法に変換した場合、結果がおかしくなってしまうので、注意が必要だと思われます。

 

Ambisonicで遊ぶ① H2nで録った空間音声の波形を可視化してみる

 

空間音声を理解する

最近は、ZoomのH2nを使って空間音声(Spatial Audio)を録っています。

Youtubeなどで使われている空間音声フォーマットは、1次のAmbisonicというそうで、ある点に入ってくる音を、無指向性成分、前後成分、左右成分、上下成分に分離して記録するそうです。

数学には強くないですが、原理不明のモノを扱うのは、精神衛生上よろしくないので、定性的な理解のために、簡単な実験をしてみました。

なお、音声の扱いについては完全に素人なので、本記事の内容は色々と間違っている可能性がありますので、ご注意ください。

球面調和関数とは?

 1次のAmbisonicで使われる、無指向性成分、前後成分、左右成分、上下成分というのは、球面調和関数の0次項と1次項に当たるものだそうです。詳細な解説はWikipedia等に載っていますが、式で書かれてもピンと来ないものです。

球面調和関数 - Wikipedia

自分のざっくりとした理解としては、1次元の関数がフーリエ級数展開できたり、光学系の波面収差をZernike係数で近似できたりするのと同じ概念で、ある点に入射する音の球面波の波形を球面調和関数で近似するものと感じました。

ゼルニケ近似多項式:光学総合サイト:サイバネット

ただ、1次関数のフーリエ級数展開や波面収差のZernike係数で近似と事情が異なる点として、例えば「前方からくるプラスの音圧と後方から来るマイナスの音圧」が識別できるのか、といった点がモヤモヤするところです。

まずは手を動かして、それから考える

難しいことは考えずに、まずは録ってみて、それから考えることにします。ZoomのH2nを使って、以下のような配置で録音をしてみました。

 

f:id:TJ16th:20171203161326p:plain

音源とマイクの距離は、約1mとしています。音源は約45deg刻みで移動させ、それぞれ同一の波形を出力させます。これをH2nで録音して、波形を比較してみました。

 

 

まずは、90deg(正面)と270deg(後方)を比較してみます。双方ともに、1次(左右)のチャンネルは、ほぼゼロとなっています。また、0次と1次(前後)は、90deg(正面)では同位相、270deg(後方)では逆位相となっているのが分かります。

 f:id:TJ16th:20171216234843p:plain

これはどういう事か。90deg(正面)の2msの瞬間の波形を、球面調和関数の水平方向断面で表現してみたのが下図です。左が各チャンネルの波形振幅の絶対値と合計、右が振幅の自乗を表しています。1次(前後)項がプラスになると、音源が実際にある前方の波形がプラスとなり、後方の波形がマイナスとなります。この時、0次成分がプラスになることで、後方のマイナス分を打ち消します。これで、前方からだけ音が来ている、という状態が表現されるわけですね。

f:id:TJ16th:20171203165009p:plain

同様に、270deg(後方)の2msの瞬間の波形を、球面調和関数の水平方向断面で表現してみたのが下図です。今度は、1次(前後)による前方成分を、0次成分が打ち消しているのが分かります。f:id:TJ16th:20171203170321p:plain

複数の方向から同時に同じ音が来るとどうなるのか?

ここまでで,単一方向から音が来た場合は分かってきました。では、複数の方向から同時に同じ音が来た場合はどうなるでしょうか?

まずは、先ほどの実験で録音した、90deg(正面)と0deg(右)の波形を重ね合わせてみました。すると、45deg(右斜め前)から音が来ているのと同じとなりました。これは、単一音源が45degにあるのか、90deg(正面)と0deg(右)に1つずつ音源があるのかは、区別できないということを示しています。高次のAmbisonicにすれば、おそらく2つの独立した音源として区別できるようになるのでしょう。

f:id:TJ16th:20171203191128p:plain

次に、前後から同じ音が来た場合です。90deg(正面)と270deg(後方)の波形を重ね合わせてみました。すると、1次(前後)成分がほぼゼロとなってしまい、ほぼ無指向性成分だけしか残りませんでした。現実には、完全に同じ音が真反対から入力されることはあまりないでしょうから、実用上は問題ないのかもしれません。f:id:TJ16th:20171203190026p:plain

まとめ

まずは、Ambisonicに関するもやもやは、だいぶ解消された気がします。

今後は、Ambisonicで録音した素材から、後方の音だけを小さくするようなフィルターを作れるといいな、と思ってます。

 

360camの解像評価① ~Theta Vが届いたので撮ってみた~

Theta Vが届いた!

待望のThetaの新型、Theta Vが届きました。

ほぼ同時期に発売となったInsta 360 oneとTheta V。価格帯はほぼ同じながら、性格がだいぶ違うこれらのカメラ。結局わたしは両方購入してしまいました。

f:id:TJ16th:20170917105547j:plain

theta360.com

そんななか、気になる評価をネット上で見かけました。
「Insta 360 oneの方が、Theta Vより解像が勝っている」

360camの解像評価

そういえば、360camは何台も所有していますが、ちゃんと解像を評価したことはなかったです。カメラのどの方向が性能が悪いとか、事前に分かっていれば、撮影時に工夫のやりようもありますしね。俄然興味が湧いてきたので、まずは解像チャートを撮ってみることにしました。

解像チャートは、パール光学から販売されている、小穴式解像力チャート T JIS-BE(N)を使用しました。これは、空間周波数の異なる縦横のチャートが並んでいるもので、どの細かさのチャートまで解像したかで、解像力を判定できます。amazonから1080円で購入できます。

小穴式というと、小さい穴が空いているのかと勘違いする方もいるかもしれませんが、小穴というのは人名だそうです。小穴純さんという東大の先生が考案されたとのことです。

ちなみにチャートホルダは、3Dプリントによる自作です。

f:id:TJ16th:20170917105633j:plain

www.amazon.co.jp

 今回は、この小穴式チャートをカメラから50cmの位置に置き、カメラの姿勢を振りながら撮影してみることにします。

ちなみに、今回購入したチャートは、一番粗いもので3.16mmピッチ、一番細かいもので0.22mmピッチとなっています。撮影距離50cmだと、角度分解能に換算して、2.8lp/degから39.4lp/degまでに相当します。Theta Vの静止画フォーマットからくる空間サンプリング周波数が7.5lp/degなので、十分な解像力を持ったチャートと言えます。

撮影方法

Insta 360 oneもTheta Vも、ともに2眼式の360camになっているので、それに特化した方法で測定することにします。下図のように、両眼の中心を通るように、チャートとカメラの相対姿勢を決めました。また、チャートの縦・横線は、レンズのメリジオナル・サジタル方向と一致するように配置します。

f:id:TJ16th:20170917040055p:plain

この軌跡をEquirectangular(正距円筒図法)、Equidistance(等距離図法)で示すと、以下のようになります。

f:id:TJ16th:20170917040049p:plain

撮影結果

撮影した画像のチャート部分だけを切り出し、位置を変えずにPhotoshopで合成してみました。その結果を示したのが下図になります。概ね、想定した姿勢で撮影できていることが分かります。f:id:TJ16th:20170917040751j:plain

せっかくなので、360画像としても鑑賞できるようにしてみました。チャートに囲まれた360映像は、なかなか壮観です。

Post from RICOH THETA. - Spherical Image - RICOH THETA

今後の展開

チャート撮影結果から解像力の定量化をしたいです。あと、できればInsta360 OneやTheta Sとの比較をやってみたいと思ってます。

 

 

 

Gear VRに個性と愛嬌を!HMD用デコレーションシールの製作

 

 はじめに

前回のSUUMOスコープの投稿でも触れましたが、現状のVRHMDは無機的なデザインのものが殆どです。HMDを装着している様子は、冷静に見るとかなり違和感があります。いくつか原因はあると思うのですが、まず端的に言って、可愛くないのです。

また、Ocufesなどのイベント会場で、皆が同じようなOculus DK2やGear VRを使用しているのは、無個性で面白みに欠けるような気がします。

そこで、 まずはGear VR(製品版)をターゲットに、手軽にデコレーションをするためのシールを自作してみました。 

f:id:TJ16th:20160307033230j:plain

試作デザイン

SUUMOスコープのような、目をあしらったデザインを狙ってみました。これは仮説ではありますが、鳥害よけの目玉バルーンやモスラの羽の模様のように、眼球状のデザインには生物を本能的に惹きつける魅力があるのではないかと思うのです。

また、世間的にはOculusブランドの知名度は徐々に高くなってきている印象なのですが、「Gear VR って オキュラスなの?」と聞かれてしまうことがあります。 

すなわち、デザインのコンセプトとして、以下の通り掲げてみました。

  • 有機的なイメージ
  • 眼球をあしらった、顔のようなイメージ
  • Gear VRはOculusだと主張すること

VRで眼球といえば、Oculusの旧ロゴが印象的な存在です。このロゴを拝借して2つ並べて、顔に見立ててみました。また、南国の祭事に使用するお面のイメージで、背景をあしらってみました。

f:id:TJ16th:20160307043335j:plain

 

デコレーションシールの作成手順

今回は、Gear VR(製品版)のカバー前面にシールを貼ることにします。工程は、以下の通りです。

  1. カバー前面形状の型どり
  2. Illustratorでのデザイン製作
  3. シール素材への印刷
  4. カッティングマシン(Craft ROBO)での切り抜き
  5. 貼り付け

順を追って、簡単に説明をしていきます。

1.カバー前面形状の型どり

トレーシングペーパでカバー前面形状をなぞり、それをスキャンします。後工程でカッティングマシンで切り抜くため、Illustratorでトレースをして、ベクターデータとして扱えるようにしておきます。

f:id:TJ16th:20160307043630j:plain

2. Illustratorでのデザイン製作

Illustratorでデザインを作成していきます。所有しているカッティングマシンであるCraft ROBO CC330-20のプラグインが、最新のIllustrator CC 2015では非対応のため、仕方なく旧バージョンのCC2014を使用しています。

f:id:TJ16th:20160307042255j:plain

3. シール素材への印刷

家電量販店やネット通販で、家庭用インクジェットプリンタで使用可能なシールが販売されています。シールには様々なタイプが存在するのですが、今回使用したのは、A-ONEの「ピッタリ貼れる 伸びるラベル A4」というもので、シール自体が伸縮性を持っているので、曲面でも皺にならずに貼れるという特徴があります。

このシールを使用するうえで注意すべきは、「染料インク専用」という点です。インクジェットプリンタで使用されるインクには、大別して染料と顔料があり、現在の主流は顔料となってるようです。両者はインクの特性に違いがあり、このシールには染料インクしか対応していないのです。

染料インク対応のプリンタはいくつかありますが、自分はキャノンのMG6130という複合機を使用しています。

 4. カッティングマシン(Craft ROBO)での切り抜き

シンプルな形状なので、普通のカッターで切り抜いても構わないのですが、面倒なのでカッティングマシンを使います。カッティングマシンは、ペンプロッタのペンの代わりに、カッターの刃がついているような機械です。説明は省略しますが、段取りコミで、モノの数分で自動的にシートをカットしてくれます。数万円で購入できる割に、いい仕事をしてくれるので、興味がある方にはお勧めです。

5. 貼り付け

Gear VR(製品版)のカバー前面に、作成したシールを貼り付けます。シールの位置決めが難しく難儀しましたが、今回使用したシールは何度も貼り直しができるものでしたので、納得いくまでトライアンドエラーを繰り返しました。

 

あとがき

今後も色々なデコレーションシールを作成してみたいです。たとえば、ユニティちゃんの顔になるものとか、ロボコンみたいに目がクルクルアニメーションするとか。

HMD界がより可愛く、より個性的に進化していくことを願っています。

無料でVR-HMD!新旧SUUMOスコープを比較する

 はじめに

世の中には、2種類の人間が存在します。それは、VRを体験した人と、していない人です。VRが爆発的に普及しない理由の一つには、まだ体験する場所が限られてること、そして体験したとしてもHMDにお金をかけるのにはまだ抵抗があることが挙げられると思います。実際、Google Cardboardタイプのものだと、500円でも高いと言われたこともあります。価格に見合うコンテンツ・UXを提供することと、コストを下げることの両面が必要ではないでしょうか?

無料のHMD

(株)リクルートホールディングスから無料で頒布されている「SUUMO 新築マンション」には、新築マンションのバーチャル内覧用にCardboardタイプのHMDが付属しています。Cardboard互換とは公式に謳われていないと思いますが、Cardboard用のアプリやYoutubeのSide by Side動画の鑑賞にも使用することができます。

f:id:TJ16th:20160225074804j:plain

 

目がついてる!

SUUMOスコープの魅力として、目をあしらった特徴的なデザインが挙げられます。まだVRが認知されていない現状では、HMDを装着している様子は、端から見るとまだまだ違和感があるものだと思います。しかしSUUMOスコープならば、装着者をコミカルに演出し、違和感を緩和してくれるように感じます。

 f:id:TJ16th:20160225074808j:plain 

2015/9月版と2016年/2月版の比較

SUUMOスコープは、SUUMO新築マンション誌に毎号付属しているわけではありません。はじめて付属したのが2015年9月、そして新たに現在配布中の号でも付属しています。

2015/9月版(以後、旧版と呼称)と2016年/2月版(以後、新版と呼称)で何が変わったか、比較してみましょう。

 

f:id:TJ16th:20160225074801j:plain

まず、正面から見た写真です。左が旧版、右が新版となります(写真の配置は以下同様)。デザイン・サイズともに、特に大きな違いは見られません。

 

f:id:TJ16th:20160225074802j:plain

上面から見た写真です。スマホ装着部から接眼レンズまでの距離が遠くなり、額を当てつける面の曲率が緩くなっているのが分かります。旧版は眼鏡をかけたまま装着できない難点があるのですが、残念ながら新版でも改良はされていませんでした。

また、新版は「天面」表記やスマホ落下の注意喚起など、注記が充実しているのが分かります。

 

f:id:TJ16th:20160225075750j:plain

 右側面の写真です。ここにもスマホ落下の注意喚起があります。よほど旧版でスマホが落ちたというクレームがあったのではと、勘ぐってしまいます。

 

f:id:TJ16th:20160225074806j:plain

下面の写真です。スマホ操作用の穴の仕様説明が追加されています。

 

f:id:TJ16th:20160225074807j:plain

 裏面です。接眼レンズの構造が大幅に変更されているのが分かります。また上下の表示が追加されています。

 

f:id:TJ16th:20160225074803j:plain

 接眼部のパーツ単体を、裏側から比較します。旧版はプラスチックの単レンズを段ボールで挟み込んで保持していました。挟み込んでいる段ボールの穴同士の同軸度が悪く、レンズが脱落しそうな構成です。また、製造時の組み立ても大変な気がします。

一方で新版では、フレネルレンズにして両眼を1部品で構成し、段ボールに貼り付けるだけの構造です。部品単価の軽減と組み立て工数・コストの削減、信頼性の向上が実現できているのではないでしょうか。

 まとめ

HMDを無料配布する上で、まず気になるのは製造コストです。SUUMOスコープは世代を経て、着実にコストダウンを実現してきているように感じます。

また、装着・操作方法の注記が増えたのも好感がもてます。

HMDの無料配布で新しいVRビジネスを拓くSUUMOスコープの動向に、今後も注目していきたいと思います。

 

脳の演算機能を拡張する!ホビーユース向け MATLAB Homeの導入

はじめに

 ヨドバシアキバの上の有隣堂をブラブラしていたら、平積みにされた最新のInterfaceの表紙が目に飛び込んできました。

「ラズパイで初体験!強力ホビー用MATLAB

 2016年2月号目次|Interface

MATLABなんて超高価なソフトが、なんで特集されてるんだろう?ラズパイとどんな関係が?と手に取ってみると…。

  •  MATLAB Homeというライセンスがある。非商用ホビーユース・個人向けで、たったの14900円。Simulinkや各種Toolbox(機能拡張パック)も、4490円から。
  • MATLABで作成したモデルを、ラズパイで動かせる。

これはもう、購入するしかありません!ああ、なんでもっと早く気づかなかったのでしょう?数年前に、国内代理店がサイバネットからMathwoksに移行したのですが、それと関係あるのでしょうか?

MATLABとは?

MATLABはいろいろな用途に使えるので、人によっても意見が違うかもしれませんが、自分にとっては超お手軽・数値計算ソフトです。

  1. 大きいデータを容易に扱うことができます。測定データを解析するとき、少し前のExcelでは65535行までしか扱えませんでした。最近のExcelではもっと大きいデータが扱えますが、すべてセルで計算するのは面倒なものです。Matlabでは、データを1つの行列として扱える上に、行列同士の演算も楽に行えるので、取り扱いが非常に楽です。
  2. 簡単にスクリプトを書くことができます。変数の型定義が不要なので、どのような計算をするかに、思考を集中することができます。
  3. グラフ化が簡単です。エクセルで複数のグラフを体裁よく整えるのは結構面倒なのですが、Matlabスクリプトから効率よくグラフを描画することができます。
  4. Toolboxにより、各種用途に特化した機能拡張ができます。
  5. 業務用のライセンスは、非常に高価です。公式ページの情報によれば、1ライセンスで295,000円もします。

つまり、たいへん便利だけど非常に高価なソフトが、Matlabというわけです。Matlabとほぼコマンド互換性があるOctaveScilabといった無料で使えるソフトもあるのですが、グラフ表示やToolboxなどの使い勝手はやはりMatlabが一番です。

そんなMatlabが、たったの14900円というのは、まったくの驚きです。

Toolboxの選択

 4490円でToolboxを購入できるとなると、あれもこれもと悩んでしまいます。

ひとまずはブロック図によるモデル表現が可能なSimulinkと、画像処理関連の基本機能が備わったImage Processing Toolbox を購入することにしました。

これから

まずは、全天球映像の射影変換でいろいろと遊んでみようかなと思っています。

寝ても醒めてもVR。GearVR内蔵枕を試作してみた

はじめに

GearVRを購入してから、「肩こり」に悩まされています。

Netflixアプリで、ついつい夢中になって映画を観てしまうのですが、首への負荷がバカにならないのです。何しろ、Galaxy S6edgeが133g、GearVR本体が318g。こんな質量を顔の前にぶら下げれば、肩もこるというものです。

直立姿勢でも、仰向けでも、いずれにせよ首に負荷が生じてしまいます。ならばうつ伏せではどうでしょうか?枕にGearVRを内蔵すれば、箱メガネのようにVR世界を満喫できるのではないでしょうか?

ベースとなる枕の選定

加工性を考慮して、一体成形の低反発ウレタン枕をベースとすることにします。特にブランドにこだわりはなかったので、近所のニトリで「かたくならない低反発ウレタン枕(ソフティ)」を税込1490円で購入してきました。

かたくならない低反発ウレタン枕(ソフティ) | ニトリ公式通販 家具・インテリア通販のニトリネット

f:id:TJ16th:20160116225027j:plain

低反発枕の加工

 「かたくならない低反発ウレタン枕(ソフティ)」は、低反発ウレタンをニット生地が覆う構成になっています。まずはニット生地を取り外し、低反発ウレタンをGearVRの形状に合わせてくり抜きます。

当初はカッターナイフでの加工を考えていたのですが、刃を引いても容易に変形してしまうので、思いのほか加工性が悪いです。こんな場合はハサミの出番。工作用のハサミでザクザクと切りこんでいきます。

GearVRを挿入するとウレタン側が勝手になじんでくれるので、くり抜き形状の精度はラフで問題なかったです。目の周りだけ穴が開いていると、実際に寝た時に鼻と口への圧力が高くなりすぎるので、鼻の位置にも穴を設けました。

f:id:TJ16th:20160116225028j:plain 

試作結果と今後の課題

1.装着感

快適な装着感を得るためには、顔面をGearVRに確実にフィットさせつつ、圧力を分散させなければなりません。GearVRの高さ調整をすることで、ある程度は対応が可能でしたが、長時間の使用は厳しいかなと感じました。

2.呼吸のしやすさと光学系のくもり

低反発ウレタンの通気性が悪く、うつ伏せ寝で呼吸がしづらいです。また、呼気がメガネやGearVRの光学系の周りを通過するため、くもりが生じます。呼気の流路をGearVR用の穴とは別に確保してやる必要があるかもしれません。

3.アプリ対応

Oculus Homeをはじめ、多くのアプリがうつ伏せ状態での使用を前提としていません。また操作系もBluetoothコントローラ非対応だと扱いにくいです。

まとめ

GearVR内蔵枕の試作を通して、課題が見えてきました。呼気の流路をいかに確保するか、低反発ウレタン以外の素材を使用するか…。アイデアが浮かんだら試作第2弾を作成してみようと思います。