SALSA LipSync Suite v2.5.5.142
BugFix Release – Available Now on the AssetStore
A couple more fixes. One corrects an issue introduced in the last release (2.5.5.135) where using a OneClick errored, admonishing us for calling DontDestroyOnLoad from an Editor script. That is now fixed. Another resolves some jittery animation when the Suite is configured with a OneClick and has some conflicting external influences. This should be fixed now and will likely get even more rework in the near future. Basically, if the QueueProcessor ran last in the stack, influence wasn’t being detected properly. As the fates may have it, when using a OneClick, the QP was the first component added which meant the last to run in the stack.
Also added a very slight performance improvement for detecting influence on BoneControllers. Every little bit helps.
EXPECTATIONS:
If you are upgrading an existing project, read the release notes and make a backup of your project before you upgrade SALSA Suite!
If you find bugs or documentation issues, please let us know, we will knock them out as quickly as possible. Please ensure you’ve checked the Release Notes and latest documentation and ensure you have the correct (latest) Add-On/OneClick versions. It is best if you email us (assetsupport@crazyminnow.com), including as much detail as possible, video and/or screenshots, any errors received, versions of everything, and always include your Unity Invoice Number.
It looks like the OneClick approach in newer versions of Salsa don’t work correctly if users choose to place their Salsa install in a non-default folder in their project.
I’ve just updated Salsa from 2.5.4.125 to 2.5.5.142. After doing so, the OneClick for CC3/CC4 works differently in an unexpected way.
Specifically, when I the OneClick, it no longer adds an Audio Source. Instead, I get this message in the console:
It looks like the reason for this is that the OneClick setup process is trying to find an Audio Clip in the project at a very specific path, but it’s not finding it. The code is:
The path it’s trying to use to find OneClickBase.RESOURCE_CLIP is: Assets/Crazy Minnow Studio/Examples/Audio/Promo-male.mp3. However, I don’t put Salsa directly under Assets. I put it into Assets/3rd Party/Crazy Minnow Studio. Because of that, it doesn’t find the clip, and falls back on expecting “External Analyis”.
For now I’ll try keeping Crazy Minnow at Asset root, but this should probably be fixed. (I didn’t have any issues with older versions of Salsa being kept at whatever directory organization I wanted.)
Also, do one clicks really need to unpack prefabs? I’ll explain a workflow that makes me think it doesn’t really need to, but you can correct me.
Let’s say I have an FBX model in my project (Kyle.fbx), and I save it as a prefab (Kyle.prefab). Now I make a Variant of that prefab. (Kyle2 Variant.prefab):
Now I drop Kyle2 Variant into my scene, and use a OneClick on it. It warns me it needs to unpack the prefab first. Okay. What it’s done is change the prefab from being “Kyle2 Variant.prefab” back to being just “Kyle.prefab”.
If I had instead performed the OneClick on Kyle.prefab, it would have unpacked the object to just being Kyle.fbx.
And interestingly, if I has started with Kyle2 Variant, and performed the OneClick twice, it will double unpack it down to being Kyle.fbx. (Keep going one more time and now it’s not even an FBX anymore, just some random gameobjects.)
So what’s going on with this need to unpack prefabs? I could understand if you’re righting with annoying prefab stuff, but even if I’m in Prefab edit mode, it still tells me I need to unpack the prefab first. But given that when it unpacks Kyle2 Variant, it’s still applying salsa to a prefab, it’s not clear to me why it think it needs to unpack things.
The unpacking is annoying in cases where you want to run the OneClick on an existing prefab that might already be in scenes. I get it if it’s really necessary, but is there an example of what goes wrong if you don’t unpack? And if so, why does it seem to work fine to apply to a prefab that was a variant?
Hi, as you discovered, the configuration is altered because it cannot find the demo file. You can edit the RESOURCE_CLIP path to your new path if you like and that will solve your issue. The change to external analysis is a design choice that tries to address custom OneClick creation and official OneClick creations and keep the “one-click” aspect of it all. I have some further changes for the custom OneClick creation that may require changes to the Base again, so I’ll take another look at it. For now, I’d recommend editing your Base file with the new location if you still want to use the audio clip and I’ll try to implement something more friendly to your scenario.
These OneClicks were originally written back in the Unity 2017 days and prefabs weren’t as…“flexible” back then and there really was only an unpack option to work with them in this way. Or rather, it was the easiest and accepted solution to the problem of adding references to the prefab that it knows nothing about. Prefabs are a lot more complex now and perhaps there is another way to do it. I’ll have to look into it a bit more, this is the first we’ve heard about this chain effect happening.
I just did a quick test on a prefab and a variant (in our base dev 2019.LTS project), applying a OneClick without unpacking and it seemed to work just fine without throwing errors. So, off the cuff, it looks like unpacking isn’t necessary now. So, I would say you could remove the prefab check code from the OneClickEditor file and resolve your issue. Of course, this does not apply the prefab changes, you’d need to do that (or create a new prefab/variant) after applying the OneClick. I haven’t tested this beyond that but it looks safe enough from this 10,000 foot view.
One other thing I ran into that you might want to address in a future version of the CC4 OneClicks: It seems that the standard approach of importing CC characters into Unity (Reallusion’s / Soupday’s “CC/iC Unity Tools HDRP” package) will duplicate some SMRs as it’s setting up the characters. Here you can see that it takes the “Female_Brow” SMR, and makes a copy of it, which it names “Female_Brow_Extracted0”. (One of these is the simpler, texture-based brow, while the other is the 3D haircard-based brow. They use different materials, so the importer splits them up.)
Anyway, the OneClick’s AddSmrSearch is looking for ^.*_Brow$, so it doesn’t find the one with _Extracted0 in the name. This seems like an easy fix by updating the regex:
Quick question regarding Slate Cinematic Sequencer (and using Salsa in Edit mode in general):
I’m using Slate for cutscene, and it seems that there doesn’t even need to be a custom clip for doing this with Slate; simply using an Actor Audio Clip is enough. And in Play mode, it works fine. However, I can’t seem to get the lip sync to work in Edit mode, when previewing the cutscene.
Any idea of Salsa works in the editor when playing a cutscene in Edit mode? Or is it play-mode only?
Hi, what is the performance hit when analysing audio clips in real time? Is there an option to analyse in the editor, then export the blendshape animations to clip files? Thanks
Hello, SALSA Suite is very lightweight on processor usage and generates zero GC (per deep profile measurements). As with all things, the rate of processor usage depends on the configuration, platform deployment, etc. Only you can determine the level of ‘performance hit’ you are comfortable with. There is no option to bake animation analysis out-of-the-box; however, you could use third party options (or roll-your-own) to record the animations yourself if you wish. Likely the additional requirements of timing playback and control, etc. would negate any potential gains of letting SALSA Suite do its thing. We would highly recommend profiling your project using the deep option to dig into the Suite’s usage, prior to going down a path that would likely not yield significant gains. Of course ‘significant’ is subjective and only you can determine the actual significance. Profiling SALSA Suite within your project will give you the best insight into SALSA Suite’s performance impact within the scope of your project.
Any Chance of doing a Daz genesis 9 one click converter ? The 8 and 8.1 are so good but I got a lot of genesis 9 assets that would love the same treatment.
It’s been out for a while and no one has said anything…we just assumed it was still working. I didn’t think they changed anything on the morph side since 8.1. I’ll take a peek at it (hopefully) tomorrow.
Some viseme blend shapes seem to just come into existence? ie I don’t export ee blend shape but it’s in there. And it works. - She’s a standard G8 character though so maybe that’s why.
Also made a tutorial on how to export - but I think I got a number of things wrong. ie 8.1 seems to worse than 8? It doesn’t make the all the ee,th visemes etc
OK, I’ve had a chance to look at it and they have definitely changed some things. Purely looking at the fbx (non-bridge) export, there are some mesh name changes and the blendshapes are similar, but a lot are missing. In your video and screenshots, you see the visemes, but not the entire configurations so a lot of the dynamics are lost. It would appear that the bridge exports some default shapes that are not in the fbx export or the standard filter we use to get the 8.1 shapes (doesn’t include all of them). Looks like they’ve changed the prefix naming on some of the shapes as well. It would really be nice if they would exercise some consistency in the model versions. I’m going to be out of the office the rest of the week, so won’t be able to get into this until next week. It’s going to take some research and testing to figure out what they’ve done.