見出し画像

TiltBrushプレイヤーのためのClusterGAMEJAM対策きほんのき

こんにちは、かわしぃです。バーチャルSNSclusterでのTiltBrush活用といえば自分でしょうというぐらいにはTiltBrushを全力で使っています。今回のClusterGAMEJAM2022 in Springでは非ゲーム部門も用意され、ますますバーチャルワールドづくりが盛り上がってきました!日本に眠れる数々のTiltBrushプレイヤーの皆様の参加の声も聞こえてきています。ただし、私の経験上、TiltBrushを使ったワールド制作には注意点が山のようにあります。全てを語るととても長くなってしまうので…「TiltBrushはやったことあるけど、Unity?わからん。」な人向けに最低限これだけやっておけば評価基準ぐらいは満たすのでは??というレベルのお話をします。落ち着いて、一つ一つクリアしましょう!

この記事のターゲット

  • TiltBrushを使った作品制作をしたことがある

  • メタバースプラットフォームclusterが好き

  • ClusterGAMEJAMに参加予定

  • TiltBrushを使ったワールドを作りたい

  • アート性重視で、今回は凝ったギミックは特に必要としない

  • Unityわからん

以上のような方が対象です。とにかくTiltBrushを使ってワールドにしたい!他になにもできんけどそれだけなんとかやりたいぜ!という場合にはぜひ読んでみてください。とりあえずTiltBrushしかわからんぜ勢のために最速最低限のことだけ説明するので、それ以外のかたにはあまり参考にならないかもしれないことだけ予めお伝えしておきます。

【最重要】つくりはじめるまえに

そもそもTiltBrushはお絵描きアプリであって、モデリングツールではありませんね。メタバース上のワールドとは、複数の人がアクセスして楽しむ場所。つまりアクセスする端末に負荷をかけるということ

TiltBrushプレイヤーがいつもやっているように、「えがく」と「見る」だけではなく、「ワールド」上ではアバター表示、モノの動きの同期処理、その他諸々…普段以上のたくさんの無視できない処理が加わります

そのため、いつもの感覚で壮大な世界を事細かに描き込んでしまうと、端末への負荷がかさんでしまいまともにアバターの身動きができなくなる、ということが起こります。

ClusterGAMEJAM2022 in Spring公式サイトより抜粋

なにより審査ポイントに複数デバイスに対応、とあります。TiltBrushプレイヤーにとってはいつもの「アート制作」ではなくこういう意味で「ワールド制作」であることを理解しておく必要があります。

以上を踏まえて、とりあえず何も言わず下記の通りに心がけてやってみてください!(時間がないので!)理由はまたの機会に説明します。

①下準備

Unity・CCKの導入

※ここだけはどうにか公式のCreatorsGuideを参考に頑張って済ませてください!ふぁいと!ぱわー。
「Unity」と「Cluster Creator Kit」を導入する の記事内の

  • 「Unityをインストールする」を実行する

  • 「Cluster Creator Kitを導入する」を実行する
    (サンプルプロジェクトを使います)

tilt-brush-toolkitの導入

以下URLから、緑のボタン「code」>「Download Zip」でダウンロード。解凍したフォルダ内の「tilt-brush-toolkit-UnitySDK-v23.0.1.unitypackage」を開き、プロジェクトへインポート

https://github.com/googlevr/tilt-brush-toolkit

②制作【TiltBrush編】

制作上の注意!【最重要】

  • 【空間設計】ワールド(アバターが歩く場所になる)ということを意識してつくること!いつものように表現に集中するだけではなく、ワールド化したあとのアバター目線の景色を常に考え続けるとよいです。

  • 【オブジェクト削減】ひと筆(トリガーを引いてから放すまで)を大きく取る→細かくペタペタと描かないようにする。TiltBrushではひと筆ひと筆がポリゴンに変換されます。ポリゴン数が増えるほど描画負荷が大きくなっていく傾向があるので、画数を減らすイメージでやるとよいです。

  • 【負荷軽減】キラキラ系、透明系ブラシは処理が重めです。あまりにも多く重ねるような表現は避けましょう。色や明るさを調整して工夫して。

  • 【グループ化※動作軽量化処理のため】意味を持ったまとまり単位でグループ化をしておく(家一軒、ビル一棟、10人程度の人混み、etc…)→後に説明するUnityでの負荷軽減処理のため必要な作業です

  • 気持ちが盛り上がりすぎたら注意!油断して描き込みすぎるとワールドになった後に激重になります。ボリューム感の目安としてはこちらの作品を参考にするとよいかもです。(https://cluster.mu/w/e3ae49bd-1bc8-47ad-99eb-d571c57c68f8)Quest単体版TiltBrushで容量MAXまで描いた程度です。息抜きにみてみてください。

上記の点について十分に気を付けながら制作し、作品をglbファイルとしてエクスポートします。エクスポート方法についてはこちら(https://creator.cluster.mu/2021/06/17/tilt-brush/)を参照してください。

③制作【Unity編】

Unityを開き、Asset>ClusterVR>Scenes>MinimalSample.unityを開く

MinimalSample.unity


ワールドとして最低限必要なもの…SpawnPoint(入り口)・DespawnHeight(入り口に戻される高さ)・の3つがすでにシーン内に揃っています。

ワールドとして動作する最低限の要素がある


先程エクスポートしたglbファイルをUnity内にインポートする。インポート方法詳細についてもこちら(https://creator.cluster.mu/2021/06/17/tilt-brush/)

シーンに配置する


シーンに作品を配置したら、SpawnPointに入り口にあたる部分を合わせるように位置調整する。配置したモデルを選択し、Inspectorタブ右上の「Static」にチェックを入れる。

Staticにチェックを入れる


Window>Rendering>Occlusion Cullingでオクルージョンタブを表示させる

オクルージョンメニュー

配置したモデルにStaticが入っていることを確認して、Occlusion>Bakeを表示し、下にあるBakeボタンを押す。

青い網目が表示されていたらOK


これによって、カメラの視野外のオブジェクトは非表示になるようになりました。制作時に細かいグループに分けておいたことで、これが有効になりました。この処理はオクルージョンカリングといって、アバターから見て視野の外側のオブジェクトや、手前の物体に隠れてしまっているオブジェクトを非表示にする処理です。これによって表示負荷を抑えます。

オクルージョンカリングの雑な説明


モデルのインポート、位置やスケール調整が終わったら、大事な足場の衝突判定を付与していきます。足場になるオブジェクトに「MeshCollider」コンポーネントを付けるのが簡単で早いのですが、このコライダーは処理負荷が高くなる傾向があるので、アバターでログインして歩く際、特に差し支えがなければBoxColliderなどで足場を作るのがよいです。こちらの記事の「Collider」の項目が参考になります。

clusterへアップロード、公開

制作したワールドを「cluster」にアップロードする の内容に沿ってアップロードする。

glbインポートエラーの対処


ご支援のおねがい

少しでも役に立った…!という方、もしよろしければぜひご支援いただけると表現活動のための知見の共有資料をつくる時間を取ることができます。以下のFANBOXやBOOTHにてご支援いただけると嬉しいです。

いいなと思ったら応援しよう!