2020年5月

Tips

modoのシェーダーノードでレンズディストーションエフェクト

modoのシェーダーノードを使って、カメラのレンズゆがみのような効果を制御する方法が解説されてたので写経してみました。

カメラの回転とShader Inputのレイ方向をそろえた後、レイ方向のXYを任意に編集した結果をRayCastでFinal Color Outputに戻すというのが基本的な流れのようです。

 

球面

球面のようにレンダリング。

サンプルファイル

 

ディストーションのカーブ制御

カーブを使用してゆがみ制御。

サンプルファイル

 

ディストーションのテクスチャ制御

テクスチャを使用してゆがみを制御。

サンプルファイル

 

レイ方向を制御する方法はポストエフェクトによるゆがみと異なり、ピクセルが荒くなったりせずシャープな画像を維持できるのがメリットです。しかし、欲しいゆがみを計算で求めるのが難しいです。
シェーダーノードはレンダリングも遅いので、テクスチャオフセットのように、もう少し手軽に使えるような機能があると嬉しいですね。

 

参考

詳細な解説をしてくれた館長さんに感謝です。

 

Tips

modoでカメラの視野角を計算する方法

modoでカメラの視野角を計算することができたのでメモしときます。

modoのカメラではプロパティで「視野」を確認することはできますが、「視野」チャンネルをスケマティックに追加することができません。Expressionノードを使用すると「視野」を計算することができます。

 

一般的にカメラの視野角は以下の計算式で求めるそうです。

視野角=2*atan(イメージセンサー幅/(2*焦点距離))

 

これをmodoのExpressionで計算します。Expressionノードには入力Aに「焦点長」、入力Bに「フィルム幅」を接続します。atanを使うとラジアンになるらしいので、最後に角度に変換します。

2*atan(B/(2*A))*180/3.141592

modoの視野チャンネルと同じ値が計算できています。

 

カメラの視野角が計算できるとカメラから見える範囲にだけ処理を行うことができるので、ビューポートが重い場合に効果的です。例えばカメラの見える範囲だけReplicatorを表示することができます。下の画像では視野に合わせて自動的にReplicatorの表示が切り替わってます。

サンプルファイル

ファーには「視錐台カリング」という同様の機能がありますが、Replicatorにはありません。そんな時に視野角を使ってリグを組みます。フォールオフを使用してるので、プロシージャルモデリングと組み合わせても便利かもしれません。

CG News

After Effects 17.1リリース

After Effects 17.1がリリースされました。新機能はシェイプのオプション追加。シェイプが大量のプロジェクトでは、ドラッグまたはスナップが「最大50%高速」になってるようです。
https://helpx.adobe.com/after-effects/using/whats-new/2020-1.html
https://theblog.adobe.com/adobe-video-audio-performance-report/

ストロークのテーパー

パスのオフセットシェイプエフェクト

その他の機能強化

  • ProRes RAWインポートのサポート
  • オーディオデバイスを自動的に更新する(macOSのみ)
  • メディアを共有場所にコピーする
  • クラウドドキュメントでのコラボレーションを有効にする
  • ミニマックスエフェクトでGPUアクセラレーションがサポート
  • Set Channelsエフェクトで32 bpcカラーがサポート
Tips

modoでEmberGenのシミュレーションデータをレンダリング

modoでEmberGenのシミュレーションをレンダリングしてみました。

EmberGenはGPUベースのリアルタイムのボリューム流体シミュレーションソフトです。JangaFXのサイトにはEmberGenで作成されたシミュレーションデータがいくつか公開されています。今回はガソリン爆発のサンプルをmodoでレンダリングしてみた。
https://jangafx.com/software/embergen/download/free-vdb-animations/

 

EmberGenのシミュレーションは90°回転した状態で読み込まれるのでVDBアイテムを回転して位置を調節してます。
VDBファイルを読み込む場合は0フレーム目のファイルを選択します。途中のフレームのファイルを選択して読み込むと、選択したフレームからシミュレーションが再生されます。

 

VDBをレンダリングする場合は、Volumeの「ボクセルソース」にVDBを接続します。

 

質感はGradientを使用してルミナンスを設定しました。Gradientにはmodo 10.2からFluid関連の入力が追加され、Fuel、Fuel、Temperatureを細かく制御できるようになっています。

 

最初にデフォルト設定でレンダリングしたとき、ボクセルグリッドの四角形状やフリッカーが目立ってました。VDBの「ボクセルフィルタ」を設定したら少し軽減された気がします。

フィルターなし。

フィルターあり。

