KV3 파일 프로필 및 DOTA 2 사용자 정의 사 운 드 제작
본론 으로 들 어가 면 먼저 kv3 파일 을 말씀 드 리 겠 습 니 다.
현재 dota 2 사용자 정의 게임 에서 kv3 파일 에 사용 되 는 부분 은 vmdl, vpcf, vsndevts, 즉 모델, 필터 와 사 운 드 파일 을 포함 하고 custom 도 있 습 니 다.net_tables. txt 도 kv3 파일 을 사용 합 니 다. 더 많은 부분 (예 를 들 어 npc 폴 더 의 것들) 은 kv3 를 사용 할 수 있 습 니까? 저 는 아직 시도 해 본 적 이 없습니다. 해 보 세 요.
1. KV3 의 문법 형식
kv3 는 V 사가 개발 한 특수 데이터 형식 으로 json 과 매우 비슷 합 니 다. 추 가 된 기능 은 바 이 너 리 인 코딩, 버 전 제어 와 데이터 주석 등 입 니 다. 그 밖 에 여러 줄 주석 과 여러 줄 문자열 등 추가 적 인 문법 지원 도 있 습 니 다.
1.1 파일 헤더
KV3 파일 마다 하나의 파일 헤더 가 필요 합 니 다. 표지 인 코딩 과 형식의 guid 가 포함 되 어 있 습 니 다. 대부분의 사람들 에 게 파일 을 만 들 때 이 줄 을 파일 헤더 에 복사 해서 붙 여 넣 는 것 만 기억 하면 됩 니 다.
문법
문법 은 매우 간단 해서 한 파일 로 모든 문 제 를 설명 하기에 충분 하 다.
{
boolValue = false //
intValue = 128 //
doubleValue = 64.000000 //
stringValue = "hello world" //
stringThatIsAResourceReference = resource:"particles/items3_fx/star_emblem.vpcf" // resource flag
multiLineStringValue = """
First line of a multi-line string literal.
Second line of a multi-line string literal.
"""
//
arrayValue =
[
1,
2,
]
// ,
objectValue =
{
n = 5
s = "foo"
}
// Object,
/*
*/
}
1.3 여러 줄 문자열 의 특수 설명
kv3 에 여러 줄 의 문자열 을 쓰 려 면 세 개의 괄호 로 시작 한 다음 에 바로 새 줄 을 시작 해 야 합 니 다. 여러 줄 의 문자열 이 끝 난 후에 새 줄 을 시작 하고 괄호 세 개 를 써 야 합 니 다.이 두 개의 새 줄 은 모두 필수 적 이다.이 여섯 개의 괄호 사이 의 모든 문 자 는 해석 되 지 않 고 직접 읽 힌 다.
2. kv3 사용자 정의 사 운 드
dota 2 의 사용자 정의 음향 효 과 를 사용 하려 면 두 가지 유형의 파일 이 필요 합 니 다. 하 나 는 soundevents 에 있 는 vsndevts kv3 파일 이 고 하 나 는 sounds 폴 더 에 있 는 오디 오 파일 (mp3 와 wav 형식의 음악 파일 은 모두 지원 되 며 다른 유형의 파일 은 테스트 되 지 않 았 습 니 다) 입 니 다.오디 오 파일 은 말 하지 않 고 두 면 됩 니 다. vsndevts 편집 이 완료 되면 오디 오 파일 은 자동 으로 vsnd 파일 로 컴 파일 됩 니 다.여기에 먼저 예시 파일 을 놓 고 다시 자세하게 말 하 자.
{
Rock.ui_startup =
{
type = "dota_update_ui_startup"
vsnd_files =
[
"sounds/ui_startup_01.vsnd",
"sounds/ui_startup_02.vsnd",
]
volume = "1.000000"
weights =
[
"1",
"1",
]
}
}
이렇게 정의 하면 lua 나 js 파일 에서 EmitSound 의 각종 API 를 사용 하여 "Rock. ui startup" 을 사용 하여 sounds 폴 더 에 놓 인 ui 를 재생 할 수 있 습 니 다.startup_01. mp3 혹은 uistartup_02. mp3 입 니 다.
몇 가지 매개 변 수 를 설명 하 십시오. 1. type 소리의 이벤트 유형 입 니 다. 이 사건 은 매우 중요 합 니 다. 현재 가능 한 모든 값 은 다음 과 같 습 니 다.
dota_src1_2d // 2D
dota_src1_3d // 3D
battle_end_countdown //
dota_gamestart_horn //
dota_update_vo_clamped_panning
dota_update_vo_spatial_stereo
dota_update_vo_switch
dota_update_vo_default
dota_update_vo_clamped
dota_update_vo_announcer // voice
dota_update_ganked_music
dota_update_music_3layer
dota_update_battle_music
dota_update_battle_end
dota_update_hero_select
dota_update_default
dota_update_killed
dota_update_smoke
dota_update_smoke_end
dota_update_smoke_end_hero
dota_update_roshan
dota_update_roshan_end
dota_music_respawn
dota_update_countdown
dota_update_opvar_track
dota_music_stinger_stoptracks
dota_ui_start_multi
dota_ui_limit_time
dota_update_ui_startup
dota_update_ui_main
dota_stop_loop_ui
dota_voip
dota_limit_speakers_ui
dota_limit_speakers_inv
dota_limit_speakers_spectui
우 리 는 일반적으로
dota_src1_2d
나 dota_src1_3d
형식의 오디 오 만 사용 하면 된다. 기억 해 야 할 것 은 갑자기 어떻게 정의 해 야 할 지 모 르 면 공식 vsndevts 파일 에서 같은 유형의 파일 을 검색 하고 그대로 베 끼 면 된다 는 것 이다.2. 소리의 속성 정의
//
soundlevel "81.000000"
distance_max "2500.000000" ,3d
spread_radius "6000.000000"
rand_delay_min "1.000000"
rand_delay_max "5.000000"
volume 0-1
volume_fade_in "1.500000"
volume_fade_out "1.500000"
volume_falloff_min "10.000000"
volume_falloff_max "1000.000000"
volume_rand_min "-0.149902"
volume_rand_max "0.149902"
pitch 0-1 ,
pitch_rand_min "-0.010000"
pitch_rand_max "0.010000"
vsnd_files "sounds/vo/announcer/announcer_now_select.vsnd" // , , vsnd
vsnd_files
[
"sounds/vo/announcer/announcer_now_select1.vsnd",
"sounds/vo/announcer/announcer_now_select2.vsnd"
]
weights
[
1,
1
]
// , weights
start_point "2.000000"
end_point "9.000000"
restart_time "41.599998"
stop_at_time "40.000000"
// 、 、
position "[5545.06, 4998.54, 1494]"
//
// ,
limiter_on
0 1
limiter_event_name "ui.spect_pickup_in"
limiter_max "1.000000"
limiter_match_entity "0.000000"
limiter_match_type 0 1
limiter_match_substring "0.000000"
limiter_match_entity "1.000000"
memory_type 0
volume_remap_x1 "0.250000"
volume_remap_x2 "0.500000"
volume_remap_x3 "0.750000"
volume_remap_x4 "1.000000"
volume_remap_y1 "0.250000"
volume_remap_y2 "0.500000"
volume_remap_y3 "0.750000"
volume_remap_y4 "1.000000"
remap_vol_x1 "0.800000"
remap_vol_y1 "0.250000"
remap_vol_x2 "0.900000"
remap_vol_y2 "0.500000"
remap_vol_x3 "1.000000"
remap_vol_y3 "1.000000"
remap_vol_x4 "1.000000"
remap_vol_y4 "1.000000"
volume_move_vol "0.010000"
volume_move_vel "300.000000"
volume_move_filter_vel "1.000000"
pitch_remap_x1 "0.250000"
pitch_remap_x2 "0.500000"
pitch_remap_x3 "0.750000"
pitch_remap_x4 "1.000000"
pitch_remap_y1 "0.250000"
pitch_remap_y2 "0.500000"
pitch_remap_y3 "0.750000"
pitch_remap_y4 "1.000000"
remap_intensity_x1 "0.000000"
remap_intensity_y1 "1.000000"
remap_intensity_x2 "0.200000"
remap_intensity_y2 "1.000000"
remap_intensity_x3 "0.670000"
remap_intensity_y3 "1.000000"
remap_intensity_x4 "1.000000"
remap_intensity_y4 "0.500000"
track "explore2"
random_delay_opvar "laning_01_random_delay_opvar"
use_event_data
laning_master
mixgroup "HeroPick"
mixgroup "Weapons"
mixgroup "Stingers"
mixgroup "Ping"
mixgroup "All"
mixgroup "Ultimates"
mixgroup "Physics"
mixgroup "Ambient"
mixgroup "Creeps"
stops_others 0 or 1
block_name "ui_generic_button_click"
block_time "0.250000"
block_time2 "0.750000"
block_duration "1.500000"
soundevent_01 "ui_menu_fadeout"
soundevent_02 "ui_select_md"
use_01 "1.000000"
use_02 "1.000000"
use_03 "1.000000"
stop_entry_name "random_wheel_spin"
opvar_field_name "dota_random_wheel_speed"
opvar_stack_name "dota_opvars"
opvar_operator_name "opvars"
event_type
0 1 2 3 4
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.