先日は、HATSUNE MIKU EXPO 2023VRが開催されましたが、今回は360度映像での開催となりました。

 この機能は、YouTubeのサービスで提供されているものなので、個人でもその仕様に合わせたものを用意すると360度映像のコンテンツをアップロードすることが出来ます。
 
 YouTubeでは、

【 映像 】

  ■ 8K対応
  ■ PQ/HLGのHDR
  ■ 360度映像
  ■ ステレオグラム
 
【 音声 】

  ■ 5.1chサラウンド
  ■ 一次アンビソニックオーディオ

に対応しています。

 一次アンビソニックオーディオはSUPER AUDIOと言う名称で

  ■ 360度カメラのマイク
  ■ リニアPCMレコーダー

などで使用できる製品もありますが、前者だとリコーPentaxのシータZシリーズのマイクが対応しており、後者だとZOOMの特殊な構造のリニアPCMレコーダーで対応しているので、軽装でそういった音を録音することも出来ます。

 こうした素材に対応しているので、高解像度の360度映像と8Kの映像に対応しています。音声は前述のように平面的なサラウンドに対応していますが、前述のSUPER AUDIOは 【 一次アンビソニックオーディオ 】 なので、チャンネル数の少ない状態で使用できる指向性が変化するオーディオになります。

 

 

 

  アンビソニックオーディオ

 

 アンビソニックオーディオは、始点の変化に追従して音の向きも変化するものなので、360度映像の場合だと

【 視聴者の始点の変化と同時に音向きまで変化する 】

という特性を持ったコンテンツになります。ゲームの場合だとごく当たり前の仕様になりますが、こうした処理を映像に適応できるのがアンビソニックオーディオになります。一次はチャンネル数が少ないので、4chくらいあれば作れるのですが、前述の製品だと一次アンビソニックオーディオの状態で録音することが出来ます。

 通常は、チャンネル数の多いPCMレコーダーやフィールドレコーダーを用意してモノラルの音声を複数のチャンネル用意して指向性をもたせて録音を行い、そのオーディオが空間上の指向性をもたせた状態でミキシングを行い、そのオーディオをアンビソニックの形式で書き出すことになります。このオーディオを360度用のパノラマの状態で記録された映像に合わせることで視聴者の操作によって生じた視点の変化に追従してオーディオの向きも変化するようになります。

 この少し特殊なコンテンツを気軽に作れるのがTHETA Zシリーズですが、別売のマイクを付けるとアンビソニックオーディオ付きの360度映像を作ることが出来ます。
 

 

 

  ミキシング


 ミキシングについては、MIDIの登場時から存在しているので、実質的に1990年代にはPCがあれば行える状態に鳴っていました。1990年辺りからPCでの

  ■ 動画編集
  ■ 作曲
  ■ コンポジション
  ■ 3DCG

を行うツールが登場し始めるので、これ以降はハードウェアの性能が追いついていないので、ワークステーションを追加するような金額になるもののそういった作業が出来るようになります。

 この時代以降は 【 個人向けのターンキー 】 も登場するので、個人でもテレビ局の編成でやってる処理をこじんまりとさせたような物を扱えるようになりますが、現在のビデオミキサーとかスイッチャーのような製品がその時代から発売され始めます。ただし、金額ベースで考えると、現在のBlackMagicの製品のような価格で同じことが出来るようなものは存在していませんから全く違いますし、製品の仕様にしても等所の製品はPCの映像を取り込んで文字を入れないと汚すぎて使えないなど色々問題もありますが、映像の合成やフィルター処理を機材で調整して行えるようなものが登場しています。

 オーディオについては、アナログなミキサーは前の世紀から存在していますし、PCで音を使う前の時代からアナログミキサーは存在していますから、そうとう昔からそういった製品はありました。ただし、現在のような価格で現在の品質が出るようなものは存在していないので、現在導入できるお手頃価格の製品と同じ品質を現在のコストで出せるような状態には鳴っていません。その為、前の世紀では 【 品質を問わない条件 】 でも

  ■ 映像
  ■ 写真
  ■ 音楽
  ■ 音声

を作るだけでもとんでもなく高コストになる状態になっていました。

 音声のミキシングの場合、ステレオのミキシングの場合には複数のモノラルの音源を用意して左右の空間上の位置情報を追加していくことになります。この時に

  ■ 左右  : パンポット
  ■ 奥行き : 音圧の変化

