<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:animgraph2:version{0f7898b8-5471-45c4-9867-cd9c46bcfdb5} -->
{
	_class = "CAnimationGraph"
	m_nodeManager = 
	{
		_class = "CAnimNodeManager"
		m_nodes = 
		[
			{
				key = 
				{
					m_id = 15143940
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = " "
					m_vecPosition = [ 608.0, 1184.0 ]
					m_nNodeID = 
					{
						m_id = 15143940
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = ""
					m_size = [ 140.0, 32.0 ]
					m_color = [ 0, 0, 0, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 26625666
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = "05. The timeline & previewing"
					m_vecPosition = [ 224.0, 544.0 ]
					m_nNodeID = 
					{
						m_id = 26625666
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = "The timeline bar which you see right under this main viewport only becomes active while you\'re actively playing (\'previewing\') your animation graph.\n\nTo enter or exit \'Preview Mode\', click the big icon of the blue running stick figure! The Citizen model will start walking.\n\nYou\'ll notice the bar fills up for a while. We\'ll talk about this later."
					m_size = [ 352.0, 512.0 ]
					m_color = [ 61, 101, 57, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 176973187
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = "02. Layout customization"
					m_vecPosition = [ -448.0, 128.0 ]
					m_nNodeID = 
					{
						m_id = 176973187
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = "The default layout is kind of cramped; you can & should customize it by dragging tabs around! I recommend merging \'Main Inputs\' & \'Motors\', and docking \'Bone Merge\' + \'Animation Clips\' to the right half of the console window, at the bottom.\n\nYou can access the list of Tabs/Windows through the \'View\' menu, at the top-left of the window."
					m_size = [ 608.0, 288.0 ]
					m_color = [ 160, 82, 45, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 208798871
				}
				value = 
				{
					_class = "CSequenceAnimNode"
					m_sName = "Unnamed"
					m_vecPosition = [ 224.0, 256.0 ]
					m_nNodeID = 
					{
						m_id = 208798871
					}
					m_networkMode = "ClientPredicted"
					m_sNote = ""
					m_tagSpans = [  ]
					m_sequenceName = "Walk_N"
					m_playbackSpeed = 1.0
					m_bLoop = true
				}
			},
			{
				key = 
				{
					m_id = 344253320
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = "(last update: 2023-08-10)"
					m_vecPosition = [ 1344.0, 1024.0 ]
					m_nNodeID = 
					{
						m_id = 344253320
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = ""
					m_size = [ 352.0, 32.0 ]
					m_color = [ 38, 42, 47, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 563549420
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = "04. Parameters and Tags"
					m_vecPosition = [ -448.0, 768.0 ]
					m_nNodeID = 
					{
						m_id = 563549420
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = "Parameters are various values which are sent to us here by game code (usually the part of it refered to as an \'Animator\'); they have various types and functions which we\'ll look at later.\n\nTags are ways for the graph to communicate back to the game code, and they can also be used for the graph to communicate with itself! We\'ll also be looking at these later."
					m_size = [ 640.0, 288.0 ]
					m_color = [ 69, 104, 37, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 664453932
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = " "
					m_vecPosition = [ -768.0, 448.0 ]
					m_nNodeID = 
					{
						m_id = 664453932
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = ""
					m_size = [ 140.0, 32.0 ]
					m_color = [ 0, 0, 0, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 670203085
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = "01. Welcome to the Animgraph tool!"
					m_vecPosition = [ -448.0, -160.0 ]
					m_nNodeID = 
					{
						m_id = 670203085
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = "This is the first step in a tutorial series I\'m writing up during one of our quarterly \'hack weeks\'.This tool can be quite intimidating, there are a lot of things that aren\'t clear, intuitive, or self-explanatory, and I\'m hoping this will make it easier for you, dear reader, to get into it.\n\nFor this first step, I\'m going to try to get you familiarized with the default interface layout."
					m_size = [ 800.0, 256.0 ]
					m_color = [ 191, 26, 26, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 806219816
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = " "
					m_vecPosition = [ 1824.0, 512.0 ]
					m_nNodeID = 
					{
						m_id = 806219816
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = ""
					m_size = [ 140.0, 32.0 ]
					m_color = [ 0, 0, 0, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 860635980
				}
				value = 
				{
					_class = "CBlendAnimNode"
					m_sName = "Click on me!"
					m_vecPosition = [ 640.0, 352.0 ]
					m_nNodeID = 
					{
						m_id = 860635980
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_children = 
					[
						{
							m_inputConnection = 
							{
								m_nodeID = 
								{
									m_id = 4294967295
								}
								m_outputID = 
								{
									m_id = 4294967295
								}
							}
							m_name = "I\'ve got properties here..."
							m_blendValue = 0.0
						},
						{
							m_inputConnection = 
							{
								m_nodeID = 
								{
									m_id = 4294967295
								}
								m_outputID = 
								{
									m_id = 4294967295
								}
							}
							m_name = "... many properties!"
							m_blendValue = 0.0
						},
					]
					m_blendValueSource = "Parameter"
					m_param = 
					{
						m_id = 4294967295
					}
					m_blendKeyType = "BlendKey_UserValue"
					m_bLockBlendOnReset = false
					m_bSyncCycles = true
					m_bLoop = true
					m_bLockWhenWaning = true
					m_damping = 
					{
						_class = "CAnimInputDamping"
						m_speedFunction = "NoDamping"
						m_fSpeedScale = 1.0
						m_fMinSpeed = 10.0
						m_fMaxTension = 1000.0
						m_fTension = 100.0
						m_fDamping = 5.0
					}
				}
			},
			{
				key = 
				{
					m_id = 861580794
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = "[RIGHT CLICK] TO CREATE NODES"
					m_vecPosition = [ 1024.0, 32.0 ]
					m_nNodeID = 
					{
						m_id = 861580794
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = ""
					m_size = [ 672.0, 32.0 ]
					m_color = [ 127, 1, 166, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 904213587
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = "06. Properties & Node Info"
					m_vecPosition = [ 608.0, -160.0 ]
					m_nNodeID = 
					{
						m_id = 904213587
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = "When you click on nodes, its properties will display on the sidebar. This is your main way of editing a node\'s \'contents\', or so to speak.\n\nIf you do this while in \'Preview Mode\', then you will also see additional information that pertains to the current state of the execution of the node.\n\nThis can be very useful in troubleshooting various problems.\n\nTry looking at the Node Info of the \'Walk_N\' node while previewing the graphs! You\'ll see a lot of numbers!"
					m_size = [ 384.0, 608.0 ]
					m_color = [ 30, 76, 62, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 1093828103
				}
				value = 
				{
					_class = "CRootAnimNode"
					m_sName = "Unnamed"
					m_vecPosition = [ 416.0, 192.0 ]
					m_nNodeID = 
					{
						m_id = 1093828103
					}
					m_networkMode = "ClientPredicted"
					m_sNote = ""
					m_inputConnection = 
					{
						m_nodeID = 
						{
							m_id = 208798871
						}
						m_outputID = 
						{
							m_id = 4294967295
						}
					}
				}
			},
			{
				key = 
				{
					m_id = 1385666712
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = "[SCROLL CLICK + DRAG] TO PAN VIEW"
					m_vecPosition = [ 1024.0, -64.0 ]
					m_nNodeID = 
					{
						m_id = 1385666712
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = ""
					m_size = [ 672.0, 32.0 ]
					m_color = [ 127, 1, 166, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 1420834157
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = "07. Other windows"
					m_vecPosition = [ 608.0, 480.0 ]
					m_nNodeID = 
					{
						m_id = 1420834157
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = "The \'Main Inputs\' & \'Motors\' windows are also useful to look at, but not nearly as often as any of the other ones.\n\nContrary to its name, \'Main Inputs\' are not the main source of inputs; on s&box, we use Parameters first and foremost.\n\nMotors are responsible for taking input from the game code about how a character should be moving. This is useful for NPCs and other AI-driven characters. If a character doesn\'t move, it doesn\'t need a Motor."
					m_size = [ 384.0, 576.0 ]
					m_color = [ 56, 94, 110, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 1498098042
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = "08. Assigning an animgraph to your model"
					m_vecPosition = [ 1024.0, 480.0 ]
					m_nNodeID = 
					{
						m_id = 1498098042
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = "To assign a default animgraph to your model file (.vmdl), open it in ModelDoc, and look at the top-right of the window, in the \'Outliner\'; there\'s a field there for you to put the path to your graph.\n\nWe\'ve also added the ability for you to dynamically define or change the animgraph of a model in gameplay code.\n\nFor example:\n\nViewModelEntity.SetAnimGraph( \"models/first_person/first_person_arms_punching.vanmgrph\" );"
					m_size = [ 672.0, 416.0 ]
					m_color = [ 54, 66, 103, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 1630575273
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = "[SCROLL WHEEL] TO ZOOM IN/OUT"
					m_vecPosition = [ 1024.0, -160.0 ]
					m_nNodeID = 
					{
						m_id = 1630575273
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = ""
					m_size = [ 672.0, 32.0 ]
					m_color = [ 127, 1, 166, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 1700227807
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = "03. Previewing your model"
					m_vecPosition = [ -448.0, 448.0 ]
					m_nNodeID = 
					{
						m_id = 1700227807
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = "In the top left corner, you can see the preview window. This is where you will see the 3D preview of your model.\n\nClick \'[] Empty Model\' to select your model, and load the Citizen character. You should be able to find it by launching a search for \'citizen.vmdl\' — type that in the address bar, then hit ENTER."
					m_size = [ 640.0, 288.0 ]
					m_color = [ 115, 129, 46, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 2024403279
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = " "
					m_vecPosition = [ 576.0, -288.0 ]
					m_nNodeID = 
					{
						m_id = 2024403279
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = ""
					m_size = [ 140.0, 32.0 ]
					m_color = [ 0, 0, 0, 255 ]
				}
			},
			{
				key = 
				{
					m_id = 2100255392
				}
				value = 
				{
					_class = "CCommentAnimNode"
					m_sName = "09. Done!"
					m_vecPosition = [ 1024.0, 992.0 ]
					m_nNodeID = 
					{
						m_id = 2100255392
					}
					m_networkMode = "ServerAuthoritative"
					m_sNote = ""
					m_commentText = "Move on to the next file."
					m_size = [ 288.0, 64.0 ]
					m_color = [ 25, 128, 25, 255 ]
				}
			},
		]
	}
	m_pParameterList = 
	{
		_class = "CAnimParameterList"
		m_Parameters = 
		[
			{
				_class = "CFloatAnimParameter"
				m_name = "this_is_a_float_parameter"
				m_id = 
				{
					m_id = 1520122227
				}
				m_previewButton = "ANIMPARAM_BUTTON_NONE"
				m_bNetwork = true
				m_bUseMostRecentValue = false
				m_bAutoReset = false
				m_bPredicted = false
				m_fDefaultValue = 0.0
				m_fMinValue = 0.0
				m_fMaxValue = 1.0
				m_bInterpolate = false
			},
			{
				_class = "CEnumAnimParameter"
				m_name = "this_is_an_enum_parameter"
				m_id = 
				{
					m_id = 1384973442
				}
				m_previewButton = "ANIMPARAM_BUTTON_NONE"
				m_bNetwork = true
				m_bUseMostRecentValue = false
				m_bAutoReset = false
				m_bPredicted = false
				m_defaultValue = 0
				m_enumOptions = 
				[
					"i_am_an_enum_choice",
					"and_i_am_another",
				]
			},
			{
				_class = "CBoolAnimParameter"
				m_name = "i_am_a_bool"
				m_id = 
				{
					m_id = 285501590
				}
				m_previewButton = "ANIMPARAM_BUTTON_NONE"
				m_bNetwork = true
				m_bUseMostRecentValue = false
				m_bAutoReset = false
				m_bPredicted = false
				m_bDefaultValue = false
			},
		]
	}
	m_pTagManager = 
	{
		_class = "CAnimTagManager"
		m_tags = 
		[
			{
				_class = "CStringAnimTag"
				m_name = "I am an Internal  Tag!"
				m_tagID = 
				{
					m_id = 662867767
				}
			},
			{
				_class = "CStringAnimTag"
				m_name = "I am another Internal Tag!"
				m_tagID = 
				{
					m_id = 1741718684
				}
			},
			{
				_class = "CEventAnimTag"
				m_name = "I am an Audio Tag! Pew pew."
				m_tagID = 
				{
					m_id = 1183508400
				}
			},
			{
				_class = "CEventAnimTag"
				m_name = "I am a Ragdoll tag! *goes limp*"
				m_tagID = 
				{
					m_id = 1174106155
				}
			},
		]
	}
	m_pMovementManager = 
	{
		_class = "CAnimMovementManager"
		m_MotorList = 
		{
			_class = "CAnimMotorList"
			m_motors = [  ]
		}
		m_MovementSettings = 
		{
			_class = "CAnimMovementSettings"
			m_bShouldCalculateSlope = false
		}
	}
	m_pSettingsManager = 
	{
		_class = "CAnimGraphSettingsManager"
		m_settingsGroups = 
		[
			{
				_class = "CAnimGraphGeneralSettings"
				m_iGridSnap = 16
			},
			{
				_class = "CAnimGraphNetworkSettings"
				m_bNetworkingEnabled = true
				m_defaultNetworkMode = "ServerAuthoritative"
			},
		]
	}
	m_pActivityValuesList = 
	{
		_class = "CActivityValueList"
		m_activities = [  ]
	}
	m_previewModels = 
	[
		"",
	]
	m_boneMergeModels = [  ]
	m_cameraSettings = 
	{
		m_flFov = 60.0
		m_sLockBoneName = ""
		m_bLockCamera = false
		m_bViewModelCamera = false
	}
}