User Tools

Site Tools


dragengine:modules:dragonscript:simpleconversation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
dragengine:modules:dragonscript:simpleconversation [2025/03/13 23:13] dragonlorddragengine:modules:dragonscript:simpleconversation [2025/08/11 12:50] (current) – [snippet] dragonlord
Line 269: Line 269:
 ====== File Format (*.desconvo) ====== ====== File Format (*.desconvo) ======
  
-The simple conversation file format is recognized by the LoadSimpleConversation script class. The file is an XML file with a simple structure to define a simple conversation using XML.+The simple conversation file format is recognized by the LoadSimpleConversation script class. The file is an XML file with a simple structure to define a simple conversation using XML. See [[https://lordofdragons.github.io/dragengine/artifacts/xmlschema/dragengine/latest/simpleConversation.xsd|XML Schema]] for use with editors like VSCode.
  
 <uml> <uml>
Line 449: Line 449:
     * ''noCamera'': Do not change camera.     * ''noCamera'': Do not change camera.
     * ''noCameraNoDelay'': Do not change camera and use 0 second delay for speak.     * ''noCameraNoDelay'': Do not change camera and use 0 second delay for speak.
 +  * ''sound'': Path of sound file to play. This is typically used to play voice audio but can be also used for uttering and mumbling if no voice audio is used. Optional.
 </WRAP>|0..N|-| </WRAP>|0..N|-|
 |a|<WRAP>Short version of ''actor'' tag. Attributes: |a|<WRAP>Short version of ''actor'' tag. Attributes:
   * ''i'': Same as ''id'' attribute of ''actor'' tag. Optional.   * ''i'': Same as ''id'' attribute of ''actor'' tag. Optional.
   * ''m'': Same as ''mode'' attribute of ''actor'' tag. Optional   * ''m'': Same as ''mode'' attribute of ''actor'' tag. Optional
 +  * ''s'': Same as ''sound'' attribute of ''actor'' tag. Optional
 </WRAP>|0..N|-| </WRAP>|0..N|-|
 |gesture|<WRAP>Add gesture to play back. Replaces gestures defined in active actor definition. Attributes: |gesture|<WRAP>Add gesture to play back. Replaces gestures defined in active actor definition. Attributes:
Line 526: Line 528:
   * ''group'': Run regular conversation topic from group ''group''. Otherwise runs simple conversation snippet. Optional.   * ''group'': Run regular conversation topic from group ''group''. Otherwise runs simple conversation snippet. Optional.
   * ''random'': For use with simple conversation only. Select random number in the range from ''0'' to ''random-1''. Then runs snippet with this number appended to the snippet identifier. Hence if the text content is ''snippet identifier|v'' and the randomly chosen number is ''2'' then the snippet to run is ''snippet identifier|v2''. Optional.   * ''random'': For use with simple conversation only. Select random number in the range from ''0'' to ''random-1''. Then runs snippet with this number appended to the snippet identifier. Hence if the text content is ''snippet identifier|v'' and the randomly chosen number is ''2'' then the snippet to run is ''snippet identifier|v2''. Optional.
 +  * ''createSideLane'': Run snippet in a new side lane instead of the current lane. Allowed values: ''true'', ''false''. Optional. Default is ''false''.
 +
 +By default conversation snippet actions are run in place of this tag. The action after the snippet runs once the snippet finished. If the ''createSideLane'' attribute is used with a value of ''true'' the snippet actions are run in a new side lane and the action after the snippet runs next. Snippets in side lanes run in parallel to the main conversation lane. This allows to create complex conversations or cutscenes where mutliple concurrent action happen without needing to properly craft a sequence of actions. Side lanes are like co-routines just that they can not be awaited. Instead they end once their last action is finished. This makes it easy to create a side lane at any time in a conversation, no matter if from inside the main lane or another side lane. Furthermore side lanes have full access to the same conversation playback state as main lanes. This allows to synchronize events between them as you are used to.
 </WRAP>|0..N|-| </WRAP>|0..N|-|
 |music|Switch music using name from content text.|0..N|empty string| |music|Switch music using name from content text.|0..N|empty string|
Line 544: Line 549:
 </WRAP>|0..N|-| </WRAP>|0..N|-|
 |p|Short version of ''pause'' tag.|0..N|-| |p|Short version of ''pause'' tag.|0..N|-|
 +|time|Works similar to ''pause'' tag but instead of adding a relative delay the delay is the difference between the requested absolute time (since the start of the snippet) relative to the already accumulated times/delays. This allows to define actions to be run at absolute times which is useful for cutscenes.|0..N|-|
 |endActorSpeak|End last actor speech line. Required to apply ''pause'' tag to the next tag instead of the speec line.|0..N|-| |endActorSpeak|End last actor speech line. Required to apply ''pause'' tag to the next tag instead of the speec line.|0..N|-|
 |music|Switch music using name from content text.|0..N|empty string| |music|Switch music using name from content text.|0..N|empty string|
dragengine/modules/dragonscript/simpleconversation.1741907626.txt.gz · Last modified: 2025/03/13 23:13 by dragonlord