【ベータ機能】CCK・ワールドクラフトで表現をさらにリッチに!「PostProcess API」の紹介

本記事はCluster Creator Kitの「ベータ機能」を利用した解説になります。
ベータ機能では正式リリース前の機能を使うことができます。正式リリース前のため、不安定な挙動をしたり将来的に挙動が変わる可能性があります。また、記事公開時点ではベータ機能として紹介していますが、その後正式リリースされている場合もありますので、本記事を参考にする場合はまずスクリプトレファレンスを参照することをおすすめします。

利用にはCluster Creator Kitでベータ機能を設定した状態でアップロードを行う必要があります。ワールドクラフトで利用する場合は、ワールドクラフトのワールドを新規作成する際にベータ機能の設定を行う必要があります。設定方法はこちらをご覧ください。

Cluster Creator Kitで利用できるベータ機能として、新しく「PostProcess API」の機能が公開されました!
今回は、サンプルコードとこちらの機能で実現できる表現を簡単に紹介します。

ポストプロセス(PostProcess)は画面全体にフィルターや効果を加えることで、見た目のクオリティを上げることができる機能です。
この機能を使うことで、色収差や魚眼レンズのような表現、ワールドのライトの光の強さを変えたり、色味を変えることができます。

これまでもCluster Creator Kitであれば、Unityの機能を使ってPost Processの実装が可能でしたが、このAPIによりワールドクラフトでもPost Processが可能になりました!

また、プレイヤーごとにポストプロセスがされるため、Cluster Creator Kitでもプレイヤーごとに見える表現を変えたりと工夫した使い方もできそうです。

下記が適当なオブジェクトにアタッチすることで、インタラクトによってPostProcessを適用できるようにするサンプルです。
「chromaticAberration」の部分を適用したい効果とそこでの設定値に書き換えることで、それぞれの効果が実現できます。

$.onInteract(playerHandle => {
  const effects = new PostProcessEffects();
  effects.chromaticAberration.active = true;
  effects.chromaticAberration.intensity.setValue(1);

  playerHandle.setPostProcessEffects(effects);
});

また、下記のように書き加えることで複数の効果を同時に適用させることができます。

$.onInteract(playerHandle => {
  const effects = new PostProcessEffects();
  effects.chromaticAberration.active = true;
  effects.chromaticAberration.intensity.setValue(1);

  effects.lensDistortion.active = true;
   effects.lensDistortion.intensity.setValue(70);

  playerHandle.setPostProcessEffects(effects);
});

適用したPostProcessを取り消したい場合は、下記のように記述して、別のオブジェクトにアタッチすると、ワールド内でPostProcessを取り消すことができるようになります。

$.onInteract(playerHandle => {
  playerHandle.setPostProcessEffects(null);
});

頻度・距離の制限

ポストプロセスには頻度と距離の制限があります。
詳細はスクリプトレファレンスのこちらのページをご覧ください。

適用の優先順位

PostProcess APIによるポストプロセスは下記の優先度で適用されます。

  • Creator Kit 製ワールド
    • Creator Kit 製ワールドでの Priority が 101 以上のポストプロセス
    • setPostProcessEffects によるポストプロセス
    • Creator Kit 製ワールドでの Priority が 99 以下のポストプロセス
  • ワールドクラフト

その他の詳細な情報はスクリプトリファレンスのこちらの記載を参照してください。

「光る」が表現できるように|bloom

Bloomを使用すると、「Emmision」が設定されたマテリアルが発光しているような表現にすることができます。つまり、照明の明るさなどを表現できるようになります。
Emmisionの設定の仕方などはこちらの記事で解説しています。

bloomで設定できる項目はスクリプトレファレンスのこちらのページをご覧ください。

複数の色がズレて重なったような表現を|chromaticAberration

Chromatic Aberrationは「色収差」と呼ばれる、複数の色がズレて重なったような表現をすることができます。夢の中の世界だったり、少し認識が曖昧になるような世界を表現したい時などに使えるかもしれません。

Chromatic Aberrationで設定できる項目はスクリプトレファレンスのこちらのページをご覧ください。

世界の色を変える|colorGrading

Color Gradingを使うと、見える世界の色味を変えることができます。寒いワールドでは青くしたり、暑いワールドでは赤くしたり、シチュエーションに合った色にすることで、より没入感のある体験をつくることができます。

Color Gradingで設定できる項目はスクリプトレファレンスのこちらのページをご覧ください。

写真の「ボケ」を表現する|depthOfField

Depth of Fieldを使うと、写真で言う「ボケ」を表現することができます。近くのオブジェクトはくっきりさせ、遠くの背景はぼかすなどすると、そのオブジェクトへの没入感が高まります。また、水中の表現などにも応用することができます。

Depth of Fieldで設定できる項目はスクリプトレファレンスのこちらのページをご覧ください。

霧で世界の奥行きを表現する|fog

Fogは、文字通り「霧」を表現することができます。遠くの方は白く霞がかかることで、ワールドの奥行きを表現することができます。

Fogで設定できる項目はスクリプトレファレンスのこちらのページをご覧ください。

粗い粒子でレトロな表現に|grain

Grainを使うと、画面全体に小さな粒子のようなものが現れ、粗く見えるようになります。例えば、古いビデオのようなレトロな表現をつくる時に活用することができます。

Grainで設定できる項目はスクリプトレファレンスのこちらのページをご覧ください。

魚眼レンズのような表現を可能にする|lensDistortion

Lens Distortionを使うと、画面を歪ませることができます。これを活用することで魚眼レンズで撮影されているような表現などをつくることができます。

Lens Distortionで設定できる項目はスクリプトレファレンスのこちらのページをご覧ください。

スピード感を表現したい時には|motionBlur

Motion Blurを使うと、動いた時に画面全体がぼかされたような表現になります。これを活用してスピード感などを表現することができます。

Motion Blurで設定できる項目はスクリプトレファレンスのこちらのページをご覧ください。

中央の要素を目立たせたい時には|vignette

Vignetteを使うと、画面の端が暗くなり、中央が明るくなります。フィルムカメラで撮ったような表現や、中央の要素に注目してもらいたい場合などに活用することができます。

Vignetteで設定できる項目はスクリプトレファレンスのこちらのページをご覧ください。

このようにPostProcessを使うと、色々な効果を画面に適用することができます。
設定項目が多く、把握するのは大変ですが、少し変えるだけでガラッと印象が変わるので、ぜひ触りながら自分の実現したい表現を模索してみてください!

記事をシェアしてワールド制作を盛り上げよう!

Cluster Creators Guide|バーチャル空間での創作を学ぶならをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む