~~NOTOC~~ ====== ExportMaterial(マテリアル制御) ====== このページは過去の情報となります。\\ 新しいスクリプトリファレンスは**[[https://developer.virtualcast.jp/vci-docs/api/|こちら]]**になります。 **ExportMaterial**は[[vci/script/reference/exportassets]]の中にあるマテリアル制御系の関数の後に追加されました。\\ 現在はこちらのページの関数が推奨です。 ^ExportAssets^^^ ^ 名前 ^ 説明 ^ バージョン ^ |[[vci/script/reference/exportassets/material#material]]| VCI内のObjectを取得 | | ^ExportMaterial^^^ ^ 名前 ^ 説明 ^ バージョン ^ |[[vci/script/reference/exportassets/material#GetNames]]| マテリアル名の一覧を取得| | |[[vci/script/reference/exportassets/material#GetColorFromIndex]]| 番号を指定してColorを取得| | |[[vci/script/reference/exportassets/material#GetColor]]| 名前を指定してColorを取得| | |[[vci/script/reference/exportassets/material#GetEmissionColorFromIndex]]| 番号を指定してEmissionColorを取得| | |[[vci/script/reference/exportassets/material#GetEmissionColor]]| 名前を指定してEmissionColorを取得| | |[[vci/script/reference/exportassets/material#GetTextureOffsetFromIndex]]| 番号を指定してTextureOffsetを取得| | |[[vci/script/reference/exportassets/material#GetTextureOffset]]| 名前を指定してTextureOffsetを取得| | |[[vci/script/reference/exportassets/material#SetColorFromIndex]]| 番号を指定してColorを設定| | |[[vci/script/reference/exportassets/material#SetColor]]| 名前を指定してColorを設定| | |[[vci/script/reference/exportassets/material#SetEmissionColorFromIndex]]| 番号を指定してEmissionColorを設定| | |[[vci/script/reference/exportassets/material#SetEmissionColor]]| 名前を指定してEmissionColorを設定| | |[[vci/script/reference/exportassets/material#SetTextureOffsetFromIndex]]| 番号を指定してTextureOffsetを設定| | |[[vci/script/reference/exportassets/material#SetTextureOffset]]| 名前を指定してTextureOffsetを設定| | |[[vci/script/reference/exportassets/material#SetTextureFromIndex]]| 番号を指定してTextureを設定| | |[[vci/script/reference/exportassets/material#SetTexture]]| 名前を指定してTextureを設定| | |[[vci/script/reference/exportassets/material#ResetFromIndex]]| 番号を指定して初期状態にリセット| | |[[vci/script/reference/exportassets/material#Reset]]| 名前を指定して初期状態にリセット| | ''_ALL_'' を含む関数は、他のクライアントでも実行され同期します。 全てのクライアントで同じ結果になってほしい場合は ''_ALL_'' を含む関数を使用してください。 SetColor _ALL_SetColor ===== material ===== ExportAssets.** material ExportMaterial **\\ VCI内のObjectを取得します。 === サンプル === local Material = vci.assets.material function onUse(use) print(Material.GetColor("CubeColor")) end === 実行結果 === RGBA(1.000, 1.000, 1.000, 1.000) ===== GetNames ===== ExportMaterial.**GetNames: fun(): usertype** マテリアル名の一覧を取得します。 === サンプル === function onUse(use) for key, value in pairs(vci.assets.material.GetNames()) do print(key.. ' = ' ..value) end end === 実行結果 === "1 = Default-Material" "2 = Cube-Material" "3 = Test-Material" ===== GetColorFromIndex ===== **GetColorFromIndex: fun(index: number): Color** 番号を指定してColorを取得します。 === サンプル === function onUse(use) print(vci.assets.material.GetColorFromIndex(1)) end === 実行結果 === RGBA(0.500, 0.500, 0.500, 1.000) ===== GetColor ===== **GetColor: fun(name: string): Color** 名前を指定してColorを取得します。 === サンプル === function onUse(use) print(vci.assets.material.GetColor("Cube-Material")) end === 実行結果 === RGBA(0.500, 0.500, 0.500, 1.000) ===== GetEmissionColorFromIndex ===== **GetEmissionColorFromIndex: fun(index: number): Color** 番号を指定してEmissionColorを取得します。 === サンプル === function onUse(use) print(vci.assets.material.GetEmissionColorFromIndex(1)) end === 実行結果 === RGBA(0.000, 0.000, 0.000, 1.000) ===== GetEmissionColor ===== **GetEmissionColor: fun(name: string): Color** 名前を指定してEmissionColorを取得します。 === サンプル === function onUse(use) print(vci.assets.material.GetEmissionColor("Cube-Material")) end === 実行結果 === RGBA(0.000, 0.000, 0.000, 1.000) ===== GetTextureOffsetFromIndex ===== **GetTextureOffsetFromIndex: fun(index: number): Vector2** 番号を指定してTextureOffsetを取得します。 === サンプル === function onUse(use) print(vci.assets.material.GetTextureOffsetFromIndex(1)) end === 実行結果 === (0.0, 0.0) ===== GetTextureOffset ===== **GetTextureOffset: fun(name: string): Vector2** 名前を指定してTextureOffsetを取得します。 === サンプル === function onUse(use) print(vci.assets.material.GetTextureOffset("Cube-Material")) end === 実行結果 === (0.0, 0.0) ===== SetColorFromIndex ===== **SetColorFromIndex: fun(index: number, color: Color)**\\ **_ALL_SetColorFromIndex: fun(index: number, color: Color)** 番号を指定してColorを設定します。 === サンプル === function onUse(use) vci.assets.material.SetColorFromIndex(1, Color.red) end === 実行結果 === index番号1番のマテリアルのColorを赤に設定します。 ===== SetColor ===== **SetColor: fun(name: string, color: Color) fun(name: string): Vector2**\\ **_ALL_SetColor: fun(name: string, color: Color) fun(name: string): Vector2** 名前を指定してColorを設定します。 === サンプル === function onUse(use) vci.assets.material.SetColor("Cube-Material", Color.blue) end === 実行結果 === マテリアル名がCube-MaterialのColorを青に設定します。 ===== SetEmissionColorFromIndex ===== **SetEmissionColorFromIndex: fun(index: number, color: Color)**\\ **_ALL_SetEmissionColorFromIndex: fun(index: number, color: Color)** 番号を指定してEmissionColorを設定します。 === サンプル === function onUse(use) vci.assets.material.SetEmissionColorFromIndex(1, Color.red) end === 実行結果 === index番号1番のマテリアルのEmissionColorを赤に設定します。 ===== SetEmissionColor ===== **SetEmissionColor: fun(name: string, color: Color)**\\ **_ALL_SetEmissionColor: fun(name: string, color: Color)** 名前を指定してEmissionColorを設定します。 === サンプル === function onUse(use) vci.assets.material.SetEmissionColor("Cube-Material", Color.blue) end === 実行結果 === マテリアル名がCube-MaterialのEmissionColorを青に設定します。 ===== SetTextureOffsetFromIndex ===== **SetTextureOffsetFromIndex: fun(index: number, offset: Vector2)**\\ **_ALL_SetTextureOffsetFromIndex: fun(index: number, offset: Vector2)** 番号を指定してTextureOffsetを設定します。 === サンプル === function onUse(use) if count == 9 then count = 0 else count = count + 1 end SetCounterOffset(count) end function SetCounterOffset(count) local offset = Vector2.zero -- y shift local Yshift = math.floor(count / 4) offset.y = -0.25 * Yshift -- x shift local Xshift = count % 4 offset.x = 0.25 * Xshift vci.assets.material.SetTextureOffsetFromIndex(1, offset) end === 実行結果 === クリックするごとにTextureOffsetをずらします。サンプルでは4*4枚の画像まで使用できますが、10枚だけ使用しています。 ===== SetTextureOffset ===== **SetTextureOffset: fun(name: string, offset: Vector2)**\\ **_ALL_SetTextureOffset: fun(name: string, offset: Vector2)** 名前を指定してTextureOffsetを設定します。 === サンプル === function onUse(use) local offset = Vector2.zero offset.y = -0.25 offset.x = 0.25 * Xshift vci.assets.material.SetTextureOffset("PlaneMaterial", offset) end === 実行結果 === マテリアル名が"PlaneMaterial"であるTextureのOffsetを(0.25, -0.25)に設定しています。 ===== SetTextureFromIndex ===== **SetTextureFromIndex: fun(index: number, textureId: string)**\\ **_ALL_SetTextureFromIndex: fun(index: number, textureId: string)** 番号 ''index'' を指定したマテリアルに対して、指定のテクスチャ ''textureId'' を適用します。 詳しい説明は [[vci:script:reference:exportassets:material#SetTexture()|SetTexture]] をご覧ください。 ===== SetTexture ===== **SetTexture: fun(name: string, textureId: string)**\\ **_ALL_SetTexture: fun(name: string, textureId: string)** 名前 ''name'' を指定したマテリアルに対して、指定のテクスチャ ''textureId'' を適用します。 ^ テクスチャ ID ^ 説明 ^ | ''_SYS_NULL'' | テクスチャの指定が空の状態 | | ''_SYS_DEFAULT'' | このマテリアルのデフォルトのテクスチャ | | [[vci:script:reference:exportphotographycamera#getcamerapreviewtexture|GetCameraPreviewTextureで得られるID]] | 写真撮影用カメラのプレビューテクスチャ | | [[vci:script:reference:exportphotographycamera#setontakephotocallback|SetOnTakePhotoCallbackで得られるID]] | 写真撮影用カメラの写真テクスチャ | === サンプル === function onUse(use) -- Use するとテクスチャが無くなる vci.assets.material.SetTexture("PlaneMaterial", "_SYS_NULL") end function onUnuse(use) -- Unuse するとテクスチャがデフォルトに戻る vci.assets.material.SetTexture("PlaneMaterial", "_SYS_DEFAULT") end ===== ResetFromIndex() ===== **ResetFromIndex: fun(index: number)**\\ **_ALL_ResetFromIndex: fun(index: number)** 番号を指定して初期状態にリセットします。 === サンプル === function onUse(use) vci.assets.material.ResetFromIndex(1) end === 実行結果 === index番号1番のマテリアルを初期状態にします。 ===== Reset ===== **Reset: fun(name: string)**\\ **_ALL_Reset: fun(name: string)** 名前を指定して初期状態にリセットします。 === サンプル === function onUse(use) vci.assets.material.Reset("Cube-Material") end === 実行結果 === マテリアル名が"Cube-Material"のマテリアルを初期状態にします。