で指定することが出来ます。当然、奥まった音の場合だと残響音や空間での反響も発生しますから、フィルターを追加して音を作る必要がありますが、音自体で考えるとその代用品として 【 リバーブエフェクト 】 を追加することで距離による変化の調整をすることが出来ます。この考え方に基づいて

【 音源に空間内の座標を与える処理 】

がミキサーによる 【 定位 】 になります。

 その為、こうした処理はDTMが登場する前から存在しているので、音楽の場合、そういったミキシングを行った状態で音が作られています。その為、録音した音源だと 【 音楽としてリリースされている音源のような音の状態になっていない 】 ので、ライブの音と音源として流通している音では作り方そのものが異なるわけです。また、ライブの場合、 【 まかり間違っても簡素な2つのスピーカーで鳴らしているわけではない 】 のでステレオのミキシングとは全く違う考え方のものになります。

 モノラルの場合、音圧の大小と残響音による変質のみですから、奥行きの変化しか記録できないわけですが、この変化も 【 グラフ上の座標変化 】 と同じなので、一次元の数直線では距離の変化しか実装できませんが、平面的な座表示の状右方の場合二次元以上の情報が必要になります。その為、座標軸が二つになりますが、立体になると3つになるように次元の数と指定できる位置情報は比例するので、多次元化しない限り選択できる座標の情報は増加しません。

 音声も同様に一次元であるモノラルだと一つのスピーカーから音圧の大小を指定することしか出来ませんから、ミキシングを行ったとしても

  ■ 音圧の変化
  ■ 残響音や反響

などの情報歯科記録できないので、簡素な処理だと

  ■ フェーダー
  ■ リバーブの量

の情報しか記録できません。これが二次元になると 【 左右 】 と言う考え方ができるので、モノラルでも実装できる2つの情報だけでなく、【 左右の位置情報 】 を追加できるようになります。これで全面の空間に存在する位置情報を追加できるので 【 眼の前にある平面の座標 】 を音に対して指定できるようになります。

 これがネイティブのステレオになります。この条件でコントロールできるのは、周波数の分離による各音質の割当てですから、スピーカーを周波数成分別に役割を与えて鳴らすことで、音の分解能が高くなります。
 
 この構造にすると 【 周波数単位で音を鳴らす事が出来る 】 ので、EQのフェーダーの変化を性格に再現できるようになります。これを左右で同じ状態で配置すれば、位置のズレがない状態で音がなるので、解像度を高くすることが出来ます。

 音声の場合、

  ■ 位置情報
  ■ 解像度

が存在しますが、前者が定位による音の持つ座標で、後者が周波数成分になるので、音の再現力は後者で、音を制作する段階で必要になるのは定位ですから、前者の作業を行うことになります。その作業がミキシングになりますが、ミキシングの場合だとモノラルのソースを録音してその音声をミキシングに使用しているので、ステレオのマイクで録音したものをそのまま使っているわけではありません。

 この辺りは、映像作品でも同じで、 【 ステレオのマイクで録音しただけでは作れない音 】 になっているものもあります。
 

 

 

  サラウンド


 基本的に音はモノラルなので、空間上の音の再現をする場合には、チャンネル数を増やして位置情報を追加することになります。この時に2つにするとそのスピーカー間の座標を指定できるのですが、サラウンドの場合、その音の出る方向を横や後ろに拡張したものになります。一つのスピーカーはモノラルの特性しか持っていないので、ステレオの状態だと 【 全面からの音しか出ない 】 ので後側からの音は見込めません。

 その為、スピーカーの配置する位置を視聴者の横や後ろにすることで音の方向の精度を上げることが出来るようになります。この際の音の解像度はスピーカー性能になります。

 ステレオはサラウンドのチャンネル数を減らしたものなので、 【 ネイティブなステレオでアンビソニックのような指向性を実装するのは構造上不可能 】 です。こうした不可能な状態をステレオで再現しているのがバーチャルサラウンドになりますが、この分野だと、ドルビーやdtsのバーチャルサラウンドが色々な製品で実装されていますが、WINDOWS 10でもバーチャルサラウンド機能が実装されているので、ネイティブの2chとバーチャルサラウンドの選択が出来るようになっています。
 

 サラウンドについては

 

 

