UserData

最終更新: 2023年3月14日

概要

UserDataは、モデルのアートメッシュに設定されたユーザデータをCocos Creator上で可視化する機能です。
ユーザデータはアートメッシュに対して任意のタグを付与できる機能で、SDK上で特殊な処理を行うアートメッシュを指定する場合などに活用できます。

ユーザデータの詳細については こちら をご覧ください。

Cocos Creator上でユーザデータを使用するには以下の手順を行います。

  1. .userdata3.jsonをパース
  2. アートメッシュにUserDataを設定

1. .userdata3.jsonをパース

.userdata3.jsonを、CubismUserData3Jsonを用いてパースします。
CubismUserData3Jsonについては こちら をご覧ください。

const userData3Json = CubismUserData3Json.loadFrom(jsonString);

.userdata3.jsonのパスは、.model3.jsonからもCubismModel3Jsonを用いて取得することができます。
取得できるパスは.model3.jsonからの相対パスです。

const userDataPath = modelJson.fileReferences.userData;

const userData3Json = await this.loadJson(this.fileReferences.userData);

CubismModel3Jsonの詳細については こちら をご覧ください。

パースした.userdata3.jsonから、アートメッシュのデータを取得します。

const drawableBodies = userData3Json.toBodyArray(CubismUserDataTargetType.ArtMesh);

2. アートメッシュにUserDataを設定

.userdata3.jsonから取得したユーザデータを、Prefabのアートメッシュに適用します。

アートメッシュにユーザデータの情報を付与するには、CubismUserDataTagを使用します。

    const drawableBodies = userData3Json.toBodyArray(CubismUserDataTargetType.ArtMesh);
    for (let i = 0; i < drawables.length; i++) {
      const index = model3.getBodyIndexById(drawableBodies, drawables[i].id);
      if (index >= 0) {
        const tag =
          drawables[i].getComponent(CubismUserDataTag) ??
          drawables[i].addComponent(CubismUserDataTag);
        tag!.initialize(drawableBodies[index]);
      }
    }
この記事に関するご意見・
ご要望をお聞かせください。