Forum rules - please read before posting.

expression not changing face texture if no speech in timeline

I notice that timeline only changes after some speech has changed lipsync texture. I debugged the ExpressionLipSync and it notices the expressionId change, but for some reason "pure" expressions can only be used after speech has done face texture changes first.

Comments

  • Please elaborate more fully - there's not enough detail here of the issue, or the steps involved to create it. Screenshots of the issue will be appreciated

  • Here's videos where speech is on and off: https://mega.nz/folder/o58wAbwJ#mCj3GHzToSlgQmGCiJblOQ

    Faceplate texture is using Player/NPC portrait texture with update and speech is replacing it with lateupdate. As I wrote earlier, the ExpressionLipSync is checking the expressionid in update and reacting to it, but texture doesn't change.

  • edited June 2021

    I need more than this - not just the issue itself, but exact details on how you're achieving it. Clear steps on how to recreate an issue from scratch - or a package that demonstrates the problem - would be ideal.

  • I'm using U2020.3.12, AC1.73.8 . Character's face is a faceplate in front of the actual mesh eyes and brows are blend shapes. Character has several expression portrait textures in Player/NPC and these are controlled by ExpressionLipSync that you provided me in Dec 2020. Then there's lipsync textures that uses lateupdate, so it replaces the expression when speeking. I'm using Synty characters with a faceplate they give away for free.
    When using timeline I have animations, expressions and speech. When using speech before or during expression, I get expressions, but without speech no expression texture change happens, blend shapes work fine.

  • What do you mean by "pure" expressions? How are you setting the expression if not through a Speech track?

    Try using a Speech track with just an expression tag.

  • "Pure" expression is only using expressions with timeline scripts you provided me some time ago. Here:
    https://adventurecreator.org/forum/discussion/10951/expression-invocation-with-timeline-markers#latest

    I'm using it for the expressions only at the moment. It seemed to work well earlier.

  • I mean only in timeline

  • Debug the LipSyncTexture component to check that the SetFrame function is being called both when using speech and not.

    If both LipSyncTexture and your modified ExpressionLipSync scripts are running in LateUpdate, you may need to alter the Execution Order of ExpressionLipSync to ensure that it runs before LipSyncTexture - see here.

    You should still try using a Speech track with just an expression tag.

  • It seems that when using speech the expression id is kept after setting, but with expressionshot the expression id is set, but reset to -1 straight after.

  • How are you determining that? You should be getting a Warning in the Console if the Char script's SetExpression function is run with -1 as its parameter.

    Try to find how -1 is being set, but it may be a by-product of Timeline, which updates the state of objects for the frame that its run. If things are working with Speech tracks, it may be best to rely on those.

  • I put a debug log with expressionid into SetFrame inLipSyncTexture . The flow of SetFrames is constant and the ExpressionShot only manage to set it once and so was overwritten in instant.

    But anyway I already switched to Speech track. It's a shame, the expression track was more convenient to manage expressions.

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Welcome to the official forum for Adventure Creator.