Forum rules - please read before posting.

Face expressions reset in dialogs

So here's my situation.

My main character uses expressions. Six of them. I set the expressions in dialogs by adding a tag ("[expression:happy]" ect) in front of the line.

In the Speech settings I've checked "Treat carriage returns as separate speech lines" and I use this feature heavily.

It works. But something unexpected happens too. The expression is reset to default every time a new speech line is displayed.

So, when I have an action list with a dialog action and this text...

[expression:scared]What was that?
I better check it.

... the character gets scared, says "What was that", then gets back to normal, then says "I better check it".

It works this way:

[expression:scared]What was that?
[expression:normal]I better check it.

And frankly, I'd expected it to work this way:

[expression:scared]What was that?
[expression:scared]I better check it.

I read the manual carefully, but could find any information if the expressions should be reset at every text line or not.

So what's the answer? Are the feelings temporary or permanent? Is it the way it's supposed to be or a bug or something else?

I can work around it, but would it be possible to add a checkbox setting "reset expression every speech line"?

Comments

  • Welcome to the community, @Martin.

    The behaviour of lines separated by carriage returns, and lines separated by individual Actions, should be similar.  I agree that the resetting of expressions should be optional, however - I shall look into this as part of a future release.
  • Thanks!

    It's neither a bug nor something that breaks things. Only something that is a bit unclear and unexpected, so no big deal here.

    The change in settings would be obviously most helpful. Mentioning in the manual that the expressions reset would also be sufficient.

    Either way I'm happy.
  • It's definitely an option that should be present in the Speech Manager.  In the meantime, you can disable the resetting by opening Speech.cs, and removing the line:

    _speaker.ClearExpression ();

    (Around line 126).  That's essentially what such an option would affect.
  • Hello! I'm actually running into this issue as well, so I'm guessing it hasn't made it into an update yet.

    I'm a newbie at diving into the .cs files, but removing the line Chris mentioned did not fix the issue for me. It's 100% possible that I'm missing a step in committing the change in the .cs file (I'm just saving the change and testing the build from within Unity).

    Obviously not a game-breaker, but would be great to find a fix for this one. Thanks!
  • @tdcpresents: It isn't a bug, but is now optional.  Uncheck the Reset character expression with each line? field in the Speech Manager to prevent this.
  • Aha! Thank you so much! This fixes the issue with portraits changing back to their default state during exit transitions. Though now I'm having the issue of the last-viewed character portrait being saved as the new "default" unless there is a tag in the line of dialogue to change it manually.

    For example if a dialogue event plays where my character ends on a thinking portrait, and there is no [expression:Name] tag set for the next interaction, the character will begin with a thinking portrait instead of the default portrait.

    It also seems to be ignoring the "switch portrait" action in the actionlist editor now as well. Is that just a side effect of unchecking the "reset character expression" box?


    • if a dialogue event plays where my character ends on a thinking portrait, and there is no [expression:Name] tag set for the next interaction, the character will begin with a thinking portrait instead of the default portrait.
    What do you mean by 'thinking' portrait?  The 'Default portrait graphic'?  Please show clear screenshots so I can recreate the problem.

    • It also seems to be ignoring the "switch portrait" action in the actionlist editor now as well. Is that just a side effect of unchecking the "reset character expression" box?
    The "Character: Switch portrait" Action only changes the "Default portrait graphic" - not the textures associated with any of the character's expressions.  If you want to manually show the default portrait graphic, use the tag [expression:None].
  • Sure thing! Sorry about that--here's an example of what I meant (and please forgive the awful temp artwork :)

    https://i.imgur.com/U1yo9wO.jpg I added my player character's portraits and expression names to the PC Object, with a default portrait graphic at the top (I also added a "default" portrait to the list so I could call it up with the tag system in-text, which you can see at the bottom of my expression list.)

    Now, upon starting the game, if I have a dialogue event where I don't set an expression tag first the first line of dialogue, the character will display the proper portraits: 
    https://i.imgur.com/9oAincO.jpg (the actionscript)
    https://i.imgur.com/oVtBE5T.jpg (the first line with the default portrait, with no tag set in text)
    https://i.imgur.com/LgHlEh6.jpg  (the second line with the 'thinking' portrait)

    However, if I have an expression tag set for the first line of dialogue in this exchange, but none set for the second, it will not reset the portrait back to default on that second line:
    https://i.imgur.com/hT2CB85.jpg (the actionscript, now with the expression tag in the first event but none set for the second)
    https://i.imgur.com/O8Qn0G0.jpg (the first line with the 'thinking' portrait)
    https://i.imgur.com/9aboepC.jpg (the second line still using the 'thinking' portrait, even though no expression tag was set in the text)

    This will also carry through between different dialogue events. So, here's a script for another hotspot that the player can examine in the same scene: https://i.imgur.com/23kxbqg.jpg

    If I examine this object after the previously-used example (where the character ends on the 'thinking' portrait), then when I examine it, the character will use the 'thinking' portrait: https://i.imgur.com/d7Hq10u.jpg

    However, if the last-seen portrait was something else, it will mirror that expression instead. So if I don't examine anything beforehand, examining this hotspot uses the default portrait: https://i.imgur.com/iDEqPAI.jpg

    Ideally, at least for this instance, it seems like the desired behavior would be to have the game use whatever portrait is set as the default expression in the PC object if there is no expression tag in a text event, rather than continuing to use the last-viewed portrait until it's manually changed via expression tag.
  • edited May 2018
    • However, if I have an expression tag set for the first line of dialogue in this exchange, but none set for the second, it will not reset the portrait back to default on that second line:
    As expected - that's the effect of unchecking Reset character expression with each line?.

    Apologies if I'm misunderstanding your need here, but leaving that line checked causes the character to revert to the "default" portrait with each line.  There's no need for a dedicated "default" expression: until you define an expression in your speech text, or you use [expression:none], then it'll display the Default portrait graphic.

    What's the difference between that behaviour, and what you're looking to do?
  • Aha, I do believe my underlying reason for wanting to turn off the "reset character expression" functionality wasn't properly explained:

    I have the portrait and subtitle elements transition off-screen whenever a character is done speaking, sliding left. When the "reset character expression" box is not checked, character portraits will momentarily snap back to the default portrait during the translation off-screen. I've recorded this behavior and uploaded a video:

    https://www.dropbox.com/s/ee5b6beeavr3ao7/Unity_Record.mp4?dl=0

    You can see here that unchecking the box results in the portrait reverting back momentarily during the transition off-screen, but if I do check it, the portrait transitions off-screen without issue.
  • Right.  I'll attempt a recreation and let you know if I need more info.
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.