View Issue Details

IDProjectCategoryView StatusLast Update
0005458The Dark ModAnimationpublic26.12.2020 18:26
ReporterGeep Assigned To 
PrioritynormalSeveritynormalReproducibilityalways
Status newResolutionopen 
OSWindowsOS Version10 
Product VersionTDM 2.08 
Summary0005458: Triggered startconversation causes anim glitching
DescriptionIf a Conversation is defined (say between a pair of AI, or a single one), and launched with startconversation, the AIs hard-jump into their animations right away, without any transition from the pre-startconversation animation. Ugly.
Steps To ReproduceTake any AI and give it a conversation, e.g, in the Conversation Editor.:
name = "my_conv_1"
MyAI.Talk(<some spoken sound shader>)
MyAI.RunScript("ConversationLoop")

Create a atdm:target_startconversation entity "startconversation_1", and point it at my_conv_1

In a script file, add:
void ConversationLoop()
{
        sys.wait(0.01); // Some minimal wait needed for audio to still work after 1st time
    sys.trigger($startconversation_1);
}

Arrange for the first triggering to occur to start the endless loop. Every time the conversation is restarted, the Ai will jumpcut.
Additional InformationExperiments to work around this in either the Conversation Editor or script have been fruitless. Things like:
$MyAI.setBlendFrames(ANIMCHANNEL_TORSO,120)
have no discernable effect. Insertions of other animations or various types of waits have not worked.

The example given to reproduce could be implemented in a different way, with a loop in the sound shader. The actual use case is when you have multiple conversations managed by a network of script functions.

The best solution would be if this problem could be quietly fixed in the game engine. However, if not, a new command in the Conversation Editor and/or a script call to a new sys function would be acceptable.
TagsNo tags attached.

Activities

Dragofer

Dragofer

24.12.2020 19:30

developer   ~0013190

Thanks for writing this all down - as a suggestion, I think it'd be good to provide a test FM with everything already setup to show the behaviour and test a fix, since not every dev is familiar enough with DR and mapping to follow these reproduction steps.
Geep

Geep

25.12.2020 16:39

reporter   ~0013195

True enough. The existing test map I'm using for this is way too complex to post as is. Maybe I can create a new one from scratch this coming week.
Geep

Geep

26.12.2020 18:26

reporter   ~0013283

OK, here's a new test map. It follows the above outline, but differs in these particulars -
- I forgot that the conversation command RunScript() doesn't seem to work (sigh), and you have to use ActivateTarget with a callscriptfunction entity instead.
- 2 AIs are shown instead of 1. This is more representative of conversations. The AI types were chosen to be ones whose stock vocal sets included convo_question and convo_answer sound shaders (see wiki Random Conversations). A single conversation is defined, in which the commander on the right asks a question, and the merchant responds... then the animation glitch occurs as startconversation is called again.
- The AIs were put on team 5 to avoid attacking player
glitch_bug.pk4 (6,281 bytes)

Issue History

Date Modified Username Field Change
24.12.2020 18:14 Geep New Issue
24.12.2020 19:30 Dragofer Note Added: 0013190
25.12.2020 16:39 Geep Note Added: 0013195
26.12.2020 18:26 Geep Note Added: 0013283
26.12.2020 18:26 Geep File Added: glitch_bug.pk4