Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
In this example, "coat.dmx" should have shape keys and flex controller definitions, while "shirt.dmx" should have shape keys without flex definitions.
(You could also swap it around if you'd like; The important thing is that the flex controllers are only defined in one of the files, despite the shape keys being in both of them.)
To avoid having flex definitions in a DMX export, use the "Source Engine Exportables" panel (in Blender) to give the "shirt" object "advanced" flexes instead of "simple" ones, then use this as the flex definition block:
Admittedly, I haven't tested that specific flex definition block, but it should probably work, I hope.
After that, re-export the "shirt" object as a DMX file. If everything goes as planned, Blender should warn you that there are shape keys without flex controller definitions. Then you should just have to re-compile the model, and then it should work afterwards.
$model "asdf" "cookie_body.smd"
{
flexfile "cookie_body.vta"
{
defaultflex frame 0
flex "something" frame 1
}
flexcontroller something range 0 1 "something"
flexcontroller FlexWithCoat range 0 1 "FlexWithCoat"
flexcontroller OneControllerFor2FlexesFromCoatAndShirt range 0 1 "OneControllerFor2FlexesFromCoatAndShirt"
%something = something
}
$model "coat" "coat_body.smd"
{
flexfile "coat_body.vta"
{
defaultflex frame 0
flex "FlexWithCoat" frame 1
flex "OneControllerFor2FlexesFromCoatAndShirt" frame 2
}
%FlexWithCoat = FlexWithCoat
%OneControllerFor2FlexesFromCoatAndShirt = OneControllerFor2FlexesFromCoatAndShirt
}
$model "shirt" "shirt_body.smd"
{
flexfile "shirt_body.vta"
{
defaultflex frame 0
flex "OneControllerFor2FlexesFromCoatAndShirt" frame 1
}
%OneControllerFor2FlexesFromCoatAndShirt = OneControllerFor2FlexesFromCoatAndShirt
}
So when u load model u will have 2 flexes from body and coat. and ONE flex working on coat and shirt at once
If u want to share flexes among $bodygroup
u need to declare flex on body smd and make flexes on !!!!!!!!!!!.DMX!!!!!!!!!! models that u put in bodygroups as CORRECTIVE SHAPE KEY in blender or whatever you use
or the save if u use .dmx on main model, but flexNAMES on main model and corrective flexes on bodygrouped models must be the same
It works perfectly. Amazing, I never would have guessed to do this. This bodygroup-flexes problem has bothered me many times in the past, so thanks a lot.
Hey, sorry to be reviving this old thread, but when you say “The important thing is that the flex controllers are only defined in one of the files, despite the shape keys being in both of them”, does this apply when there are more than two .dmx files in a bodygroup?
In my case, I’m making an updated smash bros sonic model port, and I made flexes for the mouth, so I have three different mouth .dmx models with the same flexes (one for the mouth on the left, right, and a “blank” mouth. Some of the flexes also control the shape of the muzzle). In this case, would defining the flex controllers for just one of them work, or would I need to define the flex controllers for the other two .dmx models so that the flexes work in SFM?
Also, just to make sure I understand what this would do, this would make it so that the one flex slider would affect all the models that have that same flex, or would this make an additional slider with the same flex name?
This isn’t important to the question, but if anyone is wondering, I’m trying to keep all the mouth models on one whole model rather than making a whole separate model for the left, right, and blank mouth like other sonic models on the workshop do because I already have separate whole models for each of his alts found in smash and I don't want to triple that if I can avoid it.
Let's pretend that the left and right mouth objects have flexes called "Smile", "Frown", and "Open Mouth", and that the blank-mouth object has flexes called "Smile" and "Gasp".
You should define "Smile", "Frown", and "Open Mouth" flex controllers in the left mouth DMX, and "Gasp" (but not "Smile"!) in the blank-mouth DMX, and no flex controllers in the right mouth DMX.
(If you'd like, you can probably(?) also define all of "Smile", "Frown", "Open Mouth", and "Gasp" in the left mouth DMX, even though "Gasp" isn't on the left mouth object, and not define any flex controllers in the right mouth nor blank-mouth DMXs.)