~~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"のマテリアルを初期状態にします。