Forum rules - please read before posting.

faceplate speech and emotion animations stopped working

Hi, I noticed that at some time ago my characters stopped to talk and show emotions with faceplate. U6000.3.7f, AC1.85.5.
I'm using Dialogue expressions to store emotion faceplates and Lipsync for speech.
Faceplate is a skinned mesh renderer.
Here's some pics:
https://imgur.com/a/NmSUFyk

Comments

  • Is Map to Shapeable? checked in the character's Inspector, and linked to the Faceplate's Shapeable component / shape group? Be aware that if there are multiple Shapeable components on the character, it may be linking to the wrong one.

    Are you using tokens to change expression, or only the Action?

  • Sorry, I was not clear. Shapes work properly, but the faceplate doesn't react to emotions nor phonemes.

  • The Lip Sync Texture component only deals with phonemes, but they should be set based on the lip sync settings. What are those?

    You say things were working previously - when was that, and do you know what change was made that caused the difference?

  • I think it was in autumn, I had a few months out of the project and I remembered it starting then, but forgot about it. If I remembered correctly there was some kind of update in AC that had some skinned mesh renderer/mesh renderer change.

  • The change was in v1.82.5, and allows the component to accept all Renderer types as opposed to just Skinned Mesh Renderers.

    You can revert this change by opening LipSyncTexture and replacing:

    public Renderer skinnedMeshRenderer;
    

    with:

    public SkinnedMeshRenderer skinnedMeshRenderer;
    

    And opening LipSyncTextureEditor, and replacing:

    _target.skinnedMeshRenderer = (Renderer) CustomGUILayout.ObjectField <Renderer> ("Renderer:", _target.skinnedMeshRenderer, true, "", "The Renderer to affect");
    

    with:

    _target.skinnedMeshRenderer = (SkinnedMeshRenderer) CustomGUILayout.ObjectField <SkinnedMeshRenderer> ("Renderer:", _target.skinnedMeshRenderer, true, "", "The Renderer to affect");
    
  • No, that wasn't it. :neutral: (

  • This used to work:
    void Update ()
    {
    int expressionID = character.GetExpressionID ();

                if (lastExpressionID != expressionID)
                {
                    Debug.Log("ExpressionLipSync - " + character.name + " : " + expressionID);
                    lastExpressionID = expressionID;
                    Texture2D newTexture = GetExpressionTexture (expressionID);
                    lipSyncTexture.textures[0] = newTexture;
                }
            }
    
            Texture2D GetExpressionTexture (int ID)
            {
                foreach (Expression expression in character.expressions)
                {
                    if (expression.ID == ID)
                    {
                        return (Texture2D)expression.portraitIcon.texture;
                    }
                }
                return null;
        }
    

    the expressionID comes correctly, but the faceplate texture is not changed

  • It was the URP change, I just have to set the _BaseMap for the texture property name. :smile:

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.