でも触れていますが、チャンネル数が増えるだけで再現できるものも変わってきます。音については、中学校の物理で構造について学習し、その波の特性は高校の数学IIで登場数三角関数のグラフと同じものになっていますが、音自体の取り扱いはフーリエ級数などを使うので大学のカリキュラムで学ぶものになります。

 

 

  サラウンドのミキシング


 アンビソニックもサラウンドと同じように多チャンネルのソースを扱うことになるので、何次の音源を作るのかで選択が変わってきます。個人がアンビソニックオーディオを使う場合だとReaperを使うとアンビソニックオーディオの出力が出来るのですが、市販のソフトだと上位の製品だと22.2chや多次アンビソニックなどをサポートしているものもあります。

 現在はサラウンドの書き出しはほとんどのツールで出来るので、Audacityでも結構なチャンネル数の音源を使うことが出来るように鳴っていますし、Blenderでも7.1chまでの平面的なサラウンドの出力が出来るようになっています。

 サラウンドは、9.1ch以降が高さ方向の拡張なので、音の高低差が存在していますが、Fire Tabletや現在のスマートフォンで対応しているドルビーATMOSは、

 【 天井に吊り下げたスピーカーで上からの音を再現する仕様 】

になっています。流石に、天井に穴を開けられないような条件でも対応するためにいネーブルスピーカーを使って天井に反響させて上からの音を作るようなスピーカーセットもありますが、これも一軒家のように天井方向に音を当てても問題がないような環境でしか使えないものになります。

 Blenderの場合だと、ビューポート上のスピーカーオブジェクトの音の位置をカメラオブジェクトの向いている向きを基準に指定できるので、スピーカーオブジェクトの位置関係で音の距離と状態を指定できます。

 スピーカーオブジェクト自体で

  ■ 音圧
  ■ ドップラー効果
  ■ 音の広がり

を指定できるので、自由な音の調整が出来ますが、DAWの場合だとこうした音源をミキサーで調整したり、サラウンド用の空間に対応した音の位置を指定してモノラルの音源お状態を指定することになります。

 現在は、平面的なサラウンドだと個人が使用できるOSSのツールでも行えるように鳴っていますが、アンビソニックオーディオについても音源の用意ができれば試すことも出来ます。

 

 

  映像の場合


 動画制作の場合、

  ■ 映像部分
  ■ 音声部分

がありますから、これをどのようにするのかを考える必要が出てきます。

 音声については、

  ■ セリフ
  ■ 環境音
  ■ BGM
  ■ SE
  ■ それ以外の効果のための音

がありますが、これらをミキシングして使うと作業がしにくいので、編集時にトラックに配置して処理をすることになります。その為、音の調整もノンリニア編集ソフトで行うことになりますが、マシンスペックが高い場合だと、DavinciResolveを使うと

  ■ 音の加工
  ■ 動画編集
  ■ コンポジション

が出来るのでほとんどのことが出来ます。

  ■ 動画編集
  ■ コンポジション

の2つだけだとBlenderでも行えるので、Blenderで素材を作って編集するだけだとBlenderだけで作業を完結させることも出来ます。

 映像の部分は

  ■ 映像
  ■ CG素材
  ■ パーティクルなどの効果
  ■ 文字情報関連

のものがありますが、これらは個別のトラックで扱うことになります。動画制作の場合、基本的に

  ■ 実写映像
  ■ エフェクト
  ■ CG素材

などは個別に作ることになりますから、実写映像はカメラで撮影しますが、それ以外の素材はPCで作ることになります。また、

  ■ コンポジション
  ■ 動画編集

は別の作業なので、これも別の工程になります。というのも、コンポジション自体が素材製作の工程いなるので、

  ■ 一つの映像として完成したもの
  ■ 合成するための素材

の製作を行うので、素材を繋いで一つの動画にする作業とは異なります。その為、コンポジットツールは素材製作という 【 映像の構成要素を作るもの 】 になるので、このツールで動画全体を作ると高付加に鳴ってしまいますしプレギューが重たくなるので通常はそう言った作り方はしません。

 CGAの場合も同様のことが言えるのですが、この場合も実写の動画と同じで

 【 シーンやショット単位で作ってレンダリングをする 】 

ことになります。

 ちなみに、Blendrの場合、一つのプロジェクトの中に複数のシーンを追加できるようになっているので、シーン単体で完結するような作り方も出来ますが、シーンを複数作っておいてレンダリングを行って、それをVideoEditingで合成することも出来ます。Blenderでは、マッチムーブなどのコンポジションもできますが、通常雨のトラック変種も行えます。この際にシーン同士の合成が出来る(Blenderのシーンの設定でも行えます。)ので、複数のシーンで異なることを行いその状態を合成することが出来ます。
 

 

 

  特殊な映像


 平面の360度映像ですが、3DCGの場合だと、この特殊な映像もカメラオブジェクトの設定だけで指定できるので、

  ■ 360度映像
  ■ ステレオグラム

