見出し画像

【ベータ機能】マテリアルを操作できるAPI が利用できるようになりました!その他、複数の改善をしました!【Cluster Creator Kit v2.9.0 リリースノート】

こんにちは、プロダクトマネージャーの Smith です。

メタバースプラットフォーム cluster では、クリエイターのみなさんの創造力をより加速できるように制作環境の改善を行っています。
この記事では 3/18 の cluster アプリのリリース、及び Creator Kit 2.9.0 で新たに提供されるベータ機能の仕様及び改善項目の内容を紹介します。


Creator Kit 2.9.0 の利用方法

今回のリリースに含まれる一部の機能は Cluster Creator Kit v2.9.0 へのアップデートが必要です。
また、今回のリリースに含まれるベータ機能は最新版の cluster アプリで動作しますので必ずアップデートをしてください。
Cluster Creator Kit のアップデート手順はドキュメントに記載されています。

Creator Kit 2.9.0 のリリース内容

ベータ機能

改善内容

  • コンソールログのファイル出力

  • Terrain の Draw Instance 化の挙動変更

  • Unity で設定した Fog とスクリプトで設定した Fog の併用時の不具合の修正

  • Humanoid Animation List とCreate Item Gimmick の併用時の不具合の修正

【ベータ機能】マテリアルプロパティ操作 API

マテリアルのプロパティを操作できる API が新たに追加されました。
これにより、クラフトアイテムでは baseColor と emission、Cluster Creator Kit 製のワールドではそれ以外のシェーダーで公開されているプロパティの値も設定できるようになります。
詳しくはスクリプトリファレンスを参照してください。

使い方

●ItemMaterialSetList の設定
事前に Creator Kit 側で ItemMaterialSetList コンポーネントを使用して、操作するマテリアルを登録してください。
ItemMaterialSetList に設定するマテリアルは、そのアイテムかそのアイテムの SubNode で使用されている必要があります。
ItemMaterialSetList に設定する際に ID として指定した文字列が、スクリプトでマテリアルを取得するための文字列となります。

●「インタラクトする度にランダムにマテリアルの色を変える」スクリプトの実装
ClusterScript に新たに material という API が追加されています。
この API を実行することによって、操作対象のマテリアルの MaterialHandleを取得できます。
以下は、インタラクトする度にランダムにマテリアルの色を変えるスクリプトのサンプルです。
ここでは、 ItemMaterialSetList に設定したマテリアルの ID を “base” としています。

$.onInteract(() => {
  const mat = $.material("base");
  mat.setBaseColor(Math.random(), Math.random(), Math.random(), 1);
});

このアイテムに実際にインタラクトしてみると、インタラクトの度に色が変わることが確認できます。

MaterialHandle で操作するプロパティはシェーダーのプロパティです。
そのため、色の変化以外にもさまざまな表現ができるようになります。
以下は色以外に頂点情報も制御している例です。頂点を動かすことで波のような表現を可能にしています。

改善内容

コンソールログのファイル出力

設定画面から表示できるようになるコンソールのログの内容が、ファイルに出力できるようになりました。
これにより、これまで操作性に難のあった検索やコピペなどの操作が簡便になります。
ログファイルは、コンソールウィンドウの右下に新たに追加されたボタンを押すことによって、外部アプリケーションで開かれます。

ログファイルに吐き出される内容は json 形式で、スキーマは下記の通りです。
このスキーマは予告なく変更される場合がありますのでご了承ください。

{
  tsdv: number // UNIX タイムスタンプ(秒)で表現されたログの出力時刻
  dvid: string // 入室毎に変わる端末ID
  origin: {
    name:string // Item Name
    id: number  // Item ID
  }
  type: string    // ログ出力種別
  message: string // ログ出力本文
}

ログファイルがどのアプリケーションで開かれるかはお使いの環境によって異なります。
.log 拡張子に関連付けられているアプリケーションで開かれますので、必要に応じて設定してください。

Terrain の Draw Instance 化の挙動変更

これまで Cluster Creator Kit で作成したワールドの Terrain は、cluster アプリ上では Draw Instance 化されていました。この影響により、Terrainを使用したワールドで一部不具合が起きていました。
これは過去に Draw Instance 化されていない Terrain がワールドに含まれていると問題が起こるプラットフォームがあったため行われた措置です。
この度、改めて問題が起こるかどうかを確かめたところ問題が解消したことが確認されたため、 強制的な Draw Instance 化をしないように挙動を変更しました。

Unity で設定した Fog とスクリプトで設定した Fog の併用時の不具合の修正

以下の条件で発生していたポストプロセスの Fog の問題が、今回のアップデートで修正されました。

  • Cluster Creator Kit で作成しているワールドの Lighting > Environment で Fog を設定する

  • アップロードされたワールド内でスクリプトから Fog 効果を上書きする

  • その後、スクリプトから setPostProcessEffects(null) でFog 効果をクリアする

  • Cluster Creator Kit で作成しているワールド側で設定した Fog 設定に戻らない

Humanoid Animation List とCreate Item Gimmick の併用時の不具合の修正

Cluster Creator Kit で作成したワールドに含まれる prefab に HumanoidAnimationList コンポーネントが用いられている際、登録されているアニメーションが空になる不具合が確認されていました。
クラフトアイテムや prefab ではないアイテムではこの問題は起こりません。
今回のリリースで、新たにアップロードされるワールドではこの問題が起きないように修正されています。
既にこの問題が起こっているワールドは再度アップロードをする必要がありますので、必要に応じてご対応をお願いいたします。

ベータ機能を正式版に上げるには

ベータとして提供される機能は、より多様なコンテンツ体験を実現するための機能です。
しかし使い方によってはコンテンツ体験を悪くすることもできてしまいます。
ベータ機能は、実際にクリエイターの皆様に使い込んでもらうことでその安全性が確かめられます。
正式版に上げていきたい機能ほど、コンテンツに組み込んでいただけると正式版昇格が早くなるので、ご協力いただけると助かります。

ご意見・ご感想お待ちしています

cluster は、みなさんが楽しくバーチャル空間で創造できるように様々な改善を行っています。
Discord ではみなさんの要望を投稿したり、クリエイターさん同士でお互いの創作活動を支え合える場所を設けていますので、ぜひご活用ください!

Discordサーバー: Creator Community のご案内
https://docs.cluster.mu/creatorkit/support/creator-community/