View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0005458 | The Dark Mod | Animation | public | 24.12.2020 18:14 | 26.12.2020 18:26 |
Reporter | Geep | Assigned To | |||
Priority | normal | Severity | normal | Reproducibility | always |
Status | new | Resolution | open | ||
OS | Windows | OS Version | 10 | ||
Product Version | TDM 2.08 | ||||
Summary | 0005458: Triggered startconversation causes anim glitching | ||||
Description | If 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 Reproduce | Take 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 Information | Experiments 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. | ||||
Tags | No tags attached. | ||||
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. | |
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. | |
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 |
|