Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

SALSA Lipsync Suite - lip-sync, emote, head, eye, and eyelid control system.

Discussion in 'Assets and Asset Store' started by Crazy-Minnow-Studio, Apr 23, 2014.

  1. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    Hello!
    I believe I understand what you are trying to accomplish and if Dissonance can accommodate that scenario, we should be able to come up with something. We are certainly not the Dissonance experts and it will be necessary for you to work with the Placeholder Software team to implement the Dissonance configuration requirements for your scenario. As far as SALSA is concerned, Placeholder has a good understanding of how SALSA works with their product and should be able to assist you with a setup that works with SALSA. SALSA will respond to an AudioSource, which may be an option considering it sounds like you are not working with standard one-to-one client/server spawning. SALSA will also respond to an externally calculated analysis, which is the way we normally configure the local lipsync avatar. It mainly depends on how Placeholder advises you to setup your Dissonance config.

    I assume you have already checked out our tutorial on setting up a spawned client/server session with SALSA, which should give you an understanding on how SALSA interacts with Dissonance. Granted, it is understood that your scenario will likely require a different Dissonance setup. Once you have your Dissonance setup, we should be able to help with the SALSA setup if there are difficulties there.

    Hope that helps,
    D.
     
  2. Zante

    Zante

    Joined:
    Mar 29, 2008
    Posts:
    429
    In answer to your question, I doubt I'm as well read on the functioning of both as much as I ought to be. ; ]

    It's certainly a starting point. Ultimately, the interface to make this happen would, ideally, involve:

    1. a salsa-configured gameobject with a new script on it
    2. the script contains a method which uses a public variable as an argument
    3. the method simply uses that argument to identify which audio stream this gameobject should lip-sync to (netid perhaps)?

    Does this seem viable? I haven't looked into it too deeply yet but I'm about to and any guidance you can supply to point me in the right direction is always helpful. : ] - I have dissonance set up for my scene, which is currently using a global audio chat room.
     
    Last edited: Mar 11, 2020
  3. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    @Crazy-Minnow-Studio I'm seeing an error posted to the debug console after playing my game for a short while and then exiting play mode. I have CC3 character with SALSA. Here is the error that occurs after closing run mode:

    MissingReferenceException: The object of type 'Transform' has been destroyed but you are still trying to access it.
    Your script should either check if it is null or you should not destroy the object.
    UnityEngine.Transform.get_localPosition () <0x2184efc6960 + 0x0006a> in <a278ebd44ab0472bb8e638263e06cd61>:0
    CrazyMinnow.SALSA.BoneController.GetNewDelta (System.Boolean isActive, System.Boolean isPersistent) (at <ee0da2b3261f4ee6b6db8f46b0df6944>:0)
    CrazyMinnow.SALSA.QueueProcessor.Register (CrazyMinnow.SALSA.ExpressionComponent expressionComponent, System.Boolean isActivating, System.Single frac) (at <ee0da2b3261f4ee6b6db8f46b0df6944>:0)
    CrazyMinnow.SALSA.Salsa.RegisterComponentOFF (CrazyMinnow.SALSA.ExpressionComponent component, System.Single durOff) (at <ee0da2b3261f4ee6b6db8f46b0df6944>:0)
    CrazyMinnow.SALSA.Salsa.TurnOffAll () (at <ee0da2b3261f4ee6b6db8f46b0df6944>:0)
    CrazyMinnow.SALSA.Salsa.OnDisable () (at <ee0da2b3261f4ee6b6db8f46b0df6944>:0)

    [EDIT]
    Using latest SALSA and Unity 2019.2.17f1

    [EDIT 2]
    Also, my project is using GKC character. It might be partially responsible for the issue if it's moving around the player object in the hierarchy or destroying it unexpectedly. Not sure about that part, but maybe something can be done on SALSA to work around those possibilities.
     
    Last edited: Mar 11, 2020
  4. sacb0y

    sacb0y

    Joined:
    May 9, 2016
    Posts:
    867
    Does this work without an audio file? Like if i want lip sync with just text?
     
  5. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    Yes, please see our web site and store page for information on our simple Text-to-Lipsync implementation. And using our API, you are free to write your own implementation as well.

    Thanks,
    D.
     
  6. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    Hello! It is certainly a fine line between implementing constant checks for valid objects and maintaining code and processing performance. We have tried to implement checks where they are least impactful on performance. From the errors you have posted, it does appear that the object is being destroyed before the OnDisable() processes can complete. This can certainly happen if an Object is destroyed that the Suite is linked to. When a Suite component is on the actual object, and Destroy is used, the normal shutdown processes should gracefully shutdown.

    I will take a look to see if more checks can be put in place. In the meantime, ensure UnityEngine.Object.Destroy is used in lieu of UnityEngine.Object.DestroyImmediate. Also ensure UnityEngine.Object is used instead of the C# System class if possible. And, as a general precaution, for now, it would it should clear up these errors for you to disable the Suite prior to destroying the objects the Suite refers to.

    [edit] Due to the encapsulation of the modular data types, I'm not seeing (at this point) a good spot to add checks without having to check every frame on animation calculations or without using some expensive unboxing checks. I'll keep looking though...

    Thanks,
    D.
     
    Last edited: Mar 12, 2020
    magique likes this.
  7. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    Hello,
    Yes, I would think this is indeed viable and probably very simply on the SALSA side if these are simple scene objects and not network spawned objects. Mapping you data streams to them is going to be a question for Placeholder though. Once you get that in place, you really don't need anything else on SALSA's side after you have configured the objects. Configure you objects with SALSA and then configure your Dissonance portion to map to the objects (if I'm understanding correctly). SALSA will simply work when an object's AudioSource is active and will do nothing when the AudioSource is silent.

    D.
     
  8. skinwalker

    skinwalker

    Joined:
    Apr 10, 2015
    Posts:
    509
    Hello,

    I have a problem with OneClick for CC3, basically when I use it on my character its not using blendshapes but bones and only affecting the teeth bone so there is no animation playing. Is it a problem that I imported the character in maya and exported again? The blendshape names have a prefix of blendshape1. currently because of the maya export.
     
    Last edited: Mar 12, 2020
  9. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    Yep, the OneClick is expecting a set of name options for meshes and blendshapes, directly from the CC3 export. You can modify the OneClick to a custom version to take into account your new naming if you like.

    Check our OneClick docs for detailed info on creating a custom OneClick. https://crazyminnowstudio.com/docs/salsa-lip-sync/addons/one-clicks/

    D.
     
    skinwalker likes this.
  10. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    SALSA LipSync Suite v2.4.0 has been released on the AssetStore.

    This is a small release that mainly provides a few small fixes and tweaks. There are a couple of enhancements as well. If you previously didn't use the Secondary Mix option in SALSA because it felt a little too quirky, you might try it again if you desire more expressive lipsync. Secondary Mix has been re-written and now affords a much smoother, more natural operation. It is a good option to try when the normal viseme configurations do not seem to be dynamic enough.

    See the release notes for more information on this update.

    As always, it is recommended to read the release notes and back up your project if you are updating to this or any other new AssetStore release. If you are starting a fresh project, it is recommended to use the latest version available.

    Thanks and enjoy,
    D.
     
    wetcircuit likes this.
  11. domdev

    domdev

    Joined:
    Feb 2, 2015
    Posts:
    375
    hello do you have a sample apk for old salsa version demo character in latest version? cause in latest version only have that box head version
     
  12. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    We have an examples pack that includes the 2D art from v1 available in the customer add-on downloads. Is that what you are referring to?

    D.
     
  13. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    @Crazy-Minnow-Studio I'm seeing a strange issue with UMA when I disable head processing. It all looks fine with head processing on, but when turned off, I get the following:

    upload_2020-3-26_11-42-10.png

    Using Unity 2019.3.4f1, UMA 2.9, and the latest SALSA .
     
    Jakub-Pilar likes this.
  14. domdev

    domdev

    Joined:
    Feb 2, 2015
    Posts:
    375
    I mean that has the version of v2 salsa, like the boxhead, the Idea was we want to know how was setup other than the boxhead and how the mouth was setup, cause boxhead seems basic onee
     
  15. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    We do not have a more complicated character for demonstration. We do not include any of the supported OneClick characters because of licensing requirements. There are, however, several free characters available to test with (i.e. DAZ EmotiGuy, iClone Izzy, etc.). You can simply download the model and use the appropriate OneClick on it.

    If you are looking for more information on requirements for setup, please see our documentation on the topic in the General Overview.

    Hope that helps!
    D.
     
  16. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    Hi magique,

    We're looking into this and will get back to you.
     
    magique likes this.
  17. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    I sent you an email, but received a message from your server that made me not sure if it was delivered. Please send your email to assetsupport@crazyminnow.com if you don't receive the email.
     
  18. Zante

    Zante

    Joined:
    Mar 29, 2008
    Posts:
    429
    I'm now trying Salsa with Unity 2018.4.11 f1 with the Fuse one click setup. All is well so far but I've encoutnered a strange glitching on the lip sync for a character, the upper lip vibrates constantly. Any idea of what might be causing it?

    Video below:

     
  19. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    Looks almost like some sort of shader glitches going on. You can see a little bit of texture wonkiness there as well on the upper lip as the head turns, there's a white triangle. Send your invoice number and SALSA Suite version number, OS, etc. along with some details about your setup to the support email and we can dive a bit deeper. Going to need some screenshots of your complete SALSA and EmoteR configs as well.

    Thanks,
    D.
     
  20. Zante

    Zante

    Joined:
    Mar 29, 2008
    Posts:
    429
    Not sure what caused the previous lip glitching but, after re-rigging, it seems to be gone. In this version, I changed the default mouth pose as well - so that may have provided the solution. I'm using an unedited Fuse One Click Setup approach. Video below shows the lip working as expected. Not sure what's up with the lighting but I doubt it's anything to do with your product : ]

     
  21. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    The glitchy normals is a known unity bug, but I believe you can work around it by changing your characters normal or tangent import settings. I can't remember the exact details, but if they're set to import, try calculate, or none.

    Edit: It's this...
    https://issuetracker.unity3d.com/issues/blenshape-normals-are-not-being-imported-correctly

    Michael
     
  22. Zante

    Zante

    Joined:
    Mar 29, 2008
    Posts:
    429
    Thank you Michael! I doubt I'd have found that answer by myself, you've probably saved me a few days of hair pulling. :]

    Is there any disadvantage you can think of when using legacy blend shape normals?
     
  23. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    None that I'm aware of.
     
  24. sacb0y

    sacb0y

    Joined:
    May 9, 2016
    Posts:
    867
    So what if i'm doing purely bone based animation.

    And i'm using my own system for determining facial expressions based on triggers and layering.

    I've had a lot of issues with LipSync conflicting with other animations and causing issues. So i'm considering switching to SALSA.

    Is it possible for the mouth movements to compensate for a facial expression (like a smile) or can I setup animations for the phenomes so i can use animator layering to manage it all?
     
  25. shredingskin

    shredingskin

    Joined:
    Nov 7, 2012
    Posts:
    242
    Has anybody been able to use Salsa with Opsive third person controllers ?
     
  26. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Sure. I have it working right now with Opsive and a CC3 character.
     
    Crazy-Minnow-Studio likes this.
  27. shredingskin

    shredingskin

    Joined:
    Nov 7, 2012
    Posts:
    242
    Just tried again, it works, not sure why I was under the impression it didn't.
     
  28. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    Hi sacb0y,

    If you're trying to manage the same bones with two different animation systems, you will likely run into problems no matter what system you're using. SALSA LipSync Suite is design to provide some options for transitioning between SALSA control and mecanim, and some options for smoothly winding down SALSA control, but ultimately a single resource can only be assigned a single value. SALSA's centralized queue processor manages resource conflicts between our own modules by assigning fix priority. Your can read more about our requirements and prioritization in our documentation. Full character animation management is beyond the scope of SALSA, rather we provide a lip-sync, emotion, head, eye, and eyelid focused piece of the puzzle.

    https://crazyminnowstudio.com/docs/salsa-lip-sync/modules/overview/

    and

    https://crazyminnowstudio.com/docs/...ading/working-with-mecanim-other-influencers/
     
    Last edited: Mar 30, 2020
  29. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    SALSA Suite Online Documentation > Further Reading
    Working with Mecanim and Other External Influencers

    Hello, since we get so many questions about using the SALSA Suite with Mecanim and other external animation influencers, we have published a new article in our online documentation about the topic. As with all of our documentation, we will update and/or expand upon the topic as necessary.

    Please read this article if you:
    • Plan to integrate SALSA Suite together with other animation suites or processes.
    • Are experiencing undesirable effects when using external influencers with SALSA Suite.
    • Are simply interested in how SALSA Suite tries to work with external influencers.
    Hope this helps,
    D.
     
  30. sacb0y

    sacb0y

    Joined:
    May 9, 2016
    Posts:
    867
    Ah very nice article! I think this answers my question!
     
    Crazy-Minnow-Studio likes this.
  31. JeffG

    JeffG

    Joined:
    Oct 21, 2013
    Posts:
    83
    I have this same issue.

    Is Crazy Minnow Studio looking at this issue? or are we on our own?
     
    ina likes this.
  32. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    We evaluate all inquiries. Though the root cause of this type of issue is characters who's bones are not correctly aligned to Unity's left handed coordinate system, our next update should include a new corrective offset for misaligned bones, that will replace the current "Fix Axis" feature that adds corrective hierarchy above misaligned bones. If the reference to the 'Head_FixedAxis' in your quoted text is the issue, then I believe this update will address it.
     
    ina likes this.
  33. JeffG

    JeffG

    Joined:
    Oct 21, 2013
    Posts:
    83
    Perfect.

    Thanks
     
  34. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    SALSA LipSync Suite v2.4.1 has been released on the AssetStore.

    Another small release that adds a couple of new features:
    + A new SALSA event which fires after audio has been analyzed and a trigger selected.
    +The AnimatorController and EventController types have been opened up to the SALSA module and may now be configured in viseme components..

    See the release notes and documentation for more information on this update.

    As always, it is recommended to read the release notes and back up your project if you are updating to this or any other new AssetStore release. If you are starting a fresh project, it is recommended to use the latest version available.

    Thanks and enjoy,
    D.
     
  35. skowronski

    skowronski

    Joined:
    Jan 17, 2018
    Posts:
    28
    Hi,

    I've implemented a very rough VoIP solution for a, in which the microphone input of one player is sent as an uncompressed float-array to another player GameObject that as an AudioSource attached to it. The AudioSource plays the incoming float-data via the OnAudioFilterRead method:

    Code (CSharp):
    1.         void OnAudioFilterRead(float[] data, int channels)
    2.         {
    3.             if (playback)
    4.             {
    5.                 // Check if the playback buffer has enough data to fill up the data array or otherwise use only the available data
    6.                 int dataBufferSize = Mathf.Min(data.Length, playbackBuffer.Count);
    7.                 // Get the data from the playback buffer, override the data array with it and remove it from the buffer
    8.                 float[] dataBuffer = playbackBuffer.GetRange(0, dataBufferSize).ToArray();
    9.                 dataBuffer.CopyTo(data, 0);
    10.                 playbackBuffer.RemoveRange(0, dataBufferSize);
    11.                 // Clear not already overwritten data
    12.                 for (int i = dataBufferSize; i < data.Length; i++)
    13.                 {
    14.                     data[i] = 0;
    15.                 }
    16.             }
    17.         }
    Now, I'm trying to integrate SALSA in this solution, but am somehow stuck here. I've set the AudioSource in the SALSA settings, but these gets me nowhere, probably because there is no AudioClip set of which SALSA wants to read. I've also looked at the Dissonance implementation, as I though this could be similar, but there they only manipulate the salsa.analysisValue to achieve lipsyncing?

    Is there any way to feed the incoming voice data directly to SALSA?
     
    arufolo likes this.
  36. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    Hello!
    It will be necessary to analyze it first, then you can send the values to SALSA similarly to the way Dissonance does. What you could do at this point is implement an analysis into your callback implementation that sets the Salsa.analysisValue each time the callback occurs. Which would be very similar to the way Dissonance does it. To do a quick and dirty, grab the max (peak) absolute value of your returned array and send that to the SALSA analysis value. Don't forget to set the option to use external analysis.

    tl,dr;
    SALSA operates independently of the buffer read callback in timing and grabs varying amounts of data depending on sample rate, desired look ahead, channels, etc. While the audio analysis of SALSA can be overridden with a custom analysis block, the data grab cannot. And this is really due to the grab frequency. The Audio system reads the buffer quite frequently, at least 4 times more frequently than SALSA does. The reason we can read the microphone buffer is because it is written to the AudioClip as a fixed circular buffer and there is an API into that buffer so we can control when, where, and how much we grab. The "where" being the most desirable to eliminate lag. For the microphone, we read data immediately from the record-head pointer.

    The conundrum is the myriad of possibilities for implementation. And we obviously cannot support every implementation. One mechanism (the one I have considered over most others) is requiring an API implementation into the implemented audio buffer, in your instance the playbackBuffer, with certain requirements, so we can implement in exact fashion as the microphone-based AudioClip.

    I have been toying with some ideas for implementation, but they are obviously not ready for prime time.

    Hope that helps,
    D.
     
  37. skowronski

    skowronski

    Joined:
    Jan 17, 2018
    Posts:
    28
    Thank you for the quick reply. This lead me to doing it this way:

    Code (CSharp):
    1.         void OnAudioFilterRead(float[] data, int channels)
    2.         {
    3.             if (playback)
    4.             {
    5.                 // Check if the playback buffer has enough data to fill up the data array or otherwise use only the available data
    6.                 int dataBufferSize = Mathf.Min(data.Length, playbackBuffer.Count);
    7.                 // Get the data from the playback buffer, override the data array with it and remove it from the buffer
    8.                 float[] dataBuffer = playbackBuffer.GetRange(0, dataBufferSize).ToArray();
    9.  
    10.                 // grab the peak of the amplitude
    11.                 float max = float.MinValue;
    12.                 for (int i = 0; i < dataBufferSize; i++)
    13.                 {
    14.                     float current = dataBuffer[i];
    15.                     if (current > max)
    16.                         max = current;
    17.                 }
    18.                //save it to be used in an external analysis
    19.                 amplitude = max;
    20.              
    21.                 dataBuffer.CopyTo(data, 0);
    22.                 playbackBuffer.RemoveRange(0, dataBufferSize);
    23.                 // Clear not already overwritten data
    24.                 for (int i = dataBufferSize; i < data.Length; i++)
    25.                 {
    26.                     data[i] = 0;
    27.                 }
    28.             }
    29.         }
    So now, I thought I only need to feed the amplitude as analysis variable to SALSA, which I did following the SalsaDissonanceLink

    Code (CSharp):
    1.     private void LateUpdate()
    2.     {
    3.         _salsa.analysisValue = voiceReceiver.amplitude * amplifyMultipleExperimental;
    4.     }
    However, the analysis value in SALSA remains 0. Did I miss something?
     
    arufolo likes this.
  38. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    OK, looks good except for 2 things:
    1) The amplifyMultipleExperimental. Not sure what you're multiplying your peak value by, but you won't need to modify the peak analysis results. Dissonance does because it uses an averaging technique which reduces the overall dynamics.
    2) It's somewhat of a minor thing, but you are missing the inclusion of the negative peaks. Depending on the audio, you may miss some dynamics this way. This won't affect your numbers drastically, so don't worry about it too much. If you do implement it, I've found that doing a simple calc on the negative values seems to be more performant than calling the System.Math.Abs() (or the Unity version). Something like:
    Code (CSharp):
    1.  
    2. var absCurrent = current < 0 ? current * -1 : current;
    3. if (absCurrent > max)
    4.     max = absCurrent;
    5.  
    If that doesn't net you anything, Debug.Log your amplitude value to make sure it's getting what you believe it should be getting. Also, one more confirmation, did you set SALSA to external analysis? If not, it will overwrite the analysisValue.

    [EDIT] Oh, and process in Update() not LateUpdate() to ensure your value is timely, ahead of SALSA.

    D.
     
    arufolo likes this.
  39. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    Disconnect your AudioSource and you will get the option.
     
    arufolo likes this.
  40. skowronski

    skowronski

    Joined:
    Jan 17, 2018
    Posts:
    28
    That did the trick! Thank you very much! :)
     
    arufolo and Crazy-Minnow-Studio like this.
  41. Nekromantikko

    Nekromantikko

    Joined:
    Aug 22, 2014
    Posts:
    1
    Hi, using multiple visemes with animator controller components seems to break the system. One works just fine, but when more are added, the animation values get weird. I'm using float parameters in the animator, one for each viseme. When more than one are used, it's almost as if the parameter values get reversed as all additional visemes's values seem to be 0 when triggered, 1 when silent, so the character ends up with his mouth wide open most of the time.
     
  42. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    Hello! We will need to see your setup. Please send all of your information, including invoice number, version numbers, and screenshots of your setup to the support email address. We will see if we can get you back on track. Please reference your forum post as well, so we can match you up to your email.

    D.
     
  43. alija09

    alija09

    Joined:
    Dec 11, 2019
    Posts:
    2
    I am using Unity 2019.2.14f1. Want to make a talking avatar so need your support for Text to speech. Please guide me how to integrate TTS if you can. You should give option 1click for TTS in the place of specific audio.

    I have just used 1click Adobe fuse component and it's eyes are looking down. Please suggest where to change to show 70/80% open eye of a 3D character.

    Give support for Naturalfront, TTS and Chatbot unity assets so that it will more useful for us.
     
  44. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    Hi, We've responded to your email. Please don't double post.
    Michael
     
  45. Jakub-Pilar

    Jakub-Pilar

    Joined:
    May 18, 2015
    Posts:
    48
    Hi, is it possible to control (set) eyelid blink speed?
    Thanks,
    Jakub
     
  46. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    Yup, the "Timer" section under Blink Properties controls how frequently a blink occurs. If you want to control the speed of the actual blink, adjust the AnimationTimings ON/OFF under the specific blink ExpressionComponents. Longer times = slower blink animation; shorter times = faster blink animation.

    Hope that helps,
    D.
     
    Jakub-Pilar likes this.
  47. ThrowAwayYyYy

    ThrowAwayYyYy

    Joined:
    Apr 15, 2020
    Posts:
    1
    Hey Crazy-Minnow-Studio!

    I have a very cartoony 2D character and I need him to lip sync to .ogg/.mp3 files that I download from the internet during runtime and play immediately after. Will salsa be able to accomplish this?

    Does Salsa also support streaming audio from url?
     
    Last edited: Apr 15, 2020
  48. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    Hi ThrowAwayYyYy,

    As long as your audio file is in a ready state, is in a format supported by the target platform, and can be played in a standard Unity AudioSource component, then SALSA can analyze it and perform lip-sync approximation. See the requirements section of our documentation for detail about character requirements.
     
  49. Jakub-Pilar

    Jakub-Pilar

    Joined:
    May 18, 2015
    Posts:
    48
    Hi,

    I set up lipsync, eyes and eyelid - everything works fine.

    But when I turn on Head, the eyes are looking down a dont work, eyelids are broken to, but the head is moving correctly randomly. When I click Fix Axis under Head Properties, it deform character - head is fallen down into body.

    Am I doing anything wrong?

    Thanks,
    Jakub
     
  50. Crazy-Minnow-Studio

    Crazy-Minnow-Studio

    Joined:
    Mar 22, 2014
    Posts:
    1,398
    Hi Jakub,
    We are definitely going to need more information about your setup. Please send your details to our support email address, including your invoice number, versions, and more information about your setup, like what model type you are using, any other components in your scene, screenshots of your setup, etc.

    Thanks,
    D.
     
    Jakub-Pilar likes this.