ボクセルフィルターの比較、上がフィルターなし。フィルターを使用するとボリュームの密度が変わってしまいますが、フィルターを使用すると細かなノイズのようなボクセルが軽減されるように見えます。

 

同じデータをArnoldでレンダリングしたもの。Arnoldはフィジカルベースのボリュームシェーダーを搭載しているので、少ないパラメータで見栄えのよい煙や炎の質感を作ることができて便利です。レンダリングも速い気がします。

 

modoとArnoldのレンダリングを比較、上がArnoldのレンダリング。

modoはボクセルグリッドが目立ちます。Arnoldのボリュームシェーダーにはボクセルの補間オプションがあって、煙の表面を滑らかにすることができるのですが、残念ながらmodoには補間のパラメータがありません。

また、modoのボリュームは透明に近いボクセルを省略してレンダリングしてるような印象を受けます。画像右ではフレームを間違えてるのかと思うほど薄いボリュームがレンダリングされていません。VDBのGL表示は薄い部分も確認できるので、ボリュームレンダリングを高速化のための工夫なのかもしれません。

 

EmberGenのシミュレーション結果をmodoで使用することはできますが、レンダリングの品質についてはEmberGenの設定を含めて確認する必要がありそうです。
EmberGenはOctaneRenderと提携を発表してるので、Octaneでどのように活用されるのか気になりますね。

 

参考

CG News

MODOの地図インポータースクリプト

modoに基盤地図情報ビューアから書き出したシェープファイルを読み込むインポーターが公開されてます。スクリプトはYouTubeの説明からダウンロードすることができます。

概要

基盤地図情報ビューアから書き出したシェープファイルをMODOへ読み込むインポーターです。

  • 主に道路などのポリラインの地物の表示属性はパートタグに割り当てられ、地物の種類は選択セットに割り当てられます。
  • 建物も同じく、建物の種類が選択セットに割り当てられます。
    穴あきポリゴンの可能性のあるポリゴンには、 パートタグに「Possibility of holes」というタグは設定されますので、適宜穴あけ処理は手動でお願いします。
  • 等高線を読み込んだ場合は等高線の高さにポリラインが読み込まれます。 一応その他のシェープファイルも読み込めますが、 ポリラインとポリゴンのみのサポートです。

一応その他のシェープファイルも読み込めますが、 ポリラインとポリゴンのみのサポートです。

参考資料

NVIDIA Marbles RTX

NVIDIAがMarbles RTXと呼ばれるシミュレーションとリアルタイムGPUレンダリングのデモ映像を公開しています。デモはプレイ可能なゲーム環境で、動的な照明と豊富な物理ベースのマテリアルでリアルタイムの物理を表示します。

MarblesはOmniverseのアーティストとエンジニアの分散チームによって作られ、VFX+の高品質なアセットを完全に物理的にシミュレートされたゲームレベルに組み立てています。リアルタイムで実行するための「ゲーム化」アートアセットから一般的に生じる品質と忠実性を犠牲にすることはありませんでした。

Marblesは単一のQuadro RTX 8000上で動作し、リアルタイムでレイトレースされた世界の複雑な物理をシミュレートします。

CG News

Unreal Engine 5 初公開

Epic GamesはPlayStation 5でライブで実行されている次世代のUnreal Engine 5のリアルタイムデモの映像を公開しました。驚くようなグラフィックですね。
https://www.unrealengine.com/ja/blog/a-first-look-at-unreal-engine-5?lang=ja
https://www.fxguide.com/fxfeatured/ue5-first-look/

Lumen in the Land of Naniteデモ

デモはゲームのようですが、実際のゲームやプロトタイプではありません。 UE5の機能を示すためだけに特別に作成されました。Epicチームはまるで新しいゲームの一部であるかのように、完全にインタラクティブに体験できる短い作品を作ることにしました。数多くのチームとテクノロジーが集まり、表示品質を飛躍的に向上させました。

「すべてが動的なので、どのオブジェクトでも移動できます。そのすべてが完全に動的なGIと兵士の各像だけでも、3,000万を超える三角形です」とLibreriは指摘します。Naniteジオメトリテクノロジーを示す大きなシーンは、Quixel Megascansライブラリを多用しました。Quixelは現在Epicの一部であり、最大で数億のポリゴンを持つフィルム品質のオブジェクトを提供します。

 

Nanite

Naniteは仮想化されたマイクロポリゴンジオメトリシステムであり、驚異的なジオメトリのディテールを可能にします。長年にわたり、フィルムグレードのアセットとゲームアセットとの間には大きな隔たりがあります。アセットの変換は単純でも迅速でもありませんでした。
特殊な低解像度メッシュ、法線マップ、およびより高い幾何学的複雑さをエミュレートする一連のトリックを使用して、リアルタイムコンテキストで使用するためにフィルムアセットの解像度を下げるために最適化を行う必要がありました。