の指定が出来るので、IBLで使用できる円周魚眼や体格魚眼だけでなくパノラマの指定も出来ます。

 こうした処理が出来るのですが、360度のステレオグラムと言う特殊なものもレンダリングを行う前のカメラオブジェクトの設定だけで対応できるようになっているのですが、高解像度のソースが必要になるのでカメラの向こう側に用意するディテールや質感の情報を高くすることになります。

 現在、YouTubeにアップロードできるものとしては、このようなものがりますが、基本的に、こうしたソースも見え方が特殊なだけの高解像度のラスターグラフィックになりますから、通常のレンダリングラスターグラフィックによる画像でシーケンシャルファイルを書き出したり、動画ファイルを書き出すことになります。音声と映像が別の場合、シーケンシャルファイルで書き出しておけば、書き出し可能なフレームまでだと対応できるので、途中で落ちても書き出し出来たフレームまでの画像は残ります。その為、レンダリング時間が無駄になるようなことはありません。

 ちなみに

 ■ ステレオグラム : 横並び
 ■ 360度映像    : パノラマ

なので、4Kの解像度で映像を作る場合でも素材のサイズが4Kよりも巨大になります。ステレオグラムの場合だと、2倍になるので、単純計算でレンダリング時間が2倍に伸びてしまうのですが、パノラマ映像だと、4Kの解像度でも720pとかで高解像度に感じる状態なので、8Kを使っても少し解像度の低い4Kと言う印象になります。その為、4Kの場合だと8K以上の解像度が必要になるので、8Kとなると16K以上の情報を持たせないと通常の8K品質の映像相当の品質になることはありません。その為、360度映像だと結構な解像度になりますが、Blenderの最大解像度は 65,535 x 65,535ピクセル(パノラマで巨大なのを出すことを考えると至極当然な解像度ですが...。)まで対応しているので、動画のコーディックが存在していなかったり、動画にするとストレージの容量が全く足りなくなるような解像度が使用できるのでソフトウェア側で対応していないということはないのですが、GIMPはこれよりも巨大な解像度を扱えるので、動画程度で使用する解像度で上限に達するようなダメなツールは存在していません。

 ちなみに、現在の中版デジタルは1億画素以上で16bitの色深度(65,535階調)ですから、高解像度で階調表現についてもコンシューマのカメラとは別次元のものが撮影できているので、スマートフォンの10bitの色深度のように1024階調のものとは別次元のものを扱えるように鳴っています。

 その為、実写素材の品質もシーケンシャルから作るととんでもない品質のものを作ることが出来るのですが、コストが抑えてあるシネマカムのBlackMagicのカメラだとフルサイズのURSA 12Kがリリースされたので、フルサイズの被写界深度の浅さを再現できるようになっています。映画で使用されているカメラはコンシューマの中版のカメラの日にならないような金額なのですが、シネマカムらしからぬ金額で販売されているものについても、現在は12K撮影や4Kのハイスピード撮影などが出来るようになっています。

 基本的に放送で使用されているコーディックは 【 相当前に策定されたもの 】 で現在のテレビで使用されているハイビジョンも20世紀に策定されたものになります。つまり、もうすぐ四半世紀に達しそうなものですが、開発が始まったのは、もっと前ですから、30年以上前のコーディックということになります。ハイビジョンがない時代やアナログハイビジョンの時代に用意されているものですからその時代から考えると最新鋭のコーディックと規格ですが、現在では見かけないインタレーススキャンの仕様ですから、映像の仕様的にはかなり古い物になります。ちなみに、放送で使用されている1080/60iはインタレーススキャン方式なので気数列と偶数列をフィードとして使用してこれを交互に流すして映像を作る仕様になっていますから、プログレッシブスキャンに変換すると30pになります。この際に1フレーム分のズレが生じているので、合成するとブレ画像が出来上がるので、デ・インタレーススキャン(インタレース解除)の処理でこのブレを補正する必要があります。なので、現在の映像で考えると鮮明さを欠いており、プログレッシブにする場合にもずれた状態を補正する処理が発生します。

 現在のカメラやスマートフォンで記録する映像は全てプログレッシブスキャンですし、光学メディアとして流通しているUltra HD Blue-Rayについては 【 2160/60p 】 なので、プログレッシブスキャン方式に鳴っていますから、Blu-Rayの 【 1080/60i 】 の仕様とは異なります。ちなみに、Ultra HD Blu-RayがSHVの4Kの仕様と同じなのでCSの4Kと同じものになりますが、通常のBlu-Rayは現在のハイビジョンと同じ商なので、インタレーススキャン方式になっています。

 このような映像の仕様に違いがありますが、YouTubeの場合、プログレッシブスキャンが基本なので、書き出しをする際にもプログレッシブスキャンを用いることになります。

 前述のようにステレオ映像や360度映像の場合蓮台rング時間が長くなる傾向がありますが、3DCGAの場合だと、BlenderでCyclesを使ったパストレーシングのレンダリングを行う際には

  ■ OptiX
  ■ Quda
  ■ Hip
  ■ Open API
  ■ Metal

