Results 1 to 4 of 4

Thread: Getting the L/R sliders on facial flexes working (SetStereoControl bug)

  1. #1
    Basic Member
    Join Date
    Sep 2012

    Question Getting the L/R sliders on facial flexes working (SetStereoControl bug)

    Hey guys -

    I'm on a crew that's currently making HWM Dota 2 models. We've encountered an issue with stereo flexes (The ability to animate one side of the face but not the other). We know that none of the default Dota 2 characters use it, but it is there. We've imported a custom model with morphs. Without stereo it works just fine. We can animate his face.

    But if we import him WITH Stereo, we're frustratingly 50% off. We can freely animate his right side. And we absolutely cannot do that with his left. Even though the option is there. Here's a demonstration:

    and also check out this:

    This model was made specifically to test stereo controls. Ignore the actual content of the morph. It's supposed to stretch the face like that.

    The model was exported from Blender, using BlenderSourceTools to get the Advanced 'Flex' Properties. We imported the DMX to Source 2 with the Model Editor, like normal.

    What's frustrating is that in SFM 1, this model does work. It has independent left and right flexes.

    Is this a bug in Source 2? Or are we just doing something wrong in the export?

    Ooooh boy I hope it's the latter.

    Here's the model if you guys want to check it out yourself.

    Last edited by EDJE; 01-03-2018 at 04:02 AM.

  2. #2
    Valve Developer
    Join Date
    Jun 2015
    Are you sure you shared the correct dmx file?

    I took a look at saxton_head_out.dmx, and the combinationOperator doesn't have any left_ or right_ controls, just CloseLid, InnerSquint, etc, so it looks like an export issue. Similarly, the DmeMesh's deltaStates have CloseLid, InnerSquint, etc, but no left_ or right_ deltas. There are also a lot of unreferenced deltas, including WrinkleNose.

    (You can view a dmx file in the SFM's element viewer - just create an empty session, right click on miscBin in the Element Viewer, and select Import Element)

  3. #3
    Basic Member
    Join Date
    Sep 2012


    Posting on behalf of my modeler friend and colleague:

    "THE PROBLEM: Source 2 breaks the _left stereo controllers if they were compiled/created via the engine itself.
    (Illustration with a GIFV, I can post other formats if required.)

    Included example files and description: Google drive link
    (Let me know if I should upload this to Dropbox or other alternatives instead.)

    I included the following folders:
    source-1-filmmaker-working-example // An example of a working Source 1 model, in Source 2 however is slightly off, because the _left stereo controller is not working.
    files-dota2-example // Has 2 folders, both working and not working examples in Source 2. ( The working example is too complicated to setup in any 3D editing tool with corrective flexes )
    files-dota2-saxton // An example of a complicated (hwm) head, works in Source 1, but the _left flexes do not work in Source 2 as stated in the issue itself.

    Dota 2 examples:
    Note: The starting shape is a sphere

    How it looks in Source 1: (note, just from InnerSquint and BrowOutV, it automatically created left_ and right_ based on $stereo 1 in flex controllers)

    How it gets seperated to L and R automatically in Source 1. (This is a weight group, later examples shows how the "DMX Stereo Balance" is recognised by both Source 1 and Source 2)

    How it looks in Source 2: (Exactly the same files used but in Source 2, however the _left side is ignored, note: the Morph explorer values, also the engine uses the "DMX Stereo Balance" Vertex group to create the working _right side)

    test_stereo_s1fm_method - An example that works in Source 1, and is ALMOST working in Source 2, but the _left side does not react to the controller. (Note: Controller source has $stereo "1" that automatically creates the _left and _right based on the "DMX Stereo Balance" weight group)

    GIFV to demonstrate how it works in Source 2: (On the serious note, if this could be fixed, we would be able to progress.)
    GIFV to demonstrate how it works in Source 1:

    This is a working example, but is unneccesarily complicated (most specificly, with corrective flexes, makes it exponentionally harder to create with most 3D editing softwares, creating _left and _right side manually is tedious). The goal of the Source 1 method is to create these _left and _right sides automatically, saving all the neccesary work to focus on iteration of corrective shapes.

    On a side note, here are other issues with the source 2 morph system:
    - Wrinklemap support is not integrated with materials(?). Any documentation / implementations of that would be welcoming.
    - Domination rules are not functioning, in Source 1 It was a feature that allowed specific flex combinations to be suppressed, avoiding specific combinations without correctives (e.g using OpenJaw and PuffLips is not possible, domination rules ignores the PuffLips when OpenJaw is used)

    Since the Dota 2 film contest has started, we would like the developer team to address some of these issues, preferably the Stereo controller issue, as it seems to be a minor one.

    - Maxxy"

    Thank you very much for reading.
    - EDJE

  4. #4
    Valve Developer
    Join Date
    Jun 2015
    The Dota team uses a different path for creating stereo controls than the Source1 TF2/SFM did - specifically, they manually create right_ and left_ controls. They also use a different path for controls that interact with each other, where the artist supplies DmeFlexRules that drive flex weights, rather than creating combination/domination groupings.

    Basically, your test_stereo_working_method is the way that the Dota team works internally.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts