クリックする度にランダムにマテリアルの色が変わるクラフトアイテムをつくる──マテリアルプロパティ操作 APIを使う

「マテリアルプロパティ操作 API」を使うと、マテリアルのプロパティを操作することができます。例えば、マテリアルの色を変えたり、シェーダーと組み合わせると頂点を動かして波のような表現をつくることもできます

マテリアルプロパティ操作 APIは、クラフトアイテムでは baseColor と emission、Cluster Creator Kit 製のワールドではそれ以外のシェーダーで公開されているプロパティの値が設定できます。
今回は基本的な例として「クリックする度にランダムにマテリアルの色が変わるクラフトアイテムをつくる」のつくり方とサンプルコードを紹介します。

マテリアルを操作したいオブジェクトにItemMaterialSetList コンポーネントを設定する

マテリアルプロパティ操作 APIを使用するためには、 ItemMaterialSetList コンポーネントを設定する必要があります。

Scriptable Itemがついたオブジェクトにつけるかその子のオブジェクトにつけてSubNodeで指定してください。ItemMaterialSetList に設定する際に ID として指定した文字列が、スクリプトでマテリアルを取得するための文字列となります。

「クリックする度にランダムにマテリアルの色が変わるクラフトアイテムをつくる」のサンプルコード

ClusterScript に新たに追加された material という API を実行することによって、操作対象のマテリアルの MaterialHandleを取得できます。
今回は基本的な使い方として「クリックする度にランダムにマテリアルの色が変わるクラフトアイテムをつくる」の例とサンプルコードを掲載します。

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

クラフトアイテムでは、setEmissionColor を使ってEmission(光の強さ)を変えることもできます。Cluster Creator Kitであれば他のプロパティも操作できるので、ぜひ MaterialHandle のスクリプトリファレンスを見てみてください。

今回は紹介しませんが、シェーダーと組み合わせることで波のような表現がつくれたり、アイデア次第で色々な表現をつくることができます。興味ある方はぜひ触ってみてください。

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

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

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

続きを読む