ExportMaterial(マテリアル制御)

このページは過去の情報となります。
新しいスクリプトリファレンスはこちらになります。

ExportMaterialExportAssetsの中にあるマテリアル制御系の関数の後に追加されました。
現在はこちらのページの関数が推奨です。

ExportAssets
名前 説明 バージョン
material VCI内のObjectを取得
ExportMaterial
名前 説明 バージョン
GetNames マテリアル名の一覧を取得
GetColorFromIndex 番号を指定してColorを取得
GetColor 名前を指定してColorを取得
GetEmissionColorFromIndex 番号を指定してEmissionColorを取得
GetEmissionColor 名前を指定してEmissionColorを取得
GetTextureOffsetFromIndex 番号を指定してTextureOffsetを取得
GetTextureOffset 名前を指定してTextureOffsetを取得
SetColorFromIndex 番号を指定してColorを設定
SetColor 名前を指定してColorを設定
SetEmissionColorFromIndex 番号を指定してEmissionColorを設定
SetEmissionColor 名前を指定してEmissionColorを設定
SetTextureOffsetFromIndex 番号を指定してTextureOffsetを設定
SetTextureOffset 名前を指定してTextureOffsetを設定
SetTextureFromIndex 番号を指定してTextureを設定
SetTexture 名前を指定してTextureを設定
ResetFromIndex 番号を指定して初期状態にリセット
Reset 名前を指定して初期状態にリセット

_ALL_ を含む関数は、他のクライアントでも実行され同期します。 全てのクライアントで同じ結果になってほしい場合は _ALL_ を含む関数を使用してください。

SetColor
_ALL_SetColor

material

ExportAssets. material ExportMaterial

VCI内のObjectを取得します。

サンプル

main.lua
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

マテリアル名の一覧を取得します。

サンプル

main.lua
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を取得します。

サンプル

main.lua
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を取得します。

サンプル

main.lua
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を取得します。

サンプル

main.lua
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を取得します。

サンプル

main.lua
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を取得します。

サンプル

main.lua
function onUse(use)
    print(vci.assets.material.GetTextureOffsetFromIndex(1))
end

実行結果

(0.0, 0.0)

GetTextureOffset

GetTextureOffset: fun(name: string): Vector2

名前を指定してTextureOffsetを取得します。

サンプル

main.lua
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を設定します。

サンプル

main.lua
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を設定します。

サンプル

main.lua
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を設定します。

サンプル

main.lua
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を設定します。

サンプル

main.lua
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を設定します。

サンプル

main.lua
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を設定します。

サンプル

main.lua
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 を適用します。

詳しい説明は SetTexture をご覧ください。

SetTexture

SetTexture: fun(name: string, textureId: string)
_ALL_SetTexture: fun(name: string, textureId: string)

名前 name を指定したマテリアルに対して、指定のテクスチャ textureId を適用します。

テクスチャ ID 説明
_SYS_NULL テクスチャの指定が空の状態
_SYS_DEFAULT このマテリアルのデフォルトのテクスチャ
GetCameraPreviewTextureで得られるID 写真撮影用カメラのプレビューテクスチャ
SetOnTakePhotoCallbackで得られるID 写真撮影用カメラの写真テクスチャ

サンプル

main.lua
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)

番号を指定して初期状態にリセットします。

サンプル

main.lua
function onUse(use)
    vci.assets.material.ResetFromIndex(1)
end

実行結果

index番号1番のマテリアルを初期状態にします。

Reset

Reset: fun(name: string)
_ALL_Reset: fun(name: string)

名前を指定して初期状態にリセットします。

サンプル

main.lua
function onUse(use)
    vci.assets.material.Reset("Cube-Material")
end

実行結果

マテリアル名が"Cube-Material"のマテリアルを初期状態にします。