# Joystick.xml [[Go back to index]](..\..\..\Template_Explorer.html) Asobo\(Generic\)Complex\\Joystick.xml ------------------------------------- Source XML <ModelBehaviors> <!-- Basic Joystick interaction (all or nothing (0, 1 or -1), no in between value) JOYSTICK\_X\_CODE\_LEFT(code): code executed when joystick is orientated left JOYSTICK\_X\_CODE\_RIGHT(code): code executed when joystick is orientated right JOYSTICK\_Y\_CODE\_DOWN(code): code executed when joystick is orientated down JOYSTICK\_Y\_CODE\_UP(code): code executed when joystick is orientated up --> <Template Name = "ASOBO\_GT\_Joystick\_Interaction"> <DefaultTemplateParameters> <JOYSTICK\_LEFT\_SINGLE\_CODE/> <JOYSTICK\_RELEASE\_CODE/> <UPDATE\_FREQUENCY>5</UPDATE\_FREQUENCY> <DOWN\_TIME\_BEFORE\_REPEAT>0.5</DOWN\_TIME\_BEFORE\_REPEAT> <CENTER\_RADIUS>0.0025</CENTER\_RADIUS> <JOYSTICK\_X\_CODE\_LEFT></JOYSTICK\_X\_CODE\_LEFT> <JOYSTICK\_X\_CODE\_RIGHT></JOYSTICK\_X\_CODE\_RIGHT> <JOYSTICK\_Y\_CODE\_DOWN></JOYSTICK\_Y\_CODE\_DOWN> <JOYSTICK\_Y\_CODE\_UP></JOYSTICK\_Y\_CODE\_UP> <VAR\_NAME>XMLVAR\_Interacting\_With\_Joystick\#ID\#</VAR\_NAME> <THRESHOLD\_X\_INPUT>0.03</THRESHOLD\_X\_INPUT> <THRESHOLD\_X\_MOUSE>0.001</THRESHOLD\_X\_MOUSE> <THRESHOLD\_Y\_INPUT>0.03</THRESHOLD\_Y\_INPUT> <THRESHOLD\_Y\_MOUSE>0.001</THRESHOLD\_Y\_MOUSE> </DefaultTemplateParameters> <OverrideTemplateParameters> <THRESHOLD\_X>\#THRESHOLD\_X\_INPUT\# \#THRESHOLD\_X\_MOUSE\# (M:InputType) 1 == ?</THRESHOLD\_X> <THRESHOLD\_Y>\#THRESHOLD\_Y\_INPUT\# \#THRESHOLD\_Y\_MOUSE\# (M:InputType) 1 == ?</THRESHOLD\_Y> </OverrideTemplateParameters> <Update frequency="\#UPDATE\_FREQUENCY\#" InteractionModel="Default"> (I:\#VAR\_NAME\#) if{ (I:\#JOYSTICK\_ID\#Interacting\_With\_X\_Axis) if{ (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) (I:\#JOYSTICK\_ID\#Interacting\_RepeatTime) (E:SIMULATION TIME, seconds) < and if{ (I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) 0 < if{ \#JOYSTICK\_X\_CODE\_LEFT\# } els{ \#JOYSTICK\_X\_CODE\_RIGHT\# } } } els{ (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) (I:\#JOYSTICK\_ID\#Interacting\_RepeatTime) (E:SIMULATION TIME, seconds) < and if{ (I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) 0 < if{ \#JOYSTICK\_Y\_CODE\_DOWN\# } els{ \#JOYSTICK\_Y\_CODE\_UP\# } } } } </Update> <UseTemplate Name="ASOBO\_GT\_MouseRect"> <CALLBACKCODE\_DEFAULT\_IM> (M:Event) 'LeftSingle' scmi 0 == if{ 1 (>I:\#VAR\_NAME\#) (E:SIMULATION TIME, seconds) \#DOWN\_TIME\_BEFORE\_REPEAT\# + (>I:\#JOYSTICK\_ID\#Interacting\_RepeatTime) 1 sp0 \#JOYSTICK\_LEFT\_SINGLE\_CODE\# g1 } els{ (M:Event) 'LeftRelease' scmi 0 == if{ 0 (>I:\#VAR\_NAME\#) 0 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) 0 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) \#JOYSTICK\_RELEASE\_CODE\# } els{ (M:Event) 'LeftDrag' scmi 0 == if{ g1 } } } quit :1 (M:RelativeX) abs (M:RelativeY) abs > (>I:\#JOYSTICK\_ID\#Interacting\_With\_X\_Axis) (M:RelativeX) abs \#CENTER\_RADIUS\# > (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) (M:RelativeY) abs \#CENTER\_RADIUS\# > (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) -1 1 (M:RelativeX) 0 < ? (>I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) -1 1 (M:RelativeY) 0 < ? (>I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) l0 if{ (I:\#JOYSTICK\_ID\#Interacting\_With\_X\_Axis) if{ (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) if{ (I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) 0 < if{ \#JOYSTICK\_X\_CODE\_LEFT\# } els{ \#JOYSTICK\_X\_CODE\_RIGHT\# } } } els{ (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) if{ (I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) 0 < if{ \#JOYSTICK\_Y\_CODE\_DOWN\# } els{ \#JOYSTICK\_Y\_CODE\_UP\# } } } } </CALLBACKCODE\_DEFAULT\_IM> <Condition Valid="NO\_DRAG\_IM\_INTERACTION"> <True> <CALLBACKCODE\_DRAG\_IM>quit</CALLBACKCODE\_DRAG\_IM> <DISABLE\_INTERACTION\_LOCK>True</DISABLE\_INTERACTION\_LOCK> </True> <False> <CALLBACKCODE\_DRAG\_IM> (M:Event) 'LeftSingle' scmi 0 == if{ \#JOYSTICK\_LEFT\_SINGLE\_CODE\# (M:RelativeX) (>O:\_LastX) (M:RelativeY) (>O:\_LastY) 1 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) 1 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) } els{ (M:Event) 'LeftRelease' scmi 0 == if{ \#JOYSTICK\_RELEASE\_CODE\# 0 (>O:\_LastX) 0 (>O:\_LastY) 0 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) 0 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) } els{ (M:Event) 'LeftDrag' scmi 0 == if{ g1 } } } quit :1 (M:RelativeX) (O:\_LastX) - sp0 \#THRESHOLD\_X\# (>O:\_InputThresholdX) l0 (>I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) l0 abs (O:\_InputThresholdX) > if{ l0 (O:\_InputThresholdX) / abs flr sp1 l0 (O:\_InputThresholdX) % abs sp2 :1 (\* for loop \*) l1 0 <= if{ g2 } l1 -- sp1 l0 0 > if{ \#JOYSTICK\_X\_CODE\_RIGHT\# } els{ \#JOYSTICK\_X\_CODE\_LEFT\# } g1 :2 l0 0 > if{ (M:RelativeX) l2 - (>O:\_LastX) } els{ (M:RelativeX) l2 + (>O:\_LastX) } } (M:RelativeY) (O:\_LastY) - sp0 \#THRESHOLD\_Y\# (>O:\_InputThresholdY) l0 (>I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) l0 abs (O:\_InputThresholdY) > if{ l0 (O:\_InputThresholdY) / abs flr sp1 l0 (O:\_InputThresholdY) % abs sp2 :3 (\* for loop \*) l1 0 <= if{ g4 } l1 -- sp1 l0 0 > if{ \#JOYSTICK\_Y\_CODE\_UP\# } els{ \#JOYSTICK\_Y\_CODE\_DOWN\# } g3 :4 l0 0 > if{ (M:RelativeY) l2 - (>O:\_LastY) } els{ (M:RelativeY) l2 + (>O:\_LastY) } } </CALLBACKCODE\_DRAG\_IM> </False> </Condition> <MOUSEFLAGS>LeftAll</MOUSEFLAGS> </UseTemplate> </Template> <Template Name = "ASOBO\_GT\_Joystick"> <Parameters Type="Default"> <ANIM\_NAME\_L\_R>Joystick\_X\_Axis</ANIM\_NAME\_L\_R> <ANIM\_NAME\_DN\_UP>Joystick\_Y\_Axis</ANIM\_NAME\_DN\_UP> <LEFTARROW>LeftArrow</LEFTARROW> <RIGHTARROW>RightArrow</RIGHTARROW> <UPARROW>UpArrow</UPARROW> <DOWNARROW>DownArrow</DOWNARROW> <CENTER\_CURSOR>Hand</CENTER\_CURSOR> <ID>1</ID> <WWISE\_JOYSTICK\_EVENT\_L>generic\_joystick\_L</WWISE\_JOYSTICK\_EVENT\_L> <WWISE\_JOYSTICK\_EVENT\_R>generic\_joystick\_R</WWISE\_JOYSTICK\_EVENT\_R > <WWISE\_JOYSTICK\_EVENT\_UP>generic\_joystick\_UP</WWISE\_JOYSTICK\_EVENT\_UP> <WWISE\_JOYSTICK\_EVENT\_DN>generic\_joystick\_DN</WWISE\_JOYSTICK\_EVENT\_DN> </Parameters> <Parameters Type="Override"> <JOYSTICK\_ID>Joystick\_\#ID\#</JOYSTICK\_ID> </Parameters> <Condition Valid="NO\_ANIMATION"> <False> <UseTemplate Name="ASOBO\_GT\_Anim\_Code"> <ANIM\_CODE>(I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) \* 50 \* 50 +</ANIM\_CODE> <ANIM\_LENGTH>100</ANIM\_LENGTH> <ANIM\_NAME>\#ANIM\_NAME\_L\_R\#</ANIM\_NAME> </UseTemplate> <UseTemplate Name="ASOBO\_GT\_Anim\_Code"> <ANIM\_CODE>(I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) \* 50 \* 50 +</ANIM\_CODE> <ANIM\_LENGTH>100</ANIM\_LENGTH> <ANIM\_NAME>\#ANIM\_NAME\_DN\_UP\#</ANIM\_NAME> </UseTemplate> <UseTemplate Name="ASOBO\_GT\_AnimTriggers\_2SoundEvents"> <ANIM\_NAME>\#ANIM\_NAME\_L\_R\#</ANIM\_NAME> <WWISE\_EVENT\_1>\#WWISE\_JOYSTICK\_EVENT\_L\#</WWISE\_EVENT\_1> <DIRECTION\_1>Both</DIRECTION\_1> <WWISE\_EVENT\_2>\#WWISE\_JOYSTICK\_EVENT\_R\#</WWISE\_EVENT\_2> <DIRECTION\_2>Both</DIRECTION\_2> </UseTemplate> <UseTemplate Name="ASOBO\_GT\_AnimTriggers\_2SoundEvents"> <ANIM\_NAME>\#ANIM\_NAME\_DN\_UP\#</ANIM\_NAME> <WWISE\_EVENT\_1>\#WWISE\_JOYSTICK\_EVENT\_DN\#</WWISE\_EVENT\_1> <DIRECTION\_1>Both</DIRECTION\_1> <WWISE\_EVENT\_2>\#WWISE\_JOYSTICK\_EVENT\_UP\#</WWISE\_EVENT\_2> <DIRECTION\_2>Both</DIRECTION\_2> </UseTemplate> </False> </Condition> <UseTemplate Name="ASOBO\_GT\_Joystick\_Interaction"> </UseTemplate> </Template> <!-- Pan only interaction --> <Template Name = "ASOBO\_GT\_Joystick\_Interaction\_Pan"> <Parameters Type="Default"> <ID>1</ID> <WWISE\_JOYSTICK\_EVENT\_L>generic\_joystick\_L</WWISE\_JOYSTICK\_EVENT\_L> <WWISE\_JOYSTICK\_EVENT\_R>generic\_joystick\_R</WWISE\_JOYSTICK\_EVENT\_R > <WWISE\_JOYSTICK\_EVENT\_UP>generic\_joystick\_UP</WWISE\_JOYSTICK\_EVENT\_UP> <WWISE\_JOYSTICK\_EVENT\_DN>generic\_joystick\_DN</WWISE\_JOYSTICK\_EVENT\_DN> <JOYSTICK\_X\_CODE\_LEFT></JOYSTICK\_X\_CODE\_LEFT> <JOYSTICK\_X\_CODE\_RIGHT></JOYSTICK\_X\_CODE\_RIGHT> <JOYSTICK\_Y\_CODE\_DOWN></JOYSTICK\_Y\_CODE\_DOWN> <JOYSTICK\_Y\_CODE\_UP></JOYSTICK\_Y\_CODE\_UP> <THRESHOLD\_X\_INPUT>0.03</THRESHOLD\_X\_INPUT> <THRESHOLD\_X\_MOUSE>0.001</THRESHOLD\_X\_MOUSE> <THRESHOLD\_Y\_INPUT>0.03</THRESHOLD\_Y\_INPUT> <THRESHOLD\_Y\_MOUSE>0.001</THRESHOLD\_Y\_MOUSE> </Parameters> <UseTemplate Name="ASOBO\_GT\_Joystick"> <NO\_ANIMATION>True</NO\_ANIMATION> <NO\_HIGHLIGHT\_NODE\_ID>True</NO\_HIGHLIGHT\_NODE\_ID> <NO\_DRAG\_IM\_INTERACTION>True</NO\_DRAG\_IM\_INTERACTION> <UPARROW\_DRAG\_IM/> <DOWNARROW\_DRAG\_IM/> <LEFTARROW\_DRAG\_IM/> <RIGHTARROW\_DRAG\_IM/> <CURSOR\_CENTER\_DRAG\_IM/> <CURSOR\_DRAG\_IM>Normal</CURSOR\_DRAG\_IM> </UseTemplate> </Template> <!-- Configurable, add Rotate and Push in addition to pan --> <Template Name = "ASOBO\_GT\_Joystick\_Interaction\_Knob"> <Parameters Type="Default"> <Switch Param="JOYSTICK\_INTERACTION"> <Case Value="PAN\_ONLY"> <ANIM\_HANDLED\_SEPARATELY>True</ANIM\_HANDLED\_SEPARATELY> </Case> <Default> <ANIM\_NAME\_KNOB>Joystick\_Knob</ANIM\_NAME\_KNOB> <ANIM\_NAME\_PUSH>Joystick\_Push</ANIM\_NAME\_PUSH> </Default> </Switch> <ANIM\_NAME\_L\_R>Joystick\_X\_Axis</ANIM\_NAME\_L\_R> <ANIM\_NAME\_DN\_UP>Joystick\_Y\_Axis</ANIM\_NAME\_DN\_UP> <KNOB\_TURN\_SPEED>10</KNOB\_TURN\_SPEED> <ID>1</ID> <WWISE\_JOYSTICK\_EVENT\_L>generic\_joystick\_L</WWISE\_JOYSTICK\_EVENT\_L> <WWISE\_JOYSTICK\_EVENT\_R>generic\_joystick\_R</WWISE\_JOYSTICK\_EVENT\_R > <WWISE\_JOYSTICK\_EVENT\_UP>generic\_joystick\_UP</WWISE\_JOYSTICK\_EVENT\_UP> <WWISE\_JOYSTICK\_EVENT\_DN>generic\_joystick\_DN</WWISE\_JOYSTICK\_EVENT\_DN> <WHEEL\_UP\_CODE/> <WHEEL\_DOWN\_CODE/> <LEFT\_SINGLE\_CODE\_DEFAULT\_IM/> <LEFT\_RELEASE\_CODE\_DEFAULT\_IM/> <LEFT\_SINGLE\_CODE\_DRAG\_IM/> <LEFT\_RELEASE\_CODE\_DRAG\_IM/> <JOYSTICK\_X\_CODE\_LEFT/> <JOYSTICK\_X\_CODE\_RIGHT/> <JOYSTICK\_Y\_CODE\_DOWN/> <JOYSTICK\_Y\_CODE\_UP/> <THRESHOLD\_X\_INPUT>0.03</THRESHOLD\_X\_INPUT> <THRESHOLD\_X\_MOUSE>0.001</THRESHOLD\_X\_MOUSE> <THRESHOLD\_Y\_INPUT>0.03</THRESHOLD\_Y\_INPUT> <THRESHOLD\_Y\_MOUSE>0.001</THRESHOLD\_Y\_MOUSE> <TIMEOUT\_DELAY\_RESET\_AXIS>0.1</TIMEOUT\_DELAY\_RESET\_AXIS> <IM\_DRAG\_ADDITIONAL\_EVENT\_HANDLING/> <USE\_DEFAULT\_ANIMATION>True</USE\_DEFAULT\_ANIMATION> </Parameters> <Parameters Type="Override"> <JOYSTICK\_ID>Joystick\_\#ID\#</JOYSTICK\_ID> </Parameters> <Parameters Type="Override"> <SAVE\_TIME\_LAST\_X\_UPDATE>(E:SIMULATION TIME, seconds) \#TIMEOUT\_DELAY\_RESET\_AXIS\# + (>O:\#JOYSTICK\_ID\#\_X\_NextTimeout)</SAVE\_TIME\_LAST\_X\_UPDATE> <SAVE\_TIME\_LAST\_Y\_UPDATE>(E:SIMULATION TIME, seconds) \#TIMEOUT\_DELAY\_RESET\_AXIS\# + (>O:\#JOYSTICK\_ID\#\_Y\_NextTimeout)</SAVE\_TIME\_LAST\_Y\_UPDATE> </Parameters> <Parameters Type="Default"> <Condition Valid="USE\_DEFAULT\_ANIMATION"> <ANIM\_CODE\_AXIS\_X>(I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) \* 50 \* 50 +</ANIM\_CODE\_AXIS\_X> <ANIM\_CODE\_AXIS\_Y>(I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) \* 50 \* 50 +</ANIM\_CODE\_AXIS\_Y> </Condition> <Switch Param="JOYSTICK\_INTERACTION"> <Case Value="PAN\_ONLY"> <MOUSEFLAGS\_DRAG\_IM>LeftAll+Lock+Unlock</MOUSEFLAGS\_DRAG\_IM> <!-- PREVENT ENTERING DEFAULT STATE (creating ROTATE and PUSH events) --> </Case> <Default> <CLOCKWISE\_CODE>\#WHEEL\_UP\_CODE\#</CLOCKWISE\_CODE> <ANTICLOCKWISE\_CODE>\#WHEEL\_DOWN\_CODE\#</ANTICLOCKWISE\_CODE> <LEFT\_SINGLE\_CODE>\#LEFT\_SINGLE\_CODE\_DEFAULT\_IM\#</LEFT\_SINGLE\_CODE> <LEFT\_RELEASE\_CODE>\#LEFT\_RELEASE\_CODE\_DEFAULT\_IM\#</LEFT\_RELEASE\_CODE> </Default> </Switch> <NO\_PUSH\_PULL\_LOCK>True</NO\_PUSH\_PULL\_LOCK> <PRE\_DRAG\_UPDATE/> <POST\_DRAG\_UPDATE/> </Parameters> <Parameters Type="Override"> <Condition Valid="USE\_PAD\_DRAG\_IM\_LOCK"> <True> <PRE\_DRAG\_UPDATE>\#PRE\_DRAG\_UPDATE\# (O:\_ResetDragTime) (E:SIMULATION TIME, second) < if{ 0 (>O:\_IsLimited) } (E:SIMULATION TIME, second) @DragLockResetTimer + (>O:\_ResetDragTime) (O:\_IsLimited) if{ (M:RelativeX) (>O:\_LastX) (M:RelativeY) (>O:\_LastY) } els{ </PRE\_DRAG\_UPDATE> <POST\_DRAG\_UPDATE>} \#POST\_DRAG\_UPDATE\#</POST\_DRAG\_UPDATE> <LEFT\_SINGLE\_CODE\_DRAG\_IM>\#LEFT\_SINGLE\_CODE\_DRAG\_IM\# 0 (>O:\_IsLimited)</LEFT\_SINGLE\_CODE\_DRAG\_IM> </True> </Condition> </Parameters> <Parameters Type="Default"> <Condition Valid="USE\_DEFAULT\_ANIMATION"> <True> <CODE\_UP>\#JOYSTICK\_Y\_CODE\_UP\# 1 (>I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) \#SAVE\_TIME\_LAST\_Y\_UPDATE\#</CODE\_UP> <CODE\_DN>\#JOYSTICK\_Y\_CODE\_DOWN\# -1 (>I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) \#SAVE\_TIME\_LAST\_Y\_UPDATE\#</CODE\_DN> <CODE\_LEFT>\#JOYSTICK\_X\_CODE\_LEFT\# -1 (>I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) \#SAVE\_TIME\_LAST\_X\_UPDATE\#</CODE\_LEFT> <CODE\_RIGHT>\#JOYSTICK\_X\_CODE\_RIGHT\# 1 (>I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) \#SAVE\_TIME\_LAST\_X\_UPDATE\#</CODE\_RIGHT> <ON\_DOWN\_EVENT> \#LEFT\_SINGLE\_CODE\_DRAG\_IM\# 1 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) 1 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) </ON\_DOWN\_EVENT> <ON\_UP\_EVENT> \#LEFT\_RELEASE\_CODE\_DRAG\_IM\# 0 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) 0 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) </ON\_UP\_EVENT> </True> <False> <CODE\_UP>\#JOYSTICK\_Y\_CODE\_UP\#</CODE\_UP> <CODE\_DN>\#JOYSTICK\_Y\_CODE\_DOWN\#</CODE\_DN> <CODE\_LEFT>\#JOYSTICK\_X\_CODE\_LEFT\#</CODE\_LEFT> <CODE\_RIGHT>\#JOYSTICK\_X\_CODE\_RIGHT\#</CODE\_RIGHT> <ON\_DOWN\_EVENT>\#LEFT\_SINGLE\_CODE\_DRAG\_IM\#</ON\_DOWN\_EVENT> <ON\_UP\_EVENT>\#LEFT\_RELEASE\_CODE\_DRAG\_IM\#</ON\_UP\_EVENT> </False> </Condition> </Parameters> <Condition Valid="USE\_DEFAULT\_ANIMATION"> <UseTemplate Name="ASOBO\_GT\_Update"> <FREQUENCY Process="Int">\#TIMEOUT\_DELAY\_RESET\_AXIS\# 0 > if{ 1 \#TIMEOUT\_DELAY\_RESET\_AXIS\# / } els{ 10 }</FREQUENCY> <UPDATE\_CODE> (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) if{ (E:SIMULATION TIME, seconds) (O:\#JOYSTICK\_ID\#\_X\_NextTimeout) > if{ \#SAVE\_TIME\_LAST\_X\_UPDATE\# 0 (>I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) } } (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) if{ (E:SIMULATION TIME, seconds) (O:\#JOYSTICK\_ID\#\_Y\_NextTimeout) > if{ \#SAVE\_TIME\_LAST\_Y\_UPDATE\# 0 (>I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) } } </UPDATE\_CODE> <INTERACTION\_MODEL>Drag</INTERACTION\_MODEL> </UseTemplate> </Condition> <UseTemplate Name="ASOBO\_GT\_Knob\_Infinite\_Push"> <CURSOR\_LEFT>TurnLeft</CURSOR\_LEFT> <CURSOR\_RIGHT>TurnRight</CURSOR\_RIGHT> <CENTER\_CURSOR>Hand</CENTER\_CURSOR> </UseTemplate> <UseTemplate Name="ASOBO\_GT\_Anim\_Code"> <ANIM\_CODE>\#ANIM\_CODE\_AXIS\_X\#</ANIM\_CODE> <ANIM\_LENGTH>100</ANIM\_LENGTH> <ANIM\_NAME>\#ANIM\_NAME\_L\_R\#</ANIM\_NAME> <Condition Valid="INVERT\_ANIM\_L\_R"> <INVERT\_ANIM>True</INVERT\_ANIM> </Condition> </UseTemplate> <UseTemplate Name="ASOBO\_GT\_Anim\_Code"> <ANIM\_CODE>\#ANIM\_CODE\_AXIS\_Y\#</ANIM\_CODE> <ANIM\_LENGTH>100</ANIM\_LENGTH> <ANIM\_NAME>\#ANIM\_NAME\_DN\_UP\#</ANIM\_NAME> <Condition Valid="INVERT\_ANIM\_DN\_UP"> <INVERT\_ANIM>True</INVERT\_ANIM> </Condition> </UseTemplate> <UseTemplate Name="ASOBO\_GT\_AnimTriggers\_2SoundEvents"> <ANIM\_NAME>\#ANIM\_NAME\_L\_R\#</ANIM\_NAME> <WWISE\_EVENT\_1>\#WWISE\_JOYSTICK\_EVENT\_L\#</WWISE\_EVENT\_1> <DIRECTION\_1>Both</DIRECTION\_1> <WWISE\_EVENT\_2>\#WWISE\_JOYSTICK\_EVENT\_R\#</WWISE\_EVENT\_2> <DIRECTION\_2>Both</DIRECTION\_2> </UseTemplate> <UseTemplate Name="ASOBO\_GT\_AnimTriggers\_2SoundEvents"> <ANIM\_NAME>\#ANIM\_NAME\_DN\_UP\#</ANIM\_NAME> <WWISE\_EVENT\_1>\#WWISE\_JOYSTICK\_EVENT\_DN\#</WWISE\_EVENT\_1> <DIRECTION\_1>Both</DIRECTION\_1> <WWISE\_EVENT\_2>\#WWISE\_JOYSTICK\_EVENT\_UP\#</WWISE\_EVENT\_2> <DIRECTION\_2>Both</DIRECTION\_2> </UseTemplate> </Template> </ModelBehaviors>     ### Templates Template list 1. [ASOBO\_GT\_Joystick\_Interaction](#ASOBO_GT_Joystick_Interaction) 2. [ASOBO\_GT\_Joystick](#ASOBO_GT_Joystick) 3. [ASOBO\_GT\_Joystick\_Interaction\_Pan](#ASOBO_GT_Joystick_Interaction_Pan) 4. [ASOBO\_GT\_Joystick\_Interaction\_Knob](#ASOBO_GT_Joystick_Interaction_Knob) - #### ASOBO\_GT\_Joystick\_Interaction Definition from XML <Template Name="ASOBO\_GT\_Joystick\_Interaction"> <DefaultTemplateParameters> <JOYSTICK\_LEFT\_SINGLE\_CODE/> <JOYSTICK\_RELEASE\_CODE/> <UPDATE\_FREQUENCY>5</UPDATE\_FREQUENCY> <DOWN\_TIME\_BEFORE\_REPEAT>0.5</DOWN\_TIME\_BEFORE\_REPEAT> <CENTER\_RADIUS>0.0025</CENTER\_RADIUS> <JOYSTICK\_X\_CODE\_LEFT/> <JOYSTICK\_X\_CODE\_RIGHT/> <JOYSTICK\_Y\_CODE\_DOWN/> <JOYSTICK\_Y\_CODE\_UP/> <VAR\_NAME>XMLVAR\_Interacting\_With\_Joystick\#ID\#</VAR\_NAME> <THRESHOLD\_X\_INPUT>0.03</THRESHOLD\_X\_INPUT> <THRESHOLD\_X\_MOUSE>0.001</THRESHOLD\_X\_MOUSE> <THRESHOLD\_Y\_INPUT>0.03</THRESHOLD\_Y\_INPUT> <THRESHOLD\_Y\_MOUSE>0.001</THRESHOLD\_Y\_MOUSE> </DefaultTemplateParameters> <OverrideTemplateParameters> <THRESHOLD\_X>\#THRESHOLD\_X\_INPUT\# \#THRESHOLD\_X\_MOUSE\# (M:InputType) 1 == ?</THRESHOLD\_X> <THRESHOLD\_Y>\#THRESHOLD\_Y\_INPUT\# \#THRESHOLD\_Y\_MOUSE\# (M:InputType) 1 == ?</THRESHOLD\_Y> </OverrideTemplateParameters> <Update frequency="\#UPDATE\_FREQUENCY\#" InteractionModel="Default"> (I:\#VAR\_NAME\#) if{ (I:\#JOYSTICK\_ID\#Interacting\_With\_X\_Axis) if{ (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) (I:\#JOYSTICK\_ID\#Interacting\_RepeatTime) (E:SIMULATION TIME, seconds) < and if{ (I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) 0 < if{ \#JOYSTICK\_X\_CODE\_LEFT\# } els{ \#JOYSTICK\_X\_CODE\_RIGHT\# } } } els{ (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) (I:\#JOYSTICK\_ID\#Interacting\_RepeatTime) (E:SIMULATION TIME, seconds) < and if{ (I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) 0 < if{ \#JOYSTICK\_Y\_CODE\_DOWN\# } els{ \#JOYSTICK\_Y\_CODE\_UP\# } } } } </Update> <UseTemplate Name="ASOBO\_GT\_MouseRect"> <CALLBACKCODE\_DEFAULT\_IM> (M:Event) 'LeftSingle' scmi 0 == if{ 1 (>I:\#VAR\_NAME\#) (E:SIMULATION TIME, seconds) \#DOWN\_TIME\_BEFORE\_REPEAT\# + (>I:\#JOYSTICK\_ID\#Interacting\_RepeatTime) 1 sp0 \#JOYSTICK\_LEFT\_SINGLE\_CODE\# g1 } els{ (M:Event) 'LeftRelease' scmi 0 == if{ 0 (>I:\#VAR\_NAME\#) 0 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) 0 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) \#JOYSTICK\_RELEASE\_CODE\# } els{ (M:Event) 'LeftDrag' scmi 0 == if{ g1 } } } quit :1 (M:RelativeX) abs (M:RelativeY) abs > (>I:\#JOYSTICK\_ID\#Interacting\_With\_X\_Axis) (M:RelativeX) abs \#CENTER\_RADIUS\# > (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) (M:RelativeY) abs \#CENTER\_RADIUS\# > (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) -1 1 (M:RelativeX) 0 < ? (>I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) -1 1 (M:RelativeY) 0 < ? (>I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) l0 if{ (I:\#JOYSTICK\_ID\#Interacting\_With\_X\_Axis) if{ (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) if{ (I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) 0 < if{ \#JOYSTICK\_X\_CODE\_LEFT\# } els{ \#JOYSTICK\_X\_CODE\_RIGHT\# } } } els{ (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) if{ (I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) 0 < if{ \#JOYSTICK\_Y\_CODE\_DOWN\# } els{ \#JOYSTICK\_Y\_CODE\_UP\# } } } } </CALLBACKCODE\_DEFAULT\_IM> <Condition Valid="NO\_DRAG\_IM\_INTERACTION"> <True> <CALLBACKCODE\_DRAG\_IM>quit</CALLBACKCODE\_DRAG\_IM> <DISABLE\_INTERACTION\_LOCK>True</DISABLE\_INTERACTION\_LOCK> </True> <False> <CALLBACKCODE\_DRAG\_IM> (M:Event) 'LeftSingle' scmi 0 == if{ \#JOYSTICK\_LEFT\_SINGLE\_CODE\# (M:RelativeX) (>O:\_LastX) (M:RelativeY) (>O:\_LastY) 1 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) 1 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) } els{ (M:Event) 'LeftRelease' scmi 0 == if{ \#JOYSTICK\_RELEASE\_CODE\# 0 (>O:\_LastX) 0 (>O:\_LastY) 0 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) 0 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) } els{ (M:Event) 'LeftDrag' scmi 0 == if{ g1 } } } quit :1 (M:RelativeX) (O:\_LastX) - sp0 \#THRESHOLD\_X\# (>O:\_InputThresholdX) l0 (>I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) l0 abs (O:\_InputThresholdX) > if{ l0 (O:\_InputThresholdX) / abs flr sp1 l0 (O:\_InputThresholdX) % abs sp2 :1 (\* for loop \*) l1 0 <= if{ g2 } l1 -- sp1 l0 0 > if{ \#JOYSTICK\_X\_CODE\_RIGHT\# } els{ \#JOYSTICK\_X\_CODE\_LEFT\# } g1 :2 l0 0 > if{ (M:RelativeX) l2 - (>O:\_LastX) } els{ (M:RelativeX) l2 + (>O:\_LastX) } } (M:RelativeY) (O:\_LastY) - sp0 \#THRESHOLD\_Y\# (>O:\_InputThresholdY) l0 (>I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) l0 abs (O:\_InputThresholdY) > if{ l0 (O:\_InputThresholdY) / abs flr sp1 l0 (O:\_InputThresholdY) % abs sp2 :3 (\* for loop \*) l1 0 <= if{ g4 } l1 -- sp1 l0 0 > if{ \#JOYSTICK\_Y\_CODE\_UP\# } els{ \#JOYSTICK\_Y\_CODE\_DOWN\# } g3 :4 l0 0 > if{ (M:RelativeY) l2 - (>O:\_LastY) } els{ (M:RelativeY) l2 + (>O:\_LastY) } } </CALLBACKCODE\_DRAG\_IM> </False> </Condition> <MOUSEFLAGS>LeftAll</MOUSEFLAGS> </UseTemplate> </Template> Parameters initialization: - Default Parameters set: - JOYSTICK\_LEFT\_SINGLE\_CODE - JOYSTICK\_RELEASE\_CODE - UPDATE\_FREQUENCY - DOWN\_TIME\_BEFORE\_REPEAT - CENTER\_RADIUS - JOYSTICK\_X\_CODE\_LEFT - JOYSTICK\_X\_CODE\_RIGHT - JOYSTICK\_Y\_CODE\_DOWN - JOYSTICK\_Y\_CODE\_UP - VAR\_NAME (using ID) - THRESHOLD\_X\_INPUT - THRESHOLD\_X\_MOUSE - THRESHOLD\_Y\_INPUT - THRESHOLD\_Y\_MOUSE - Override Parameters set: - THRESHOLD\_X (using THRESHOLD\_X\_INPUT, THRESHOLD\_X\_MOUSE) - THRESHOLD\_Y (using THRESHOLD\_Y\_INPUT, THRESHOLD\_Y\_MOUSE) Parameters read: - UPDATE\_FREQUENCY - VAR\_NAME - JOYSTICK\_ID - JOYSTICK\_X\_CODE\_LEFT - JOYSTICK\_X\_CODE\_RIGHT - JOYSTICK\_Y\_CODE\_DOWN - JOYSTICK\_Y\_CODE\_UP   Templates used: - [ASOBO\_GT\_MouseRect](../interactions/#ASOBO_GT_MouseRect) Parameters set: - CALLBACKCODE\_DEFAULT\_IM (using VAR\_NAME, DOWN\_TIME\_BEFORE\_REPEAT, JOYSTICK\_ID, JOYSTICK\_LEFT\_SINGLE\_CODE, JOYSTICK\_RELEASE\_CODE, CENTER\_RADIUS, JOYSTICK\_X\_CODE\_LEFT, JOYSTICK\_X\_CODE\_RIGHT, JOYSTICK\_Y\_CODE\_DOWN, JOYSTICK\_Y\_CODE\_UP) - MOUSEFLAGS Condition: Valid(NO\_DRAG\_IM\_INTERACTION) - Case: True Parameters set: - CALLBACKCODE\_DRAG\_IM - DISABLE\_INTERACTION\_LOCK - Case: False Parameters set: - CALLBACKCODE\_DRAG\_IM (using JOYSTICK\_LEFT\_SINGLE\_CODE, JOYSTICK\_ID, JOYSTICK\_RELEASE\_CODE, THRESHOLD\_X, JOYSTICK\_X\_CODE\_RIGHT, JOYSTICK\_X\_CODE\_LEFT, THRESHOLD\_Y, JOYSTICK\_Y\_CODE\_UP, JOYSTICK\_Y\_CODE\_DOWN) [[Go back to top]](#top) [[Go back to index]](..\..\..\Template_Explorer.html) - #### ASOBO\_GT\_Joystick Definition from XML <Template Name="ASOBO\_GT\_Joystick"> <Parameters Type="Default"> <ANIM\_NAME\_L\_R>Joystick\_X\_Axis</ANIM\_NAME\_L\_R> <ANIM\_NAME\_DN\_UP>Joystick\_Y\_Axis</ANIM\_NAME\_DN\_UP> <LEFTARROW>LeftArrow</LEFTARROW> <RIGHTARROW>RightArrow</RIGHTARROW> <UPARROW>UpArrow</UPARROW> <DOWNARROW>DownArrow</DOWNARROW> <CENTER\_CURSOR>Hand</CENTER\_CURSOR> <ID>1</ID> <WWISE\_JOYSTICK\_EVENT\_L>generic\_joystick\_L</WWISE\_JOYSTICK\_EVENT\_L> <WWISE\_JOYSTICK\_EVENT\_R>generic\_joystick\_R</WWISE\_JOYSTICK\_EVENT\_R> <WWISE\_JOYSTICK\_EVENT\_UP>generic\_joystick\_UP</WWISE\_JOYSTICK\_EVENT\_UP> <WWISE\_JOYSTICK\_EVENT\_DN>generic\_joystick\_DN</WWISE\_JOYSTICK\_EVENT\_DN> </Parameters> <Parameters Type="Override"> <JOYSTICK\_ID>Joystick\_\#ID\#</JOYSTICK\_ID> </Parameters> <Condition Valid="NO\_ANIMATION"> <False> <UseTemplate Name="ASOBO\_GT\_Anim\_Code"> <ANIM\_CODE>(I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) \* 50 \* 50 +</ANIM\_CODE> <ANIM\_LENGTH>100</ANIM\_LENGTH> <ANIM\_NAME>\#ANIM\_NAME\_L\_R\#</ANIM\_NAME> </UseTemplate> <UseTemplate Name="ASOBO\_GT\_Anim\_Code"> <ANIM\_CODE>(I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) \* 50 \* 50 +</ANIM\_CODE> <ANIM\_LENGTH>100</ANIM\_LENGTH> <ANIM\_NAME>\#ANIM\_NAME\_DN\_UP\#</ANIM\_NAME> </UseTemplate> <UseTemplate Name="ASOBO\_GT\_AnimTriggers\_2SoundEvents"> <ANIM\_NAME>\#ANIM\_NAME\_L\_R\#</ANIM\_NAME> <WWISE\_EVENT\_1>\#WWISE\_JOYSTICK\_EVENT\_L\#</WWISE\_EVENT\_1> <DIRECTION\_1>Both</DIRECTION\_1> <WWISE\_EVENT\_2>\#WWISE\_JOYSTICK\_EVENT\_R\#</WWISE\_EVENT\_2> <DIRECTION\_2>Both</DIRECTION\_2> </UseTemplate> <UseTemplate Name="ASOBO\_GT\_AnimTriggers\_2SoundEvents"> <ANIM\_NAME>\#ANIM\_NAME\_DN\_UP\#</ANIM\_NAME> <WWISE\_EVENT\_1>\#WWISE\_JOYSTICK\_EVENT\_DN\#</WWISE\_EVENT\_1> <DIRECTION\_1>Both</DIRECTION\_1> <WWISE\_EVENT\_2>\#WWISE\_JOYSTICK\_EVENT\_UP\#</WWISE\_EVENT\_2> <DIRECTION\_2>Both</DIRECTION\_2> </UseTemplate> </False> </Condition> <UseTemplate Name="ASOBO\_GT\_Joystick\_Interaction"/> </Template> Parameters initialization: - Default Parameters set: - ANIM\_NAME\_L\_R - ANIM\_NAME\_DN\_UP - LEFTARROW - RIGHTARROW - UPARROW - DOWNARROW - CENTER\_CURSOR - ID - WWISE\_JOYSTICK\_EVENT\_L - WWISE\_JOYSTICK\_EVENT\_R - WWISE\_JOYSTICK\_EVENT\_UP - WWISE\_JOYSTICK\_EVENT\_DN - Override Parameters set: - JOYSTICK\_ID (using ID)   Templates used: - [ASOBO\_GT\_Joystick\_Interaction](joystick/#ASOBO_GT_Joystick_Interaction) Condition: Valid(NO\_ANIMATION) - Case: False   Templates used: - [ASOBO\_GT\_Anim\_Code](../animations/#ASOBO_GT_Anim_Code) Parameters set: - ANIM\_CODE (using JOYSTICK\_ID) - ANIM\_LENGTH - ANIM\_NAME (using ANIM\_NAME\_L\_R) - [ASOBO\_GT\_Anim\_Code](../animations/#ASOBO_GT_Anim_Code) Parameters set: - ANIM\_CODE (using JOYSTICK\_ID) - ANIM\_LENGTH - ANIM\_NAME (using ANIM\_NAME\_DN\_UP) - [ASOBO\_GT\_AnimTriggers\_2SoundEvents](../animationtriggers/#ASOBO_GT_AnimTriggers_2SoundEvents) Parameters set: - ANIM\_NAME (using ANIM\_NAME\_L\_R) - WWISE\_EVENT\_1 (using WWISE\_JOYSTICK\_EVENT\_L) - DIRECTION\_1 - WWISE\_EVENT\_2 (using WWISE\_JOYSTICK\_EVENT\_R) - DIRECTION\_2 - [ASOBO\_GT\_AnimTriggers\_2SoundEvents](../animationtriggers/#ASOBO_GT_AnimTriggers_2SoundEvents) Parameters set: - ANIM\_NAME (using ANIM\_NAME\_DN\_UP) - WWISE\_EVENT\_1 (using WWISE\_JOYSTICK\_EVENT\_DN) - DIRECTION\_1 - WWISE\_EVENT\_2 (using WWISE\_JOYSTICK\_EVENT\_UP) - DIRECTION\_2 [[Go back to top]](#top) [[Go back to index]](..\..\..\Template_Explorer.html) - #### ASOBO\_GT\_Joystick\_Interaction\_Pan Definition from XML <Template Name="ASOBO\_GT\_Joystick\_Interaction\_Pan"> <Parameters Type="Default"> <ID>1</ID> <WWISE\_JOYSTICK\_EVENT\_L>generic\_joystick\_L</WWISE\_JOYSTICK\_EVENT\_L> <WWISE\_JOYSTICK\_EVENT\_R>generic\_joystick\_R</WWISE\_JOYSTICK\_EVENT\_R> <WWISE\_JOYSTICK\_EVENT\_UP>generic\_joystick\_UP</WWISE\_JOYSTICK\_EVENT\_UP> <WWISE\_JOYSTICK\_EVENT\_DN>generic\_joystick\_DN</WWISE\_JOYSTICK\_EVENT\_DN> <JOYSTICK\_X\_CODE\_LEFT/> <JOYSTICK\_X\_CODE\_RIGHT/> <JOYSTICK\_Y\_CODE\_DOWN/> <JOYSTICK\_Y\_CODE\_UP/> <THRESHOLD\_X\_INPUT>0.03</THRESHOLD\_X\_INPUT> <THRESHOLD\_X\_MOUSE>0.001</THRESHOLD\_X\_MOUSE> <THRESHOLD\_Y\_INPUT>0.03</THRESHOLD\_Y\_INPUT> <THRESHOLD\_Y\_MOUSE>0.001</THRESHOLD\_Y\_MOUSE> </Parameters> <UseTemplate Name="ASOBO\_GT\_Joystick"> <NO\_ANIMATION>True</NO\_ANIMATION> <NO\_HIGHLIGHT\_NODE\_ID>True</NO\_HIGHLIGHT\_NODE\_ID> <NO\_DRAG\_IM\_INTERACTION>True</NO\_DRAG\_IM\_INTERACTION> <UPARROW\_DRAG\_IM/> <DOWNARROW\_DRAG\_IM/> <LEFTARROW\_DRAG\_IM/> <RIGHTARROW\_DRAG\_IM/> <CURSOR\_CENTER\_DRAG\_IM/> <CURSOR\_DRAG\_IM>Normal</CURSOR\_DRAG\_IM> </UseTemplate> </Template> Parameters initialization: - Default Parameters set: - ID - WWISE\_JOYSTICK\_EVENT\_L - WWISE\_JOYSTICK\_EVENT\_R - WWISE\_JOYSTICK\_EVENT\_UP - WWISE\_JOYSTICK\_EVENT\_DN - JOYSTICK\_X\_CODE\_LEFT - JOYSTICK\_X\_CODE\_RIGHT - JOYSTICK\_Y\_CODE\_DOWN - JOYSTICK\_Y\_CODE\_UP - THRESHOLD\_X\_INPUT - THRESHOLD\_X\_MOUSE - THRESHOLD\_Y\_INPUT - THRESHOLD\_Y\_MOUSE   Templates used: - [ASOBO\_GT\_Joystick](joystick/#ASOBO_GT_Joystick) Parameters set: - NO\_ANIMATION - NO\_HIGHLIGHT\_NODE\_ID - NO\_DRAG\_IM\_INTERACTION - UPARROW\_DRAG\_IM - DOWNARROW\_DRAG\_IM - LEFTARROW\_DRAG\_IM - RIGHTARROW\_DRAG\_IM - CURSOR\_CENTER\_DRAG\_IM - CURSOR\_DRAG\_IM [[Go back to top]](#top) [[Go back to index]](..\..\..\Template_Explorer.html) - #### ASOBO\_GT\_Joystick\_Interaction\_Knob Definition from XML <Template Name="ASOBO\_GT\_Joystick\_Interaction\_Knob"> <Parameters Type="Default"> <Switch Param="JOYSTICK\_INTERACTION"> <Case Value="PAN\_ONLY"> <ANIM\_HANDLED\_SEPARATELY>True</ANIM\_HANDLED\_SEPARATELY> </Case> <Default> <ANIM\_NAME\_KNOB>Joystick\_Knob</ANIM\_NAME\_KNOB> <ANIM\_NAME\_PUSH>Joystick\_Push</ANIM\_NAME\_PUSH> </Default> </Switch> <ANIM\_NAME\_L\_R>Joystick\_X\_Axis</ANIM\_NAME\_L\_R> <ANIM\_NAME\_DN\_UP>Joystick\_Y\_Axis</ANIM\_NAME\_DN\_UP> <KNOB\_TURN\_SPEED>10</KNOB\_TURN\_SPEED> <ID>1</ID> <WWISE\_JOYSTICK\_EVENT\_L>generic\_joystick\_L</WWISE\_JOYSTICK\_EVENT\_L> <WWISE\_JOYSTICK\_EVENT\_R>generic\_joystick\_R</WWISE\_JOYSTICK\_EVENT\_R> <WWISE\_JOYSTICK\_EVENT\_UP>generic\_joystick\_UP</WWISE\_JOYSTICK\_EVENT\_UP> <WWISE\_JOYSTICK\_EVENT\_DN>generic\_joystick\_DN</WWISE\_JOYSTICK\_EVENT\_DN> <WHEEL\_UP\_CODE/> <WHEEL\_DOWN\_CODE/> <LEFT\_SINGLE\_CODE\_DEFAULT\_IM/> <LEFT\_RELEASE\_CODE\_DEFAULT\_IM/> <LEFT\_SINGLE\_CODE\_DRAG\_IM/> <LEFT\_RELEASE\_CODE\_DRAG\_IM/> <JOYSTICK\_X\_CODE\_LEFT/> <JOYSTICK\_X\_CODE\_RIGHT/> <JOYSTICK\_Y\_CODE\_DOWN/> <JOYSTICK\_Y\_CODE\_UP/> <THRESHOLD\_X\_INPUT>0.03</THRESHOLD\_X\_INPUT> <THRESHOLD\_X\_MOUSE>0.001</THRESHOLD\_X\_MOUSE> <THRESHOLD\_Y\_INPUT>0.03</THRESHOLD\_Y\_INPUT> <THRESHOLD\_Y\_MOUSE>0.001</THRESHOLD\_Y\_MOUSE> <TIMEOUT\_DELAY\_RESET\_AXIS>0.1</TIMEOUT\_DELAY\_RESET\_AXIS> <IM\_DRAG\_ADDITIONAL\_EVENT\_HANDLING/> <USE\_DEFAULT\_ANIMATION>True</USE\_DEFAULT\_ANIMATION> </Parameters> <Parameters Type="Override"> <JOYSTICK\_ID>Joystick\_\#ID\#</JOYSTICK\_ID> </Parameters> <Parameters Type="Override"> <SAVE\_TIME\_LAST\_X\_UPDATE>(E:SIMULATION TIME, seconds) \#TIMEOUT\_DELAY\_RESET\_AXIS\# + (>O:\#JOYSTICK\_ID\#\_X\_NextTimeout)</SAVE\_TIME\_LAST\_X\_UPDATE> <SAVE\_TIME\_LAST\_Y\_UPDATE>(E:SIMULATION TIME, seconds) \#TIMEOUT\_DELAY\_RESET\_AXIS\# + (>O:\#JOYSTICK\_ID\#\_Y\_NextTimeout)</SAVE\_TIME\_LAST\_Y\_UPDATE> </Parameters> <Parameters Type="Default"> <Condition Valid="USE\_DEFAULT\_ANIMATION"> <ANIM\_CODE\_AXIS\_X>(I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) \* 50 \* 50 +</ANIM\_CODE\_AXIS\_X> <ANIM\_CODE\_AXIS\_Y>(I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) \* 50 \* 50 +</ANIM\_CODE\_AXIS\_Y> </Condition> <Switch Param="JOYSTICK\_INTERACTION"> <Case Value="PAN\_ONLY"> <MOUSEFLAGS\_DRAG\_IM>LeftAll+Lock+Unlock</MOUSEFLAGS\_DRAG\_IM> </Case> <Default> <CLOCKWISE\_CODE>\#WHEEL\_UP\_CODE\#</CLOCKWISE\_CODE> <ANTICLOCKWISE\_CODE>\#WHEEL\_DOWN\_CODE\#</ANTICLOCKWISE\_CODE> <LEFT\_SINGLE\_CODE>\#LEFT\_SINGLE\_CODE\_DEFAULT\_IM\#</LEFT\_SINGLE\_CODE> <LEFT\_RELEASE\_CODE>\#LEFT\_RELEASE\_CODE\_DEFAULT\_IM\#</LEFT\_RELEASE\_CODE> </Default> </Switch> <NO\_PUSH\_PULL\_LOCK>True</NO\_PUSH\_PULL\_LOCK> <PRE\_DRAG\_UPDATE/> <POST\_DRAG\_UPDATE/> </Parameters> <Parameters Type="Override"> <Condition Valid="USE\_PAD\_DRAG\_IM\_LOCK"> <True> <PRE\_DRAG\_UPDATE>\#PRE\_DRAG\_UPDATE\# (O:\_ResetDragTime) (E:SIMULATION TIME, second) < if{ 0 (>O:\_IsLimited) } (E:SIMULATION TIME, second) @DragLockResetTimer + (>O:\_ResetDragTime) (O:\_IsLimited) if{ (M:RelativeX) (>O:\_LastX) (M:RelativeY) (>O:\_LastY) } els{ </PRE\_DRAG\_UPDATE> <POST\_DRAG\_UPDATE>} \#POST\_DRAG\_UPDATE\#</POST\_DRAG\_UPDATE> <LEFT\_SINGLE\_CODE\_DRAG\_IM>\#LEFT\_SINGLE\_CODE\_DRAG\_IM\# 0 (>O:\_IsLimited)</LEFT\_SINGLE\_CODE\_DRAG\_IM> </True> </Condition> </Parameters> <Parameters Type="Default"> <Condition Valid="USE\_DEFAULT\_ANIMATION"> <True> <CODE\_UP>\#JOYSTICK\_Y\_CODE\_UP\# 1 (>I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) \#SAVE\_TIME\_LAST\_Y\_UPDATE\#</CODE\_UP> <CODE\_DN>\#JOYSTICK\_Y\_CODE\_DOWN\# -1 (>I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) \#SAVE\_TIME\_LAST\_Y\_UPDATE\#</CODE\_DN> <CODE\_LEFT>\#JOYSTICK\_X\_CODE\_LEFT\# -1 (>I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) \#SAVE\_TIME\_LAST\_X\_UPDATE\#</CODE\_LEFT> <CODE\_RIGHT>\#JOYSTICK\_X\_CODE\_RIGHT\# 1 (>I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) \#SAVE\_TIME\_LAST\_X\_UPDATE\#</CODE\_RIGHT> <ON\_DOWN\_EVENT> \#LEFT\_SINGLE\_CODE\_DRAG\_IM\# 1 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) 1 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) </ON\_DOWN\_EVENT> <ON\_UP\_EVENT> \#LEFT\_RELEASE\_CODE\_DRAG\_IM\# 0 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) 0 (>I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) </ON\_UP\_EVENT> </True> <False> <CODE\_UP>\#JOYSTICK\_Y\_CODE\_UP\#</CODE\_UP> <CODE\_DN>\#JOYSTICK\_Y\_CODE\_DOWN\#</CODE\_DN> <CODE\_LEFT>\#JOYSTICK\_X\_CODE\_LEFT\#</CODE\_LEFT> <CODE\_RIGHT>\#JOYSTICK\_X\_CODE\_RIGHT\#</CODE\_RIGHT> <ON\_DOWN\_EVENT>\#LEFT\_SINGLE\_CODE\_DRAG\_IM\#</ON\_DOWN\_EVENT> <ON\_UP\_EVENT>\#LEFT\_RELEASE\_CODE\_DRAG\_IM\#</ON\_UP\_EVENT> </False> </Condition> </Parameters> <Condition Valid="USE\_DEFAULT\_ANIMATION"> <UseTemplate Name="ASOBO\_GT\_Update"> <FREQUENCY Process="Int">\#TIMEOUT\_DELAY\_RESET\_AXIS\# 0 > if{ 1 \#TIMEOUT\_DELAY\_RESET\_AXIS\# / } els{ 10 }</FREQUENCY> <UPDATE\_CODE> (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_X\_Axis) if{ (E:SIMULATION TIME, seconds) (O:\#JOYSTICK\_ID\#\_X\_NextTimeout) > if{ \#SAVE\_TIME\_LAST\_X\_UPDATE\# 0 (>I:\#JOYSTICK\_ID\#\_Panning\_X\_Axis\_Delta) } } (I:\#JOYSTICK\_ID\#\_Can\_Pan\_On\_Y\_Axis) if{ (E:SIMULATION TIME, seconds) (O:\#JOYSTICK\_ID\#\_Y\_NextTimeout) > if{ \#SAVE\_TIME\_LAST\_Y\_UPDATE\# 0 (>I:\#JOYSTICK\_ID\#\_Panning\_Y\_Axis\_Delta) } } </UPDATE\_CODE> <INTERACTION\_MODEL>Drag</INTERACTION\_MODEL> </UseTemplate> </Condition> <UseTemplate Name="ASOBO\_GT\_Knob\_Infinite\_Push"> <CURSOR\_LEFT>TurnLeft</CURSOR\_LEFT> <CURSOR\_RIGHT>TurnRight</CURSOR\_RIGHT> <CENTER\_CURSOR>Hand</CENTER\_CURSOR> </UseTemplate> <UseTemplate Name="ASOBO\_GT\_Anim\_Code"> <ANIM\_CODE>\#ANIM\_CODE\_AXIS\_X\#</ANIM\_CODE> <ANIM\_LENGTH>100</ANIM\_LENGTH> <ANIM\_NAME>\#ANIM\_NAME\_L\_R\#</ANIM\_NAME> <Condition Valid="INVERT\_ANIM\_L\_R"> <INVERT\_ANIM>True</INVERT\_ANIM> </Condition> </UseTemplate> <UseTemplate Name="ASOBO\_GT\_Anim\_Code"> <ANIM\_CODE>\#ANIM\_CODE\_AXIS\_Y\#</ANIM\_CODE> <ANIM\_LENGTH>100</ANIM\_LENGTH> <ANIM\_NAME>\#ANIM\_NAME\_DN\_UP\#</ANIM\_NAME> <Condition Valid="INVERT\_ANIM\_DN\_UP"> <INVERT\_ANIM>True</INVERT\_ANIM> </Condition> </UseTemplate> <UseTemplate Name="ASOBO\_GT\_AnimTriggers\_2SoundEvents"> <ANIM\_NAME>\#ANIM\_NAME\_L\_R\#</ANIM\_NAME> <WWISE\_EVENT\_1>\#WWISE\_JOYSTICK\_EVENT\_L\#</WWISE\_EVENT\_1> <DIRECTION\_1>Both</DIRECTION\_1> <WWISE\_EVENT\_2>\#WWISE\_JOYSTICK\_EVENT\_R\#</WWISE\_EVENT\_2> <DIRECTION\_2>Both</DIRECTION\_2> </UseTemplate> <UseTemplate Name="ASOBO\_GT\_AnimTriggers\_2SoundEvents"> <ANIM\_NAME>\#ANIM\_NAME\_DN\_UP\#</ANIM\_NAME> <WWISE\_EVENT\_1>\#WWISE\_JOYSTICK\_EVENT\_DN\#</WWISE\_EVENT\_1> <DIRECTION\_1>Both</DIRECTION\_1> <WWISE\_EVENT\_2>\#WWISE\_JOYSTICK\_EVENT\_UP\#</WWISE\_EVENT\_2> <DIRECTION\_2>Both</DIRECTION\_2> </UseTemplate> </Template> Parameters initialization: - Default Parameters set: - ANIM\_NAME\_L\_R - ANIM\_NAME\_DN\_UP - KNOB\_TURN\_SPEED - ID - WWISE\_JOYSTICK\_EVENT\_L - WWISE\_JOYSTICK\_EVENT\_R - WWISE\_JOYSTICK\_EVENT\_UP - WWISE\_JOYSTICK\_EVENT\_DN - WHEEL\_UP\_CODE - WHEEL\_DOWN\_CODE - LEFT\_SINGLE\_CODE\_DEFAULT\_IM - LEFT\_RELEASE\_CODE\_DEFAULT\_IM - LEFT\_SINGLE\_CODE\_DRAG\_IM - LEFT\_RELEASE\_CODE\_DRAG\_IM - JOYSTICK\_X\_CODE\_LEFT - JOYSTICK\_X\_CODE\_RIGHT - JOYSTICK\_Y\_CODE\_DOWN - JOYSTICK\_Y\_CODE\_UP - THRESHOLD\_X\_INPUT - THRESHOLD\_X\_MOUSE - THRESHOLD\_Y\_INPUT - THRESHOLD\_Y\_MOUSE - TIMEOUT\_DELAY\_RESET\_AXIS - IM\_DRAG\_ADDITIONAL\_EVENT\_HANDLING - USE\_DEFAULT\_ANIMATION Condition: Switch(JOYSTICK\_INTERACTION) - Case: PAN\_ONLY Parameters set: - ANIM\_HANDLED\_SEPARATELY - Default case: Parameters set: - ANIM\_NAME\_KNOB - ANIM\_NAME\_PUSH - Override Parameters set: - JOYSTICK\_ID (using ID) - Override Parameters set: - SAVE\_TIME\_LAST\_X\_UPDATE (using TIMEOUT\_DELAY\_RESET\_AXIS, JOYSTICK\_ID) - SAVE\_TIME\_LAST\_Y\_UPDATE (using TIMEOUT\_DELAY\_RESET\_AXIS, JOYSTICK\_ID) - Default Parameters set: - NO\_PUSH\_PULL\_LOCK - PRE\_DRAG\_UPDATE - POST\_DRAG\_UPDATE Condition: Valid(USE\_DEFAULT\_ANIMATION) - Case: True Parameters set: - ANIM\_CODE\_AXIS\_X (using JOYSTICK\_ID) - ANIM\_CODE\_AXIS\_Y (using JOYSTICK\_ID) Condition: Switch(JOYSTICK\_INTERACTION) - Case: PAN\_ONLY Parameters set: - MOUSEFLAGS\_DRAG\_IM - Default case: Parameters set: - CLOCKWISE\_CODE (using WHEEL\_UP\_CODE) - ANTICLOCKWISE\_CODE (using WHEEL\_DOWN\_CODE) - LEFT\_SINGLE\_CODE (using LEFT\_SINGLE\_CODE\_DEFAULT\_IM) - LEFT\_RELEASE\_CODE (using LEFT\_RELEASE\_CODE\_DEFAULT\_IM) - Override Condition: Valid(USE\_PAD\_DRAG\_IM\_LOCK) - Case: True Parameters set: - PRE\_DRAG\_UPDATE (using PRE\_DRAG\_UPDATE) - POST\_DRAG\_UPDATE (using POST\_DRAG\_UPDATE) - LEFT\_SINGLE\_CODE\_DRAG\_IM (using LEFT\_SINGLE\_CODE\_DRAG\_IM) - Default Condition: Valid(USE\_DEFAULT\_ANIMATION) - Case: True Parameters set: - CODE\_UP (using JOYSTICK\_Y\_CODE\_UP, JOYSTICK\_ID, SAVE\_TIME\_LAST\_Y\_UPDATE) - CODE\_DN (using JOYSTICK\_Y\_CODE\_DOWN, JOYSTICK\_ID, SAVE\_TIME\_LAST\_Y\_UPDATE) - CODE\_LEFT (using JOYSTICK\_X\_CODE\_LEFT, JOYSTICK\_ID, SAVE\_TIME\_LAST\_X\_UPDATE) - CODE\_RIGHT (using JOYSTICK\_X\_CODE\_RIGHT, JOYSTICK\_ID, SAVE\_TIME\_LAST\_X\_UPDATE) - ON\_DOWN\_EVENT (using LEFT\_SINGLE\_CODE\_DRAG\_IM, JOYSTICK\_ID) - ON\_UP\_EVENT (using LEFT\_RELEASE\_CODE\_DRAG\_IM, JOYSTICK\_ID) - Case: False Parameters set: - CODE\_UP (using JOYSTICK\_Y\_CODE\_UP) - CODE\_DN (using JOYSTICK\_Y\_CODE\_DOWN) - CODE\_LEFT (using JOYSTICK\_X\_CODE\_LEFT) - CODE\_RIGHT (using JOYSTICK\_X\_CODE\_RIGHT) - ON\_DOWN\_EVENT (using LEFT\_SINGLE\_CODE\_DRAG\_IM) - ON\_UP\_EVENT (using LEFT\_RELEASE\_CODE\_DRAG\_IM)   Templates used: - [ASOBO\_GT\_Knob\_Infinite\_Push](knob/#ASOBO_GT_Knob_Infinite_Push) Parameters set: - CURSOR\_LEFT - CURSOR\_RIGHT - CENTER\_CURSOR - [ASOBO\_GT\_Anim\_Code](../animations/#ASOBO_GT_Anim_Code) Parameters set: - ANIM\_CODE (using ANIM\_CODE\_AXIS\_X) - ANIM\_LENGTH - ANIM\_NAME (using ANIM\_NAME\_L\_R) Condition: Valid(INVERT\_ANIM\_L\_R) - Case: True Parameters set: - INVERT\_ANIM - [ASOBO\_GT\_Anim\_Code](../animations/#ASOBO_GT_Anim_Code) Parameters set: - ANIM\_CODE (using ANIM\_CODE\_AXIS\_Y) - ANIM\_LENGTH - ANIM\_NAME (using ANIM\_NAME\_DN\_UP) Condition: Valid(INVERT\_ANIM\_DN\_UP) - Case: True Parameters set: - INVERT\_ANIM - [ASOBO\_GT\_AnimTriggers\_2SoundEvents](../animationtriggers/#ASOBO_GT_AnimTriggers_2SoundEvents) Parameters set: - ANIM\_NAME (using ANIM\_NAME\_L\_R) - WWISE\_EVENT\_1 (using WWISE\_JOYSTICK\_EVENT\_L) - DIRECTION\_1 - WWISE\_EVENT\_2 (using WWISE\_JOYSTICK\_EVENT\_R) - DIRECTION\_2 - [ASOBO\_GT\_AnimTriggers\_2SoundEvents](../animationtriggers/#ASOBO_GT_AnimTriggers_2SoundEvents) Parameters set: - ANIM\_NAME (using ANIM\_NAME\_DN\_UP) - WWISE\_EVENT\_1 (using WWISE\_JOYSTICK\_EVENT\_DN) - DIRECTION\_1 - WWISE\_EVENT\_2 (using WWISE\_JOYSTICK\_EVENT\_UP) - DIRECTION\_2 Condition: Valid(USE\_DEFAULT\_ANIMATION) - Case: True   Templates used: - [ASOBO\_GT\_Update](../updates/#ASOBO_GT_Update) Parameters set: - FREQUENCY (using TIMEOUT\_DELAY\_RESET\_AXIS) - UPDATE\_CODE (using JOYSTICK\_ID, SAVE\_TIME\_LAST\_X\_UPDATE, SAVE\_TIME\_LAST\_Y\_UPDATE) - INTERACTION\_MODEL [[Go back to top]](#top) [[Go back to index]](..\..\..\Template_Explorer.html)