[Constants]
global persist $swapvar = 3
global $active
global $Eactive
global $WandererIB
global persist $nohat = 0
global persist $noarms = 0
global $lastActiveTime
[KeySwap]
condition = $active == 1
key = vk_right
back = vk_left
type = cycle
$swapvar = 3,0,1,2
[KeySwapH]
condition = $active == 1
key = H
type = cycle
$nohat = 0,1
[KeySwapArms]
condition = $active == 1
key = Y
type = cycle
$noarms = 1,2
[KeySwapArmsUnlock]
condition = $active == 1
key = alt Y
$noarms = 0
[Present]
if time - $lastActiveTime > 1
post $Eactive = 0
endif
post $active = 0
post $WandererIB = 0
[ResourceRefHeadDiffuse]
[ResourceRefHeadLightMap]
[ResourceRefBodyDiffuse]
[ResourceRefBodyLightMap]
[ResourceRefDressDiffuse]
[ResourceRefDressLightMap]
[ResourceRefExtraDiffuse]
[ResourceRefExtraLightMap]
; Shader ------------------------------
; Overrides ---------------------------
[TextureOverrideWandererPosition]
hash = 0110e1c7
run = CommandListWandererPosition
$active = 1
[TextureOverrideWandererBlend]
hash = a716d4f2
run = CommandListWandererBlend
[TextureOverrideWandererTexcoord]
hash = 798f0feb
run = CommandListWandererTexcoord
[ResourceWandererPosition.3]
type = Buffer
stride = 40
filename = .\WandererModf0001\WandererPosition.buf
[ResourceWandererBlend.3]
type = Buffer
stride = 32
filename = .\WandererModf0001\WandererBlend.buf
[ResourceWandererTexcoord.3]
type = Buffer
stride = 12
filename = .\WandererModf0001\WandererTexcoord.buf
[ResourceWandererHeadIB.3]
type = Buffer
format = DXGI_FORMAT_R32_UINT
filename = .\WandererModf0001\WandererHead.ib
[ResourceWandererBodyIB.3]
type = Buffer
format = DXGI_FORMAT_R32_UINT
filename = .\WandererModf0001\WandererBody.ib
; .ini generated by GIMI (Genshin-Impact-Model-Importer) mod merger script
; If you have any issues or find any bugs, please open a ticket at https://github.com/SilentNightSound/GI-Model-Importer/issues or contact SilentNightSound#7430 on discord
[ShaderRegexCharReflection]
shader_model = ps_5_0
run = CommandListReflectionTexture
[ShaderRegexCharReflection.pattern]
discard_n\w+ r\d.\w+\n
lt r\d.\w+, l(0.010000), r\d.\w+\n
and r\d.\w+, r\d.\w+, r\d.\w+\n
; CommandList -------------------------
[CommandListReflectionTexture]
if $WandererIB != 0
if $WandererIB == 1
ps-t0 = copy ResourceRefHeadDiffuse
else if $WandererIB == 2
ps-t0 = copy ResourceRefBodyDiffuse
else if $WandererIB == 3
ps-t0 = copy ResourceRefDressDiffuse
else if $WandererIB == 4
ps-t0 = copy ResourceRefExtraDiffuse
endif
drawindexed=auto
$WandererIB = 0
endif
only toggle Hat didn't work
; Merged Mod: .\WandererModf0002\Wanderer.ini, .\WandererModf0003\Wanderer.ini, .\WandererModf0004\Wanderer.ini
; Constants ---------------------------
[Constants] global persist $swapvar = 3 global $active global $Eactive global $WandererIB global persist $nohat = 0 global persist $noarms = 0 global $lastActiveTime
[KeySwap] condition = $active == 1 key = vk_right back = vk_left type = cycle $swapvar = 3,0,1,2
[KeySwapH] condition = $active == 1 key = H type = cycle $nohat = 0,1
[KeySwapArms] condition = $active == 1 key = Y type = cycle $noarms = 1,2
[KeySwapArmsUnlock] condition = $active == 1 key = alt Y $noarms = 0
[Present] if time - $lastActiveTime > 1 post $Eactive = 0 endif post $active = 0 post $WandererIB = 0 [ResourceRefHeadDiffuse] [ResourceRefHeadLightMap] [ResourceRefBodyDiffuse] [ResourceRefBodyLightMap] [ResourceRefDressDiffuse] [ResourceRefDressLightMap] [ResourceRefExtraDiffuse] [ResourceRefExtraLightMap]
; Shader ------------------------------
; Overrides ---------------------------
[TextureOverrideWandererPosition] hash = 0110e1c7 run = CommandListWandererPosition $active = 1
[TextureOverrideWandererBlend] hash = a716d4f2 run = CommandListWandererBlend
[TextureOverrideWandererTexcoord] hash = 798f0feb run = CommandListWandererTexcoord
[TextureOverrideWandererVertexLimitRaise] hash = 8487a77e
[TextureOverrideWandererIB] hash = 6bba515c ;hash = 536e3b83 run = CommandListWandererIB
[TextureOverrideWandererHead] hash = 6bba515c ;hash = 536e3b83 match_first_index = 0 run = CommandListWandererHead
[TextureOverrideWandererBody] hash = 6bba515c ;hash = 536e3b83 match_first_index = 17379 run = CommandListWandererBody
[TextureOverrideWandererHat] hash = a16aff98 ;hash = 99be9547 run = CommandListWandererHat
[TextureOverrideWandererE] hash = 12a9a87d $lastActiveTime = time $EActive = 1
; CommandList -------------------------
[CommandListWandererPosition] if $swapvar == 0 vb0 = ResourceWandererPosition.0 else if $swapvar == 1 vb0 = ResourceWandererPosition.1 else if $swapvar == 2 vb0 = ResourceWandererPosition.2 else if $swapvar == 3 vb0 = ResourceWandererPosition.3 endif
[CommandListWandererBlend] if $swapvar == 0 vb1 = ResourceWandererBlend.0 handling = skip draw = 100000,0 else if $swapvar == 1 vb1 = ResourceWandererBlend.1 handling = skip draw = 100000,0 else if $swapvar == 2 vb1 = ResourceWandererBlend.2 handling = skip draw = 100000,0 else if $swapvar == 3 vb1 = ResourceWandererBlend.3 handling = skip draw = 100000,0 endif
[CommandListWandererTexcoord] if $swapvar == 0 vb1 = ResourceWandererTexcoord.0 else if $swapvar == 1 vb1 = ResourceWandererTexcoord.1 else if $swapvar == 2 vb1 = ResourceWandererTexcoord.2 else if $swapvar == 3 vb1 = ResourceWandererTexcoord.3 endif
[CommandListWandererIB] handling = skip drawindexed = auto
[CommandListWandererHead] if $noarms == 1 ib = null else if $EActive == 0 && $noarms == 0 ib = null else if $swapvar == 0 ib = ResourceWandererHeadIB.0 ps-t0 = ResourceWandererHeadNormalMap.0 ps-t1 = ResourceWandererHeadDiffuse.0 ps-t2 = ResourceWandererHeadLightMap.0 else if $swapvar == 1 ib = ResourceWandererHeadIB.1 ps-t0 = ResourceWandererHeadNormalMap.1 ps-t1 = ResourceWandererHeadDiffuse.1 ps-t2 = ResourceWandererHeadLightMap.1 else if $swapvar == 2 ib = ResourceWandererHeadIB.2 ps-t0 = ResourceWandererHeadNormalMap.2 ps-t1 = ResourceWandererHeadDiffuse.2 ps-t2 = ResourceWandererHeadLightMap.2 else if $swapvar == 3 ib = ResourceWandererHeadIB.3 ps-t0 = ResourceWandererHeadNormalMap.2 ps-t1 = ResourceWandererHeadDiffuse.2 ps-t2 = ResourceWandererHeadLightMap.2 endif $WandererIB = 1 ResourceRefHeadDiffuse = reference ps-t1 ResourceRefHeadLightMap = reference ps-t2
[CommandListWandererBody] if $swapvar == 0 ib = ResourceWandererBodyIB.0 ps-t0 = ResourceWandererBodyNormalMap.0 ps-t1 = ResourceWandererBodyDiffuse.0 ps-t2 = ResourceWandererBodyLightMap.0 else if $swapvar == 1 ib = ResourceWandererBodyIB.1 ps-t0 = ResourceWandererBodyNormalMap.1 ps-t1 = ResourceWandererBodyDiffuse.1 ps-t2 = ResourceWandererBodyLightMap.1 else if $swapvar == 2 ib = ResourceWandererBodyIB.2 ps-t0 = ResourceWandererBodyNormalMap.2 ps-t1 = ResourceWandererBodyDiffuse.2 ps-t2 = ResourceWandererBodyLightMap.2 else if $swapvar == 3 ib = ResourceWandererBodyIB.3 ps-t0 = ResourceWandererBodyNormalMap.2 ps-t1 = ResourceWandererBodyDiffuse.2 ps-t2 = ResourceWandererBodyLightMap.2 endif $WandererIB = 2 ResourceRefBodyDiffuse = reference ps-t1 ResourceRefBodyLightMap = reference ps-t2
[CommandListWandererHat] if $nohat == 1 ib = null endif ; Resources ---------------------------
[ResourceWandererPosition.0] type = Buffer stride = 40 filename = .\WandererModf0002\WandererPosition.buf
[ResourceWandererBlend.0] type = Buffer stride = 32 filename = .\WandererModf0002\WandererBlend.buf
[ResourceWandererTexcoord.0] type = Buffer stride = 12 filename = .\WandererModf0002\WandererTexcoord.buf
[ResourceWandererHeadIB.0] type = Buffer format = DXGI_FORMAT_R32_UINT filename = .\WandererModf0002\WandererHead.ib
[ResourceWandererBodyIB.0] type = Buffer format = DXGI_FORMAT_R32_UINT filename = .\WandererModf0002\WandererBody.ib
[ResourceWandererHeadNormalMap.0] filename = .\WandererModf0002\WandererHeadNormalMap.dds
[ResourceWandererHeadDiffuse.0] filename = .\WandererModf0002\WandererHeadDiffuse.dds
[ResourceWandererHeadLightMap.0] filename = .\WandererModf0002\WandererHeadLightMap.dds
[ResourceWandererBodyNormalMap.0] filename = .\WandererModf0002\WandererBodyNormalMap.dds
[ResourceWandererBodyDiffuse.0] filename = .\WandererModf0002\WandererBodyDiffuse.dds
[ResourceWandererBodyLightMap.0] filename = .\WandererModf0002\WandererBodyLightMap.dds
[ResourceWandererPosition.1] type = Buffer stride = 40 filename = .\WandererModf0003\WandererPosition.buf
[ResourceWandererBlend.1] type = Buffer stride = 32 filename = .\WandererModf0003\WandererBlend.buf
[ResourceWandererTexcoord.1] type = Buffer stride = 12 filename = .\WandererModf0003\WandererTexcoord.buf
[ResourceWandererHeadIB.1] type = Buffer format = DXGI_FORMAT_R32_UINT filename = .\WandererModf0003\WandererHead.ib
[ResourceWandererBodyIB.1] type = Buffer format = DXGI_FORMAT_R32_UINT filename = .\WandererModf0003\WandererBody.ib
[ResourceWandererHeadNormalMap.1] filename = .\WandererModf0002\WandererHeadNormalMap.dds
[ResourceWandererHeadDiffuse.1] filename = .\WandererModf0002\WandererHeadDiffuse.dds
[ResourceWandererHeadLightMap.1] filename = .\WandererModf0002\WandererHeadLightMap.dds
[ResourceWandererBodyNormalMap.1] filename = .\WandererModf0002\WandererBodyNormalMap.dds
[ResourceWandererBodyDiffuse.1] filename = .\WandererModf0002\WandererBodyDiffuse.dds
[ResourceWandererBodyLightMap.1] filename = .\WandererModf0002\WandererBodyLightMap.dds
[ResourceWandererFaceHeadDiffuse.2] filename = .\WandererModf0002\WandererFaceHeadDiffuse.dds
[ResourceWandererPosition.2] type = Buffer stride = 40 filename = .\WandererModf0004\WandererPosition.buf
[ResourceWandererBlend.2] type = Buffer stride = 32 filename = .\WandererModf0004\WandererBlend.buf
[ResourceWandererTexcoord.2] type = Buffer stride = 12 filename = .\WandererModf0004\WandererTexcoord.buf
[ResourceWandererHeadIB.2] type = Buffer format = DXGI_FORMAT_R32_UINT filename = .\WandererModf0004\WandererHead.ib
[ResourceWandererBodyIB.2] type = Buffer format = DXGI_FORMAT_R32_UINT filename = .\WandererModf0004\WandererBody.ib
[ResourceWandererHeadNormalMap.2] filename = .\WandererModf0002\WandererHeadNormalMap.dds
[ResourceWandererHeadDiffuse.2] filename = .\WandererModf0002\WandererHeadDiffuse.dds
[ResourceWandererHeadLightMap.2] filename = .\WandererModf0002\WandererHeadLightMap.dds
[ResourceWandererBodyNormalMap.2] filename = .\WandererModf0002\WandererBodyNormalMap.dds
[ResourceWandererBodyDiffuse.2] filename = .\WandererModf0002\WandererBodyDiffuse.dds
[ResourceWandererBodyLightMap.2] filename = .\WandererModf0002\WandererBodyLightMap.dds
[ResourceWandererPosition.3] type = Buffer stride = 40 filename = .\WandererModf0001\WandererPosition.buf
[ResourceWandererBlend.3] type = Buffer stride = 32 filename = .\WandererModf0001\WandererBlend.buf
[ResourceWandererTexcoord.3] type = Buffer stride = 12 filename = .\WandererModf0001\WandererTexcoord.buf
[ResourceWandererHeadIB.3] type = Buffer format = DXGI_FORMAT_R32_UINT filename = .\WandererModf0001\WandererHead.ib
[ResourceWandererBodyIB.3] type = Buffer format = DXGI_FORMAT_R32_UINT filename = .\WandererModf0001\WandererBody.ib
; .ini generated by GIMI (Genshin-Impact-Model-Importer) mod merger script ; If you have any issues or find any bugs, please open a ticket at https://github.com/SilentNightSound/GI-Model-Importer/issues or contact SilentNightSound#7430 on discord
[ShaderRegexCharReflection] shader_model = ps_5_0 run = CommandListReflectionTexture [ShaderRegexCharReflection.pattern] discard_n\w+ r\d.\w+\n lt r\d.\w+, l(0.010000), r\d.\w+\n and r\d.\w+, r\d.\w+, r\d.\w+\n
; CommandList -------------------------
[CommandListReflectionTexture] if $WandererIB != 0 if $WandererIB == 1 ps-t0 = copy ResourceRefHeadDiffuse else if $WandererIB == 2 ps-t0 = copy ResourceRefBodyDiffuse else if $WandererIB == 3 ps-t0 = copy ResourceRefDressDiffuse else if $WandererIB == 4 ps-t0 = copy ResourceRefExtraDiffuse
endif drawindexed=auto $WandererIB = 0 endif