Nanite仮想化ジオメトリにより、文字通り数億または数十億のポリゴンを持つフィルム品質のソースアセットをUE5に直接インポートできます。ZBrush、フォトグラメトリー、CADデータで生成されたアセットはすべてUE5にインポートできます。
Naniteジオメトリはリアルタイムでストリーミングおよびスケーリングされるため、複雑なポリゴンバジェット、ポリゴンメモリバジェット、描画カウントバジェットは必要ありません。
また、法線マップにディテールを焼き付けたり、ディテールレベル(LOD)を手動で作成したりする必要もなくなります。Natiteはプロセスを仮想化するので、Mipmapの動作とは異なり品質の目に見える損失はありません。

3,000万を超える三角形でインポートされたZBrushモデル。LODやベイクマップはありません。

 

Lumen

Lumen は完全に動的なグローバルイルミネーション ソリューションで、シーンやライトの変更に対して即座に反応します。レイトレーシング向けの特別なハードウェアは必要としません。
このシステムはキロメートルからミリメートルまでの規模の巨大で詳細な環境において、無限のバウンスと間接スペキュラ反射を利用し、ディフューズ相互反射をレンダリングします。Lumen を使用することで、アーティストやデザイナーはさらに動的なシーンを制作できるようになります。

例えば、時間経過による太陽角度の変化、懐中電灯の点灯、天井に穴を開ける爆破などに対して、間接ライティングが適応的に変化します。Lumen によってライトマップのベイクが終わるまで待つ必要も、ライトマップ UV の作成の必要もなくなります。時間が大幅に削減されます。アーティストが Unreal Editor の中でライトを動かすだけで、ライティングの見た目はゲームをコンソールで実行した場合と同じになります。

ダイナミックグローバルイルミネーション

前の世代よりも非常に大きく詳細なシーンをサポートするために、PlayStation 5はストレージ帯域幅を劇的に拡大します。デモでは物理と破壊システムの Chaos、Niagara VFX、Convolution reverb、Ambisonics レンダリングといった既存のエンジンシステム機能についても活用しています。

デモは複雑なパーティクルの相互作用と相互接続性を示しています。あるシーンでは、たいまつがパーティクル駆動型の虫を駆り立て、虫が互いに通信し、環境を理解できるように虫を暗闇に散らします。Niagara には群れ行動の強化もあり、すべてがはるかに複雑で自然な背景要素を可能にします。

キャラクターでは、キャラクターの重心を支援する新しいツールがあり、複雑な地形の上を歩くための新しい予測的な足の配置があり、ゲームデザイナーはコンテキストキャラクターアニメーションをシームレスにトリガーして、キャラクターを頼りにしたり、エフェクトをかけたり、それらが近づくオブジェクトを移動します。

「これらすべてのツールを提供するという私たちの哲学は、人々がゲームに必要なコンテンツを簡単に作成できるようにすることで、ゲームプレイに集中したり、映画を制作している場合は、素晴らしいストーリーの作成に集中したりできます。そして、クリエイティブに力を与えることで、彼らが実際に追跡に近づくことができ、必要のないことをしたり、努力を複製したりするのに時間を無駄にしないようにします」とLibreriは説明します。

 

UE4およびUE5

2020年5月にリリースされたUnreal Engine 4.25は、PlayStation 5とXbox Series Xをサポートしています。Epicは、コンソールメーカーや、Unreal Engineを使用する数十のゲーム開発者やパブリッシャーと緊密に協力して、次世代ゲームを構築しています。

UE5はUE4との上位互換性があるため、現在UE4で構築している開発者はプロジェクトをUE5に簡単に移行できます。アンリアルエンジン5は、2021年の初めにプレビューで利用可能になり、2021年の終わりに完全リリースされて、次世代コンソール、現行世代のコンソール、PC、Mac、iOS、およびAndroidをサポートします。

次世代コンソールをターゲットとする開発者は、UE4でビルドを開始し、必要に応じてプロジェクトをUE5に移植することをお勧めします。

制定法は500回インスタンス化され、制定法だけで160億の三角形を表す。

ロイヤリティ

アンリアルエンジンのロイヤリティは、100万ドルのゲーム内収益を免除しました。これは以前よりも大幅に増加しています。2020年5月13日から有効になり、2020年1月1日まで遡ってロイヤルティの免除額が、タイトルあたり1,000,000ドルに増加し以前の総収益レベルの四半期あたり3,000ドルから増加しました。チームがすでにロイヤリティを支払っている場合、Epicは差額を払い戻します。

 