が使用できるので高速化が出来るので、OSL(Open Shading Langage)を使用しない条件だと、こうしたアクセラレーションを使用できます。OptiXはドラフトレンダリングだと物凄く高速なので、NVIDIAのRTXシリーズを使用している場合だと、ビューポートに適応するとCyclesの表示が物凄く高速になります。

 仕事ではなく趣味で使う場合だと少し待ってから最新版に入れ替えるとバグフィックスが終わったバージョンを使えるので、こうしたGPUレンダリングを使用すると速度を稼げるので高解像度の画像の出力にも効果を発揮します。

 基本的に動画のレンダリングは

 【 1枚のレンダリング時間 × 総フレーム数 】

なので、1枚の画像がどの程度の時間で終わるのかでシーンのレンダリング時間も変わってきますから、1枚のレンダリング時間を稼げるGPUレンダリングの速度が向上すると映像素材の出力までの時間を短縮することが出来ます。

 通常の映像だとフルHDや720pで3DCGAを作る場合だと、現在のグラフィックボードでOptiXでレンダリングすると驚くような速度で終わりますが、基本的にリアルタイム処理ではなく演算処理の結果画像を作る処理ですからごく当たり前に時間がかかるわけですが、現在のAAAタイトルで上位のグラフィックボードを使っても60に達しない場合が多いので、高解像度でレンダリングする場合には1秒の映像を作る場合に最短でも数秒はかかることになります。これでも高速な部類ですから実際にはそれ以上の時間がかかります。この速度はグラフィックボードのグレードで変わるので、何を使っているのかで速度も違ってきます。こうした速度の目安がBlenderのベンチマークになりますが、CineBenchはCinema4Dでベンチマークテストの品質のものをレンダリングする際に1フレームが完結するまでの時間を示したものになります。

 その為、3Dのビューポート上の多変数関数のグラフのような空間座標の状態をカメラで見たスクリーン座標に対してシェーダーの計算を行った内容も含めて色彩の情報として各ピクセルに追加する処理がレンダリングになります。これは二次元配列に対して色彩の情報を追加していく処理なので、このピクセルの総数が増えるとその増加分だけレンダリング時間が長くなります。また、フレームレートが増えると枚数が増えるのでレンダリング雨時間が長くなりますが、24Fのようにフレームレートが少ない場合だと、そのままレンダリングするとカクつくので、ブラーエフェクトを追加する必要が出てきます。この場合処理の方法で重くなるのですが、ブラーも演算が増えるのでレンダリング時間が長くなります。

 このようなパストレーシングと異なる方法として、ビューポートレンダリングがありますが、Blenderでは、2.8から導入されたEeveeがそれに該当します。これを用いると驚くような速度でレンダリングが終わるのでグラフィックボードの性能が高い場合、動画の書き出しとは思えない速度でレンダリングが終わります。

 シェーダーを適応した表示の場合、CyclesとEeveeでは全く表示が違ってくる(設定も異なります。)ので、使用するレンダー似合わせて調整していくことになりますが、Eeveeは物凄く早く書き出しが終わるので現在のPCだとEeveeで大丈夫な品質だと個人のPCでも3DCGAを作ることが出来ます。
 
 流石に、2.7のGLレンダリングや現在のworkbenchレベルでレンダリングが行われるMikuMikuDanceのような速度で終わることはありませんが、ブルームやボリュームなどの処理を実装しても結構速いのでEeveeを使ってレンダリングをすると動画を書き出す場合でも現実的な時間の範囲で動画のレンダングが終わります。

 流石に16KとかになるとEeveeやworkbenchでも結構な時間が必要になりますが、同じものをレンダリングするにしても2010年あたりと比較すると現在のレンダリング時間はかなり短くなっています。