Forum Rules

  • No flaming or derogatory remarks, directly or through insinuation.
  • No discussion, sharing or referencing illegal software such as hacks, keygen, cracks and pirated software.
  • No offensive contents, including but not limited to, racism, gore or pornography.
  • No excessive spam/meme, i.e. copious one liners in a short period of time, typing with all caps or posting meme responses (text/image).
  • No trolling, including but not limited to, flame incitation, user provocation or false information distribution.
  • No link spamming or signature advertisements for content not specific to Dota 2.
  • No Dota 2 key requests, sell, trade etc.
  • You may not create multiple accounts for any purpose, including ban evasion, unless expressly permitted by a moderator.

  • Please search before posting. One thread per issue. Do not create another thread if there is an existing one already.
  • Before posting anything, make sure you check out all sticky threads (e.g., this). Do not create new threads about closed ones.
  • It is extremely important that you post in correct forum section.

  • Balance discussion only in Misc.
  • All art related (such as hero model) feedbacks go to Art Feedback Forum.
  • All matchmaking feedback should go here: Matchmaking Feedback
  • All report/low priority issues should go here: Commend/Report/Ban Feedback
  • No specific workshop item feedback. These should go to workshop page of that item.
  • When posting in non-bugs section (such as this), use [Bugs], [Discussion] or [Suggestion] prefix in your thread name.

In case you object some action by a moderator, please contact him directly through PM and explain your concerns politely. If you are still unable to resolve the issue, contact an administrator. Do not drag these issues in public.

All rules are meant to augment common sense, please use them when not conflicted with aforementioned policies.
See more
See less

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

  • Filter
  • Time
  • Show
Clear All
new posts

  • 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, 04:02 AM.

  • #2
    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
      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
        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.


        • #5
          Posting on behalf of someone else again -

          "There is next to no-one in the S2FM community that works on custom character models at all, and our team are all bound to Blender (and the Source 1 method for stereo controller splitting) I know it's a big ask, but can this issue be forward to the developers who work on the game code itself? By everything that I've seen, this seems exactly like a compile issue with the model importer. For anyone without a proper way to split the stereo controllers in the editor, it becomes next to impossible to manage flexes with multiple correctives. We would really, truly appreciate any further help looking into fixing this issue. The Source 1 method works nearly all the way. The only problem is right at the end. The _left controller doesn't do anything from the automatic compile.

          - Maxxy"

          I'm sorry we're so persistent with this, but the moment we find a solution to this (any solution at all) we can finish working on really awesome videos, completely in S2FM. And we're just really passionate about doing that.

          I appreciate your time, Mr. Joe_Prime.
          - EDJE


          • #6
            Today's update fixed some regressions in the handling of stereo controls, both in authoring and in playback. Please let me know if recompiling with today's update fixes your issues.


            • #7
              Thank you joe_prime, you nailed it. I really appreciate it, thanks guys.