KeyValues2: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(the ASCII sister of DMX)
 
(Source Particle Benchmark's PCF files are also KV2.)
Line 1: Line 1:
'''KeyValues2''' is an ASCII encoding of a [[Datamodel]] object. It is the successor to [[KeyValues]].
'''KeyValues2''' is an ASCII encoding of a Datamodel object. It is the successor to [[KeyValues]].


The unreleased SDK tool '''dmxconvert''' can convert files between KV2 and [[DMX]] encoding.
The SDK tool '''[[Dmxconvert]]''' can convert files between KV2 and [[DMX]] encoding.


== Example ==
== Examples ==


The only KV2 file known to exist publicly is <code>team fortress 2 content.gcf\tf\expressions\player\engineer\phonemes\engineer_phoneme.pre</code>. A truncated version follows:
=== [[Team Fortress 2]] ===
{{tf2|4}} has a single KV2 file at <code>tf2_misc_dir.vpk\tf\expressions\player\engineer\phonemes\engineer_phoneme.pre</code>. A truncated version follows:


<source lang=xml>
<source lang=xml>
Line 53: Line 54:
</source>
</source>


=== Source Particle Benchmark ===
The [https://combineoverwiki.net/wiki/Source_Particle_Benchmark Source Particle Benchmark] tool's [[PCF File Format|PCF]] files are KV2.
<code>ep2\particles\default.pcf</code> follows:
<source lang="xml">
<!-- DMXVersion keyvalues2_v1 -->
"DmeElement"
{
"id" "elementid" "833dbad4-0848-4c77-a49c-5a702a545c55"
"name" "string" "untitled"
"particleSystemDefinitions" "element_array"
[
"DmeParticleSystemDefinition"
{
"id" "elementid" "3535d7f5-7d31-4b97-b772-46fadd300992"
"name" "string" "default"
"material" "string" "effects\\yellowflare.vmt"
"children" "element_array"
[
]
"color" "color" "255 255 255 255"
"operators" "element_array"
[
"DmeParticleOperator"
{
"id" "elementid" "a66571b0-1657-41ad-a160-ba5c3b722835"
"name" "string" "alpha_fade"
"functionName" "string" "alpha_fade"
"operator start fadein" "float" "0"
"operator end fadein" "float" "0"
"operator start fadeout" "float" "0"
"operator end fadeout" "float" "0"
"start_alpha" "float" "1"
"end_alpha" "float" "0"
"start_fade_in_time" "float" "0"
"end_fade_in_time" "float" "0.5"
"start_fade_out_time" "float" "0.5"
"end_fade_out_time" "float" "1"
},
"DmeParticleOperator"
{
"id" "elementid" "1ec8a22e-5e14-45fe-9dab-02ffdd5772c8"
"name" "string" "basic_movement"
"functionName" "string" "basic_movement"
"operator start fadein" "float" "0"
"operator end fadein" "float" "0"
"operator start fadeout" "float" "0"
"operator end fadeout" "float" "0"
"gravity" "vector3" "0 0 0"
"drag" "float" "0"
"max constraint passes" "int" "3"
}
]
"renderers" "element_array"
[
"DmeParticleOperator"
{
"id" "elementid" "e92d1bc3-7c85-41a4-9779-ca71ea83c139"
"name" "string" "render_animated_sprites"
"functionName" "string" "render_animated_sprites"
"operator start fadein" "float" "0"
"operator end fadein" "float" "0"
"operator start fadeout" "float" "0"
"operator end fadeout" "float" "0"
"animation rate" "float" "0.1000000015"
"animation_fit_lifetime" "bool" "0"
"orientation_type" "int" "0"
}
]
"initializers" "element_array"
[
"DmeParticleOperator"
{
"id" "elementid" "7415690d-8459-438c-ae78-8ab6c1320095"
"name" "string" "lifetime_random"
"functionName" "string" "lifetime_random"
"operator start fadein" "float" "0"
"operator end fadein" "float" "0"
"operator start fadeout" "float" "0"
"operator end fadeout" "float" "0"
"lifetime_min" "float" "1"
"lifetime_max" "float" "1"
"lifetime_random_exponent" "float" "1"
},
"DmeParticleOperator"
{
"id" "elementid" "bfe40106-301d-4024-bb24-879162b63418"
"name" "string" "position_within_sphere"
"functionName" "string" "position_within_sphere"
"operator start fadein" "float" "0"
"operator end fadein" "float" "0"
"operator start fadeout" "float" "0"
"operator end fadeout" "float" "0"
"distance_min" "float" "0"
"distance_max" "float" "0"
"control_point_number" "int" "0"
"speed_min" "float" "12"
"speed_max" "float" "32"
"speed_random_exponent" "float" "1"
"speed_in_local_coordinate_system_min" "vector3" "0 0 0"
"speed_in_local_coordinate_system_max" "vector3" "0 0 0"
}
]
"emitters" "element_array"
[
"DmeParticleOperator"
{
"id" "elementid" "9c8b45bf-2644-4c8f-9a37-0873b578aeb7"
"name" "string" "emit_continuously"
"functionName" "string" "emit_continuously"
"operator start fadein" "float" "0"
"operator end fadein" "float" "0"
"operator start fadeout" "float" "0"
"operator end fadeout" "float" "0"
"emission_start_time" "float" "0"
"emission_rate" "float" "100"
"emission_duration" "float" "0"
}
]
"forces" "element_array"
[
]
"constraints" "element_array"
[
]
"preventNameBasedLookup" "bool" "0"
"max_particles" "int" "1000"
"initial_particles" "int" "0"
"bounding_box_control_point" "int" "0"
"bounding_box_min" "vector3" "-10 -10 -10"
"bounding_box_max" "vector3" "10 10 10"
"radius" "float" "5"
"rotation" "float" "0"
"rotation_speed" "float" "0"
"sequence_number" "int" "0"
}
]
}
</source>
[[Category:Glossary]]
[[Category:Glossary]]

Revision as of 02:20, 29 September 2022

KeyValues2 is an ASCII encoding of a Datamodel object. It is the successor to KeyValues.

The SDK tool Dmxconvert can convert files between KV2 and DMX encoding.

Examples

Team Fortress 2

Team Fortress 2 Team Fortress 2 has a single KV2 file at tf2_misc_dir.vpk\tf\expressions\player\engineer\phonemes\engineer_phoneme.pre. A truncated version follows:

<!-- DMXVersion keyvalues2_v1 -->
"DmePresetGroup"
{
	"id" "elementid" "2b77ac04-3f32-46eb-a2a7-80f1d6d9872e"
	"name" "string" "phoneme"
	"readonly" "bool" "0"
	"visible" "bool" "1"
	"presets" "element_array" 
	[
		"DmePreset"
		{
			"id" "elementid" "117e1a71-d867-4857-b404-6651f2cdd68a"
			"name" "string" "p_silence"
			"controlValues" "element_array" 
			[
				"DmeElement"
				{
					"id" "elementid" "7a0ba9b3-5434-43fe-94ed-068ced2351e1"
					"balance" "float" "0.5"
					"midpoint" "float" "0"
					"value" "float" "0"
					"name" "string" "CloseLidUp"
				},
				"DmeElement"
				{
					"id" "elementid" "e707ed99-f2f2-4a9a-844d-fc8f3d1eda36"
					"balance" "float" "0.5"
					"midpoint" "float" "0"
					"value" "float" "0"
					"name" "string" "CloseLidLo"
				},
				"DmeElement"
				{
					"id" "elementid" "ae60ee94-7c9a-494c-be01-eba193e90146"
					"balance" "float" "0.5"
					"midpoint" "float" "0"
					"value" "float" "0"
					"name" "string" "InnerSquint"
				}
			]
		}
	]
}

Source Particle Benchmark

The Source Particle Benchmark tool's PCF files are KV2.

ep2\particles\default.pcf follows:

<!-- DMXVersion keyvalues2_v1 -->
"DmeElement"
{
	"id" "elementid" "833dbad4-0848-4c77-a49c-5a702a545c55"
	"name" "string" "untitled"
	"particleSystemDefinitions" "element_array" 
	[
		"DmeParticleSystemDefinition"
		{
			"id" "elementid" "3535d7f5-7d31-4b97-b772-46fadd300992"
			"name" "string" "default"
			"material" "string" "effects\\yellowflare.vmt"
			"children" "element_array" 
			[
			]
			"color" "color" "255 255 255 255"
			"operators" "element_array" 
			[
				"DmeParticleOperator"
				{
					"id" "elementid" "a66571b0-1657-41ad-a160-ba5c3b722835"
					"name" "string" "alpha_fade"
					"functionName" "string" "alpha_fade"
					"operator start fadein" "float" "0"
					"operator end fadein" "float" "0"
					"operator start fadeout" "float" "0"
					"operator end fadeout" "float" "0"
					"start_alpha" "float" "1"
					"end_alpha" "float" "0"
					"start_fade_in_time" "float" "0"
					"end_fade_in_time" "float" "0.5"
					"start_fade_out_time" "float" "0.5"
					"end_fade_out_time" "float" "1"
				},
				"DmeParticleOperator"
				{
					"id" "elementid" "1ec8a22e-5e14-45fe-9dab-02ffdd5772c8"
					"name" "string" "basic_movement"
					"functionName" "string" "basic_movement"
					"operator start fadein" "float" "0"
					"operator end fadein" "float" "0"
					"operator start fadeout" "float" "0"
					"operator end fadeout" "float" "0"
					"gravity" "vector3" "0 0 0"
					"drag" "float" "0"
					"max constraint passes" "int" "3"
				}
			]
			"renderers" "element_array" 
			[
				"DmeParticleOperator"
				{
					"id" "elementid" "e92d1bc3-7c85-41a4-9779-ca71ea83c139"
					"name" "string" "render_animated_sprites"
					"functionName" "string" "render_animated_sprites"
					"operator start fadein" "float" "0"
					"operator end fadein" "float" "0"
					"operator start fadeout" "float" "0"
					"operator end fadeout" "float" "0"
					"animation rate" "float" "0.1000000015"
					"animation_fit_lifetime" "bool" "0"
					"orientation_type" "int" "0"
				}
			]
			"initializers" "element_array" 
			[
				"DmeParticleOperator"
				{
					"id" "elementid" "7415690d-8459-438c-ae78-8ab6c1320095"
					"name" "string" "lifetime_random"
					"functionName" "string" "lifetime_random"
					"operator start fadein" "float" "0"
					"operator end fadein" "float" "0"
					"operator start fadeout" "float" "0"
					"operator end fadeout" "float" "0"
					"lifetime_min" "float" "1"
					"lifetime_max" "float" "1"
					"lifetime_random_exponent" "float" "1"
				},
				"DmeParticleOperator"
				{
					"id" "elementid" "bfe40106-301d-4024-bb24-879162b63418"
					"name" "string" "position_within_sphere"
					"functionName" "string" "position_within_sphere"
					"operator start fadein" "float" "0"
					"operator end fadein" "float" "0"
					"operator start fadeout" "float" "0"
					"operator end fadeout" "float" "0"
					"distance_min" "float" "0"
					"distance_max" "float" "0"
					"control_point_number" "int" "0"
					"speed_min" "float" "12"
					"speed_max" "float" "32"
					"speed_random_exponent" "float" "1"
					"speed_in_local_coordinate_system_min" "vector3" "0 0 0"
					"speed_in_local_coordinate_system_max" "vector3" "0 0 0"
				}
			]
			"emitters" "element_array" 
			[
				"DmeParticleOperator"
				{
					"id" "elementid" "9c8b45bf-2644-4c8f-9a37-0873b578aeb7"
					"name" "string" "emit_continuously"
					"functionName" "string" "emit_continuously"
					"operator start fadein" "float" "0"
					"operator end fadein" "float" "0"
					"operator start fadeout" "float" "0"
					"operator end fadeout" "float" "0"
					"emission_start_time" "float" "0"
					"emission_rate" "float" "100"
					"emission_duration" "float" "0"
				}
			]
			"forces" "element_array" 
			[
			]
			"constraints" "element_array" 
			[
			]
			"preventNameBasedLookup" "bool" "0"
			"max_particles" "int" "1000"
			"initial_particles" "int" "0"
			"bounding_box_control_point" "int" "0"
			"bounding_box_min" "vector3" "-10 -10 -10"
			"bounding_box_max" "vector3" "10 10 10"
			"radius" "float" "5"
			"rotation" "float" "0"
			"rotation_speed" "float" "0"
			"sequence_number" "int" "0"
		}
	]
}