Epic Online Services

EpicのFortniteをプレイする際の印象的な側面の1つは、同じエクスペリエンスとユーザーデータが共有され、さまざまなプレイモードやデバイス間で引き継がれることです。
Epicは現在、Fortnite用に作成したサービスを他のゲーム開発者に提供しています。例:フレンド、マッチメイキング、ロビー、アチーブメント、リーダーボード、アカウント:PlayStation、Xbox、Switch、PC、Mac、iOS、Androidの7つの主要なプラットフォームで共有できます。

Epicは、シンプルなマルチプラットフォームSDKを使用して、Epic Online Servicesをすべての開発者に無料で提供しています。つまり、開発者はこれらのサービスを会社独自のアカウントサービス、プラットフォームアカウント、またはEpic Gamesアカウントと組み合わせて組み合わせることができます。

 

Epic Games

企業としてのEpic Gamesは、世界的なシャットダウンから恩恵を受けており、ゲームの世界的な成長は巨大で、ゲームの販売は一般的に35%、オンラインゲームは70%以上増加したとの推定があります。

現在Fortniteは世界最大のソーシャルグラフを持ち、3億5000万人以上のプレーヤーと22億人の友達とのつながりが5億のデバイスにまたがっています。重要なことにEpicはFortniteの範囲を拡大し、より多くの 「ライブ」 コンサートを提供し、単なるゲーム以上のものとして強化しています。

参考資料

REEL 2020

色使いが綺麗。

Tips

modoでアニメ風の顔をモデリングする方法

modoを使用してアニメやフィギュアのようなキャラクターの顔をモデリングする方法を紹介したいと思います。大まかに顔の形状を作る手順をキャプチャしてみました。
ビデオは一発録り等倍再生(わずかにスローにしてる)で、操作にはマウスを使用してます。10分程度で顔の大まかな形状を作ることができるので、興味があればぜひチャレンジしてみてください。

 

1. 背景画像を読み込む

モデリングのアタリにする顔のラフ画像を読み込みます。Windowsエクスプローラーからビューポートに画像をドラッグアンドドロップして、「透明度」「輝度」を見やすく調節します。

 

2. 面を貼る

顔のモデリングはボックスや球から作り始めたり様々な方法があります。私の場合は円から作ります。

  1. 円柱ツールを使って、口と目の位置に16頂点の円を作成します。
  2. トポロジペンを使って円のエッジを引き延ばすようにして顔のトポロジーを作ります。
  3. 最後にスカルプト移動ツールのスムーズを使用してメッシュをなめらかにします。

トポロジペンを使うと頂点が離れていたり、余計な頂点ができてしまうことがあります。最後にメッシュクリーンアップを実行して、メッシュを綺麗にするとよいです。

ビデオではポリゴンが少なすぎました。目のあいだ、鼻の部分を縦に分割するの忘れたのでエッジループを追加したほうがよいです。
サブディビジョンサーフェースは少ないポリゴンで滑らかな曲面を作成できるのがメリットですが、ポリゴンが少なすぎると形状が作りにくくなるため適度に分割するのが望ましいです。

 

3.顔の奥行きを作る

基本的にスカルプト移動ツールを使用して顔の起伏を整えます。頂点編集はエレメント移動ツールでもできるのですが、スカルプトツールはShiftキーを押したときにスムーズツールに切り替わるのが便利です。

  1. エッジ拡張で顔に厚みを持たせ、サブディビジョンをONにします。
  2. 目と口の円を押し出して凹ませ、エッジウェイトツールで輪郭を強調します(好みの問題)。
  3. スカルプト移動ツールを使用して顔の形状を整えます。角張った所はスムーズで滑らかにします。

これで顔の大まかな形が出来上がりました。顔のような複雑な形状は少ないポリゴン数で全体の形を整えて、後からメッシュを分割して細部を作り込むとよいと思います。

 

4. 完成

メッシュを細かくしたり、イメージの形になるまで頂点を編集してキャラクターの顔を作り上げます。

 

まつげは目の周辺のポリゴンをコピーして形を整えて厚みを付けて作りました。髪はプラグインのPolyStrips From Curvesを使って大まかな形状を配置したものを、細かく調節して形にしました (プラグインを使ってますが、一発で欲しい形状にはならないため手動で調節する必要があります)。

バナナの房のような髪は頭のポリゴンをコピーしたり手動で地道に作るのが定番ですが、modo13.1以降であればCurve Sweepを使うとPolyStrips From Curvesに近いことが出来るので便利かもしれません。

 

ざっくりとした紹介ですが、モデリングの参考になったら嬉しいです。