STEAM 组
Blender Source Tools BleST
STEAM 组
Blender Source Tools BleST
396
游戏中
2,197
在线
成立于
2013 年 11 月 8 日
所有讨论 > Help > 主题详情
SD 2021 年 9 月 12 日 上午 7:53
Possible to disable corrective shape key checks for Source 2 exports?
In order to author stereo flexes in modeldoc. Shape keys must be exported with Left_ and Right_ prefixes. The current version of BST will always define shape key names with "_" as a corrective shape while in Source 2 corrective shapes are defined with "__". Would it be possible to disable this check or update it specifically for Source 2?

I've recently figured out that Source 2 can still accept wrinklescales for individual shapekeys rather than relying on ComputeWrinklescales, but this becomes problematic when the flex controllers only accept default shape key names with no underscores.
最后由 SD 编辑于; 2021 年 9 月 12 日 上午 11:10
引用自 Artfunkel:
I just pushed changes to GitHub which include support for ModelDoc corrective shapes. To enable it, either set your engine path to HLVR's bin64 directory, or manually select "Model 22 (ModelDoc)" as your DMX format.

Please let me know if this fixes the problem, and whether there is anything else that the Tools could do to make life easier in this area.
< >
正在显示第 1 - 10 条,共 10 条留言
Zappy 2021 年 9 月 12 日 上午 8:37 
For Source 1, there's a difference between a "flex" (shape key) and a "flex controller" (the slider/input in Source Filmmaker/Garry's Mod/other games).
You can then use "advanced" DMX flexes to give a "flex controller" (the "name" in the flex definitions) a different name than its "flex" (the "rawControlNames").

With this, you can name a shape key as "Left-Example" and "Right-Example", then do something like this in the flex definitions...
"DmeCombinationInputControl" { "id" "elementid" "ee4bf229-d43a-3a8c-bdd2-5804d0dd1263" "name" "string" "right_Example" "rawControlNames" "string_array" ["Right-Example"] "stereo" "bool" "0" "eyelid" "bool" "0" "flexMax" "float" "1.0" "flexMin" "float" "0.0" "wrinkleScales" "float_array" ["0"] }, "DmeCombinationInputControl" { "id" "elementid" "1322da48-cd70-3e12-8f28-a1e4476b13ad" "name" "string" "left_Example" "rawControlNames" "string_array" ["Left-Example"] "stereo" "bool" "0" "eyelid" "bool" "0" "flexMax" "float" "1.0" "flexMin" "float" "0.0" "wrinkleScales" "float_array" ["0"] },
...and then Source Filmmaker will treat it as a single stereo flex.


I'm not proposing this as a "fix", just a "workaround", and I don't know if it works this way in Source 2.
SD 2021 年 9 月 12 日 上午 10:57 
引用自 Zappy
For Source 1, there's a difference between a "flex" (shape key) and a "flex controller" (the slider/input in Source Filmmaker/Garry's Mod/other games).
You can then use "advanced" DMX flexes to give a "flex controller" (the "name" in the flex definitions) a different name than its "flex" (the "rawControlNames").

With this, you can name a shape key as "Left-Example" and "Right-Example", then do something like this in the flex definitions...
"DmeCombinationInputControl" { "id" "elementid" "ee4bf229-d43a-3a8c-bdd2-5804d0dd1263" "name" "string" "right_Example" "rawControlNames" "string_array" ["Right-Example"] "stereo" "bool" "0" "eyelid" "bool" "0" "flexMax" "float" "1.0" "flexMin" "float" "0.0" "wrinkleScales" "float_array" ["0"] }, "DmeCombinationInputControl" { "id" "elementid" "1322da48-cd70-3e12-8f28-a1e4476b13ad" "name" "string" "left_Example" "rawControlNames" "string_array" ["Left-Example"] "stereo" "bool" "0" "eyelid" "bool" "0" "flexMax" "float" "1.0" "flexMin" "float" "0.0" "wrinkleScales" "float_array" ["0"] },
...and then Source Filmmaker will treat it as a single stereo flex.


