Language:

サイドバー

バーチャルキャスト公式Wiki

メニュー

配信

その他

リリース情報

デベロッパー向け


開発環境

VRM

VCI

GLB

vci:script:reference:exportassets:material

assets.material (ExportMaterial) (マテリアル制御)

1.8.2aから、マテリアル制御系の関数が追加されました。vci.assets(ExportAssets)にもマテリアル操作系の関数がありますが、今後はExportMaterialに移行する予定ですので、こちらを優先してご使用ください。

メンバ変数・関数一覧

[EmbeddedScriptWorkspace]フォルダ内の[types.lua]を開くと一覧を確認できます。

名前 説明
GetNames: fun(): usertype マテリアル名の一覧を取得します。
GetColorFromIndex: fun(index: number): Color 番号を指定してColorを取得します。
GetColor: fun(name: string): Color 名前を指定してColorを取得します。
GetEmissionColorFromIndex: fun(index: number): Color 番号を指定してEmissionColorを取得します。
GetEmissionColor: fun(name: string): Color 名前を指定してEmissionColorを取得します。
GetTextureOffsetFromIndex: fun(index: number): Vector2 番号を指定してTextureOffsetを取得します。
GetTextureOffset: fun(name: string): Vector2 名前を指定してTextureOffsetを取得します。
SetColorFromIndex: fun(index: number, color: Color) 番号を指定してColorを設定します。
SetColor: fun(name: string, color: Color) fun(name: string): Vector2 名前を指定してColorを設定します。
SetEmissionColorFromIndex: fun(index: number, color: Color) 番号を指定してEmissionColorを設定します。
SetEmissionColor: fun(name: string, color: Color) 名前を指定してEmissionColorを設定します。
SetTextureOffsetFromIndex: fun(index: number, offset: Vector2) 番号を指定してTextureOffsetを設定します。
SetTextureOffset: fun(name: string, offset: Vector2) 名前を指定してTextureOffsetを設定します。
SetTextureFromIndex: fun(index: number, textureId: string) 番号を指定してTextureを設定します。
SetTexture: fun(name: string, textureId: string) 名前を指定してTextureを設定します。
ResetFromIndex: fun(index: number) 番号を指定して初期状態にリセットします。
Reset: fun(name: string) 名前を指定して初期状態にリセットします。

_ALL_を含むメソッド(他のクライアントでも実行されます)

名前 説明
_ALL_SetColorFromIndex: fun(index: number, color: Color) 番号を指定してColorを設定します。
_ALL_SetColor: fun(name: string, color: Color) fun(name: string): Vector2 名前を指定してColorを設定します。
_ALL_SetEmissionColorFromIndex: fun(index: number, color: Color) 番号を指定してEmissionColorを設定します。
_ALL_SetEmissionColor: fun(name: string, color: Color) 名前を指定してEmissionColorを設定します。
_ALL_SetTextureOffsetFromIndex: fun(index: number, offset: Vector2) 番号を指定してTextureOffsetを設定します。
_ALL_SetTextureOffset: fun(name: string, offset: Vector2) 名前を指定してTextureOffsetを設定します。
_ALL_SetTextureFromIndex: fun(index: number, textureId: string) 番号を指定してTextureを設定します。
_ALL_SetTexture: fun(name: string, textureId: string) 名前を指定してTextureを設定します。
_ALL_ResetFromIndex: fun(index: number) 番号を指定して初期状態にリセットします。
_ALL_Reset: fun(name: string) 名前を指定して初期状態にリセットします。

GetNames()

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

サンプル

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

実行結果

RGBA(0.500, 0.500, 0.500, 1.000)

説明
番号を指定してColorを取得します。

GetColor()

GetColor: fun(name: string): Color

サンプル

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

実行結果

RGBA(0.500, 0.500, 0.500, 1.000)

説明
名前を指定してColorを取得します。

GetEmissionColorFromIndex()

GetEmissionColorFromIndex: fun(index: number): Color

サンプル

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

実行結果

RGBA(0.000, 0.000, 0.000, 1.000)

説明
番号を指定してEmissionColorを取得します。

GetEmissionColor()

GetEmissionColor: fun(name: string): Color

サンプル

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

実行結果

RGBA(0.000, 0.000, 0.000, 1.000)

説明
名前を指定してEmissionColorを取得します。

GetTextureOffsetFromIndex()

GetTextureOffsetFromIndex: fun(index: number): Vector2

サンプル

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

実行結果

(0.0, 0.0)

説明
番号を指定してTextureOffsetを取得します。

GetTextureOffset()

GetTextureOffset: fun(name: string): Vector2

サンプル

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

実行結果

(0.0, 0.0)

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

SetColorFromIndex()

SetColorFromIndex: fun(index: number, color: Color)

サンプル

main.lua
function onUse(use)
    vci.assets.material.SetColorFromIndex(1, Color.red)
end

実行結果

index番号1番のマテリアルのColorを赤に設定します。

説明
番号を指定してColorを設定します。

SetColor()

SetColor: fun(name: string, color: Color) fun(name: string): Vector2

サンプル

main.lua
function onUse(use)
    vci.assets.material.SetColor("Cube-Material", Color.blue)
end

実行結果

マテリアル名がCube-MaterialのColorを青に設定します。

説明
名前を指定してColorを設定します。

SetEmissionColorFromIndex()

SetEmissionColorFromIndex: fun(index: number, color: Color)

サンプル

main.lua
function onUse(use)
    vci.assets.material.SetEmissionColorFromIndex(1, Color.red)
end

実行結果

index番号1番のマテリアルのEmissionColorを赤に設定します。

説明
番号を指定してEmissionColorを設定します。

SetEmissionColor()

SetEmissionColor: fun(name: string, color: Color)

サンプル

main.lua
function onUse(use)
    vci.assets.material.SetEmissionColor("Cube-Material", Color.blue)
end

実行結果

マテリアル名がCube-MaterialのEmissionColorを青に設定します。

説明
名前を指定してEmissionColorを設定します。

SetTextureOffsetFromIndex()

SetTextureOffsetFromIndex: fun(index: number, offset: Vector2)

サンプル

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枚だけ使用しています。

説明
番号を指定してTextureOffsetを設定します。

SetTextureOffset()

SetTextureOffset: fun(name: string, offset: Vector2)

サンプル

main.lua
function onUse(use)
    local offset = Vector2.zero
    offset.y = -0.25
    offset.x = 0.25 * Xshift
    vci.assets.material.SetTextureOffsetFromIndex("PlaneMaterial", offset)
end

実行結果

マテリアル名が"PlaneMaterial"であるTextureのOffsetを(0.25, -0.25)に設定しています。

説明
名前を指定してTextureOffsetを設定します。

SetTextureFromIndex()

SetTextureFromIndex: fun(index: number, textureId: string)

説明

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

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

SetTexture()

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

説明

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

テクスチャ ID 一覧

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)

サンプル

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

実行結果

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

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

Reset()

Reset: fun(name: string)

サンプル

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

実行結果

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

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

vci/script/reference/exportassets/material.txt · 最終更新: 2021/11/22 14:33 by santarh

ページ用ツール