ソニーPCLは、ソニー独自の3DCG生成技術を活用したバーチャルプロダクションにおける最新トピックスを紹介するイベントを、東京の「清澄白河BASE」にて開催した。

ドラマやCM、ミュージックビデオ制作におけるVP(Virtual Production)の活用が広がりを見せている一方で、背景アセット制作にかけられる時間的な制約からVP撮影を断念するというケースが存在するという。
今回のイベント(体験会)は、こうした課題に対する解決策の一つとして3DCG生成技術を活用したVP制作における工程を紹介するという内容になっていた。
活用事例として挙げられたのは、TBSドラマ制作チームとの技術検証や、NHKの朝ドラ「あんぱん」、Ooochie Koochie(奥田民生と吉川晃司によるユニット)のMV「ショーラー」で採用。この「ショーラ―」の制作過程を活用事例として、使用スケージュールや効率性、効果的なシーンなどについて解説、他にも、ソニーPCLの直近のVP実績なども紹介された。

TBSドラマ制作チームとの技術検証や、NHKの朝ドラ「あんぱん」、Ooochie Koochie(奥田民生と吉川晃司によるユニット)のMV「ショーラー」で採用されている
このソニー独自の3DCG生成技術を活用したバーチャルプロダクションは、背景のアセット制作を効率化し、背景アセットの制作から、VP撮影まで一貫したサービスを提供することができるというもの。また、実写のリアリティを持ちながら3次元空間としてカメラトラッキングとの連動が可能な背景が制作できることから、インカメラVFXによるクオリティの高い、映像をつくり出すことが可能となっている。
撮影体制も、最小遂行人数は、3~4名で、撮影ナビアプリを活用することで効率的な素材撮影を実現している。また、”NeRF”や”3DGS”といったAI技術をベースにした、独自開発の信号処理技術により高精細でノイズの少ないハイクオリティな画質を生成することができるとしている。表現力においては、映像制作において重要なHDR表現やぼけの再現にも独自技術により対応している。
「清澄白河BASE」で実際のVP撮影状況を再現
「清澄白河BASE」内のバーチャルプロダクションスタジオに設置された巨大なスタジオには、横27.36m、高さ5.47m、解像度が17,280×3,456ピクセル、ソニー製Crystal LED Bシリーズ(LED画素ピッチ1.58ミリ)が眼前に広がっていた。天井のLEDには、横7m、高さ7m、解像度が1,008×1,008ピクセルが設けられており、さらに、横4m、高さ2.85m、解像度が1,536×960ピクセルの可搬式LEDが用意されている。

横27.36m、高さ5.47m、解像度が17,280×3,456ピクセル、ソニー製Crystal LED Bシリーズ(LED画素ピッチ1.58ミリ)が眼前に広がる
カメラは、ソニー製のデジタルシネマカメラ「VENICE 2」が常設されており、カメラトラッキングシステムには、Mo-Sys StarTracker、 NaturalPoint OptiTrack PrimeX41×2、OptiTrack PrimeX22×8withシネマパック(アクティブセンサー)、oARo EZtrack(レンズデータ転送)、送出システムは、インカメラVFXにUnreal Engine4.27/5.11以上対応、映像にはソニーPCLオリジナルメディアプレーヤー「ZOET4」(外部ソースキャプチャ機能付き)、XR送出にSMODEを使用している。
背景アセットは、100~200枚の写真をスチルカメラで撮影したものを、3Dモデリングソフトウェアを使って3DCG生成を行なう。そして、UEプラグインを使って、オンセットで編集・調整をして作り上げていく。この3DCGの生成、及び調整に要する時間は、最短3日という期間で行なうことが可能だという。実際DCCツールなどを活用したフルCGや一般的なフォトグラメトリベースのCG制作には、数カ月単位の工程が必要とされるところを、わずか3日で仕上げてしまうというのは驚きでしかない。そして、UEプラグインを使って、リアルタイムレンダリングした背景映像ををスタジオのLEDディスプレイに表示させ、VP撮影を行なう。
実際にスタジオでの撮影イメージを再現するために、LEDディスプレイに3DCG生成技術により制作した背景が表示された。その素材は、幅27.36m、高さ5.47mという巨大なディスプレイに表示されているとは思えない程高精細で、息を呑むほどに美しいものだった。その背景の前に、モデルが立ち、それをカメラで撮影をすると、映し出される映像は、まさにその場所に出向いて撮影したかのようなリアルな映像を目の当たりにすることができた。正直、これがバーチャルプロダクションとは、思えないほどのクオリティの高さに、ともすれば、気が付かない可能性もありうると感じた。演者が画面で浮いている感じが一切ないのは、"凄い"の一言につきる。

3DCG生成技術により制作した背景を表示させてVP撮影を行なっている様子

実際に撮影したものを大型モニターに出力。全く違和感なく背景に溶け込んでいる

今度は、広島の路面電車車庫の背景アセットで撮影している様子。今にも走り出しそうな路面電車が印象的