I'm not proposing this as a "fix", just a "workaround", and I don't know if it works this way in Source 2.
Doesn't work like this unfortunately. I tried it, Modeldoc will instead create a duplicate flex controller with underscores while the controller defined in the dmx text file has no function/ slider doesn't work
https://imgur.com/a/pB7r8Ef
最后由 SD 编辑于; 2021 年 9 月 12 日 上午 11:11
Rabbitfox 2021 年 9 月 13 日 下午 3:34 
For stereo flexes, can't you just set the "stereo" "bool" in the DMX file to "1" instead of "0" for the flexes in question? Works for me in Source 2 and I don't need the left/right prefix then. Also where did you get the information that corrective flexes are defined with "__"? I tried that out and Source 2 doesn't recognize that as a corrective flex, it just makes a separate controller with the two underscores in it.
SD 2021 年 9 月 13 日 下午 3:49 
引用自 Rabbitfox
For stereo flexes, can't you just set the "stereo" "bool" in the DMX file to "1" instead of "0" for the flexes in question? Works for me in Source 2 and I don't need the left/right prefix then. Also where did you get the information that corrective flexes are defined with "__"? I tried that out and Source 2 doesn't recognize that as a corrective flex, it just makes a separate controller with the two underscores in it.
The stereo bool still works fine. The issue is that modeldoc for some reason doesn't correctly use the Stereo flex balance causing the left flexes having parts of the right flexes move and vice versa. This also breaks how wrinkle maps behave as they appear on opposite wrong sides.

A video demonstrating this: https://streamable.com/h4f3pw
Corrective shapes as defined in modeldoc is "Morph combination shape". The description states: https://imgur.com/a/CNqbINE

You can see a majority of what im talking about if you open an HLA character in modeldoc
最后由 SD 编辑于; 2021 年 9 月 13 日 下午 3:50
Rabbitfox 2021 年 9 月 24 日 上午 8:02 
Did you adjust the Stereo Flex Balance Sharpness when exporting from Blender? Just for a test I set it to 100% and model doc then strictly only flexes the desired side. I normally use around 98% and it works ok. Also couldn't you just create separate left/right flexes in Blender, name them something, export them, define a stereo Morph Control in ModelDoc and then define MorphRules that assign your left/right flex to the stereo Morph Control you created? That way no changes would be needed in the Blender Source Tool, just more work later in ModelDoc.
最后由 Rabbitfox 编辑于; 2021 年 9 月 24 日 上午 8:03
Artfunkel 2021 年 12 月 4 日 上午 3:37 
Thanks for this information. It's hard for me to support this version of the engine as I have no VR hardware, which makes buying Half-Life: Alyx a bit pointless.

Unfortunately the "biped_standard_model" sample DMX files that I have from the Alyx SDK are version 22, which is the same as for earlier Source 2 versions (which use a single underscore). That makes it hard to differentiate between the two.

Does anyone know of a sample DMX file for this build of the engine which includes flexes?
最后由 Artfunkel 编辑于; 2021 年 12 月 4 日 上午 3:38
Smug Bastard 2021 年 12 月 5 日 上午 2:43 
Unfortunately I don't think there are any examples in Alyx SDK. Would a decompiled blender version of HLA character (f.e. GMan) be of any use?
Artfunkel 2021 年 12 月 5 日 上午 8:19 
Unfortunately no, that would only tell me what the author of the third-party decompiler knows. What I'm really interested in seeing is whether version 23 of the DMX model format exists and is supported by the engine.

It looks like I'll just have to add double underscore as a manual setting in the exporter.
Artfunkel 2021 年 12 月 5 日 上午 9:09 
Oh boy, things get confusingif you want to use an older DMX with single underscores in modeldoc. Why did you do this, Valve?!
此论坛的一名版主已表示此帖子解答了原先的主题。
Artfunkel 2022 年 1 月 29 日 上午 10:27 
I just pushed changes to GitHub which include support for ModelDoc corrective shapes. To enable it, either set your engine path to HLVR's bin64 directory, or manually select "Model 22 (ModelDoc)" as your DMX format.

Please let me know if this fixes the problem, and whether there is anything else that the Tools could do to make life easier in this area.
< >
正在显示第 1 - 10 条,共 10 条留言
每页显示数: 1530 50

所有讨论 > Help > 主题详情