顔や腕の影が、より臨場感を醸し出しており、リアルさが際立っている印象を受けた
背景アセットライブラリー等も用意されている
ソニーPCLでは、リアルロケーションから仮想空間など3DCGデータから2D背景まで、バーチャルプロダクションで利用可能な「BACKDROP LIBRARY」(背景アセットライブラリー)の提供が可能とのこと。ニーズに応じた個別カスタマイズにも対応するため、スタジオにおいて、バリエーションのある撮影を効果的に実現することができるとしている。さらに、ソニーPCLがオリジナルで開発したという公道を走行できる360°カメラカーは、高速道路や市街地など国内のさまざまなロケーションでの走行撮影を実現するというもの。車両にはソニー製のデジタルシネマカメラ「VENICE 2」を2台搭載しており、高精細で美しい360°背景の撮影が可能になることから、CM、映画、ドラマまで幅広く対応することができるという。
無限の可能性を感じる
今回、「清澄白河BASE」にてソニー独自の3DCG生成技術を活用したバーチャルプロダクションの活用について体験してきたが、ドラマやCM、プロモーションビデオなど、このような形で撮影が行えることを考えると、改めて、技術の進歩を感じる。
一昔前であれば、背景に緑あるいは、青の布を使用し、背景がない中で演技を撮影している光景が思い浮かぶが、今では、凝視しても、分からない程クオリティが向上している。演者も背景アセットがあった方が演じやすいだろうし、演者自体のクオリティも高まりそうな、そんな印象を受けた。今後、更なる進化が期待できる分野だけに、目が離せそうになさそうだ。
‘).attr({‘id’:’script-vimeo-api’,’src’:’https://f.vimeocdn.com/js/froogaloop2.min.js’}).appendTo(‘body’);console.log(‘vimeo js api loading’);}});var $vimeo_need_replace=$();function checkVimeo($target){if(!window.$f){$vimeo_need_replace=$vimeo_need_replace.add($target);$target.data(‘need_replace’,true);return;}
$target.each(function(){var $ifr=$(this),ifr=$ifr[0],autoplay=$ifr.data(‘autoplay’);var src=$ifr.attr(‘src’).split(‘?’);var q=parseQuery(src[1]);if(!q.api){var id=$ifr.attr(‘id’)||(‘vimeo-‘+(++vimeo_cnt));$.extend(q,{api:’1′,player_id:id});var $new_ifr=$ifr.clone().attr({id:id,src:src[0]+’?’+buildQuery(q)});$ifr.replaceWith($new_ifr);console.log(‘vimeo iframe src replaced:’+$new_ifr.attr(‘src’));return;}
if($ifr.data(‘need_replace’)){$ifr.replaceWith($ifr.clone().data(‘need_replace’,false));return;}
if(autoplay){return;}
var player=$f($ifr[0]);player.addEvent(‘ready’,function(){console.info(‘vimeo:ready’,player);$ifr.data(‘autoplay’,{notinitialized:true,player:player});function startAutoPlay($ifr){if(stop_autoplay){return;}
var autoplay=$ifr.data(‘autoplay’);if(!autoplay||autoplay.notinitialized){var player=autoplay&&autoplay.player||$f($ifr[0]);autoplay={player:player,canceled:false,cursor:$ifr.css(‘cursor’)};player.api(‘getVolume’,function(vol){autoplay.muted=vol;});player.api(‘getLoop’,function(loop){autoplay.loop=loop;});$ifr.data(‘autoplay’,autoplay);}
var player=autoplay.player;if(!autoplay.canceled){player.api(‘setVolume’,0);$ifr.css(‘cursor’,’pointer’);$ifr.data(‘autoplay’,autoplay);if(allow_autoplay){player.api(‘play’);}else{makeAutoplayGif($ifr,function($ifr){var autoplay=$ifr.data(‘autoplay’),player=autoplay.player;player.api(‘seekTo’,0);player.api(‘setVolume’,autoplay.muted);player.api(‘play’);autoplay.canceled=true;$ifr.data(‘autoplay’,autoplay);});}}}
function stopAutoPlay($ifr,cue,clear_autoplay){if(stop_autoplay){return;}
var autoplay=$ifr.data(‘autoplay’),player=autoplay.player;if(allow_autoplay){player.api(‘pause’);}
player.api(‘setVolume’,autoplay.muted);if(cue){player.api(‘setCurrentTime’,0);}
if(clear_autoplay){$ifr.css(‘cursor’,autoplay.cursor);player.api(‘setLoop’,autoplay.loop);autoplay.canceled=true;$ifr.data(‘autoplay’,autoplay);}}
player.addEvent(‘play’,function(){player.playing=true;});player.addEvent(‘finish’,function(){player.playing=false;$ifr.trigger(‘ended.autoplaying’);});player.addEvent(‘pause’,function(){player.playing=false;$ifr.trigger(‘click.autoplaying’)});$ifr.on(‘click.autoplaying’,function(ev){var autoplay=$ifr.data(‘autoplay’),player=autoplay.player;if(autoplay&&!autoplay.canceled&&$ifr.isInView()){stopAutoPlay($ifr,true,true);player.api(‘play’);}}).on(‘ended.autoplaying’,function(ev){var $ifr=$(this),autoplay=$ifr.data(‘autoplay’),player=autoplay.player;player.api(‘seekTo’,0);if(!autoplay.canceled||autoplay.loop){player.api(‘play’);}}).on(‘scrolledintoview’,function(ev){var $ifr=$(this),autoplay=$ifr.data(‘autoplay’),player=autoplay.player;if(!autoplay||!autoplay.canceled){startAutoPlay($ifr);}}).on(‘scrolledoutofview’,function(ev){var $ifr=$(this),autoplay=$ifr.data(‘autoplay’),player=autoplay.player;if(player.playing){if(autoplay.muted){player.api(‘pause’);}else{fadeoutVimeo(player);}}});if($ifr.isInView()){startAutoPlay($ifr);}});});}
if(window._disable_autoplay_onscrolledintoview){return;}
setInterval(function(){checkAll();},WATCH_INTERVAL);var youtube_initialized=false;function youtubeInit(){if(youtube_initialized){return;}
youtube_initialized=true;console.log(‘youtubeInit()’);var _t=setInterval(function(){if(window.YT&&window.YT.Player){console.log(‘youtubeInit():window.YT.Player enabled’);clearInterval(_t);youtube_iframe_api_initialized=true;[‘ENDED’,’PLAYING’,’PAUSED’,’BUFFERING’,’CUED’].forEach(function(s){YT_ST_REV[YT.PlayerState[s]]=s;});}},100);}
var _onYouTubeIframeAPIReady=window.onYouTubeIframeAPIReady;if(_onYouTubeIframeAPIReady){window.onYouTubeIframeAPIReady=function(){_onYouTubeIframeAPIReady();youtubeInit();};}else{window.onYouTubeIframeAPIReady=youtubeInit;}
$(document).one(‘scrolledintoview’,YOUTUBE_SELECTOR,function(){if(!window.YT){$(”).attr(‘src’,’https://www.youtube.com/iframe_api’).appendTo(‘body’);}else{youtubeInit();}});});
/*** combinestatic: from:lib/js/enquire.js ***/
;(function(name,context,factory){var matchMedia=window.matchMedia;if(typeof module!==’undefined’&&module.exports){module.exports=factory(matchMedia);}
else if(typeof define===’function’&&define.amd){define(function(){return(context[name]=factory(matchMedia));});}
else{context[name]=factory(matchMedia);}}(‘enquire’,this,function(matchMedia){‘use strict’;function each(collection,fn){var i=0,length=collection.length,cont;for(i;i=0;$.alert=(function(){$(”).html([‘#commonjs-alert {‘,’position:fixed; bottom:0; right:0;’,’background:rgba(255,255,255,.5); color:black;’,’border:1px solid #ccc;’,’font-size:12px; line-height:1.1;’,’max-width:50vw;’,’}’,’#commonjs-alert:empty { display:none; }’,’#commonjs-alert > div { padding:.25em .5em; display:flex; }’,’#commonjs-alert > div + div { border-top:1px solid #ccc; }’,’#commonjs-alert > div > :first-child { padding-right:.25em; }’,’#commonjs-alert > div > :first-child::before { font-family:FontAwesome; content:”\\f071″; margin-right:.5em; color:darkred; }’,’#commonjs-alert > div > :last-child { margin-left:auto; padding-left:.25em; }’,’#commonjs-alert > div > :last-child:not(:empty)::before { content:”(” }’,’#commonjs-alert > div > :last-child:not(:empty)::after { content:”)” }’,].join(”)).appendTo(‘body’);var $alert=$(”).appendTo(‘body’);function msg(msg,timeout){timeout=timeout===undefined?5000:timeout;var $msg_hit=$alert.children().filter(function(){return $(this).data(‘msg’)==msg;});if(!$msg_hit[0]){var $msg=$(”).append($(”).text(msg),$(”)).data(‘msg’,msg).data(‘cnt’,0);$alert.prepend($msg);$msg.data(‘_t’,setTimeout(function(){this.remove()}.bind($msg),timeout));}else{clearTimeout($msg_hit.data(‘_t’));var cnt=$msg_hit.data(‘cnt’);$msg_hit.data(‘cnt’,++cnt);$msg_hit.children(‘:last-child’).text(cnt);$msg_hit.data(‘_t’,setTimeout(function(){this.remove()}.bind($msg_hit),timeout));}}
return msg;})();$(document).on(‘ajaxSend’,function(ev,xhr,settings){var loc=$(”).attr(‘href’,settings.url)[0];loc.protocol=loc.href.split(‘:’)[0];if(loc.hostname==location.hostname){xhr.setRequestHeader(‘X-Requested-With’,’XMLHttpRequest’);if(settings.type==’POST’){xhr.setRequestHeader(‘X-CSRFToken’,$.cookie(‘csrftoken’));}
if(_NO_CACHE){if(settings.url.indexOf(‘_no_cache=”)

