|
유닛을 새로 추가 하려면 자잘하게 신경쓸 부분이 많습니다. 필수 부분만 뽑아서 설명하겠습니다.
저희가 추가할 유닛을 미리 설명하고 가는게 편할것 같네요.
이름은 포병 사단이고 3개의 모델을 가집니다. 포병 연구를 하면 다음 모델이 나오는 걸로 만들었습니다.
DHR게임 폴더로 들어갔습니다. 유닛을 새로 추가하기 위해 저희가 건드릴 부분은 config폴더, db폴더, gfx폴더입니다.
config폴더는 게임내에서 사용되는 문장들을 모아 둔 폴더입니다. 유닛 이름, 설명등등
db폴더는 게임내 데이터들을 모아둔 폴더입니다. 유닛의 추가, 능력치 설정등을 할 이 모딩의 가장 중요한 폴더입니다.
gfx폴더는 게임 내에서 사용되는 그림, 사진등을 모아둔 폴더입니다.
먼저 유닛의 이름과 설명등을 적기위해 config폴더로 간 뒤 unit_names파일을 엽시다. 여기서 저희가 추가할 유닛의 이름과 설명을 적을 겁니다.
저희가 추가해야 되는 문장은 7부분입니다.
1. 유닛의 이름
2. 유닛의 축약 이름
3. 유닛의 짧은 설명
4. 유닛의 설명
5. 1번째 모델명
6. 2번째 모델명
7. 3번째 모델명
자 문장의 형식을 봅시다.
;로 구문이 나뉘어져 있지요? 맨 끝에는 X가 있고요. 첫번째 ;앞에는 문자열의 이름을 씁니다. 두번째 ; 앞 부터는 이 문자열의 내용을 쓰고요. 두번째 ; 부터는 게임의 언어 설정마다 할당되어 있습니다.
(예를 들어 NAME_XXX;aaa;bbb;ccc;;;;X 이렇게 되어있으면 영문판은 aaa로 프랑스어판은 bbb로 이탈리아어 판은 ccc 로 나옵니다.)
한패 설치시에는 두번째 ; 앞에 한글을 적으면 됩니다. 한패가 없으면 그 위치에 영문으로 적으면 되고요.
;개수는 꼭 맞춰야 합니다. 달라지면 오류가 납니다.
저희가 추가한 문자열의 이름이 MODEL_33_0,1,2로 나와있는데 숫자에 다 의미가 있습니다.
33은 저희가 추가할 포병 사단이 33의 id를 가질 것이라 이렇게 적었습니다.
0은 첫번째 모델, 1은 두번째, 2는 세 번째란 뜻입니다.
모델명을 이렇게 작성하면 모든 국가에게 공통적으로 적용됩니다. 만약 특정한 국가가 특정한 모델명을 가지게 할려면 중간에 국가 테그를 추가하면 됩니다. 미국을 예로 들까요
MODEL_USA_33_0; 105mm 곡사포 ; 105mm artillery ;... ; X
MODEL_USA_33_1; 155mm 곡사포 ; 155mm artillery ;... ; X
이런 식으로요.
다른 유닛들 문장을 보다보면 이 문장이 게임 어디에 활용되는 지 감이 올 겁니다.
이제 유닛을 추가해 봅시다. db폴더로 들어갑니다. unit폴더에서 유닛 추가와 능력치 설정을, tech폴더에서 포병 테크를 수정하여 게임에서 등장하도록 만들겠습니다.
먼저 unit폴더에 들어가서 division_types폴더를 수정하여 유닛을 추가하겠습니다.
여기서부터 설명할게 많아집니다.
유닛을 새로 추가하려면 유닛 타입마다 유닛을 하나씩 할당해야 합니다. 이 유닛 타입이란건 유닛을 담아두는 통 같은 거라고 생각하면 됩니다. 그런데 유닛 타입을 내 마음대로 늘리거나 정할 수 있느냐? 아닙니다. 이미 있는 유닛타입에 할당해야 합니다. 다행히도 dhr제작진들은 모더들을 여분의 유닛 타입을 만들었습니다. 여기다가 새 유닛을 지정하면 됩니다.
아래는 유닛 타입을 종류입니다.
infantry, cavalry, motorized, mechanized, light_armor, armor, garrison, hq, paratrooper, marine,
bergsjaeger, cas, multi_role, interceptor, strategic_bomber, tactical_bomber, naval_bomber,
transport_plane, battleship, light_cruiser, heavy_cruiser, battlecruiser, destroyer, carrier,
submarine, transport, flying_bomb, flying_rocket, militia, escort_carrier, nuclear_submarine,
light_carrier, rocket_interceptor
이미 게임에 사용되고 있는 유닛 타입입니다. 기존 유닛을 변경하는거라면 몰라도 새로 만드는 작업이면 건드리지 마세요.
d_rsv_33, d_rsv_34, d_rsv_35, d_rsv_36, d_rsv_37, d_rsv_38, d_rsv_39, d_rsv_40
dhr제작진들이 여분으로 만들어 둔 유닛입니다. 이 유닛들은 게임에 등장하지 않는다뿐이지 데이터 상으로 이미 존재하는 유닛이기 때문에 빠르게 작업을 할 수 있습니다. (DHR full기준으로 라이트 버전이면 적용이 안되어서 아래와 다를게 없습니다.)
d_01, d_02, d_03, d_04, d_05, d_06, d_07, d_08, d_09, d_10, d_11, d_12, d_13, d_14, d_15, d_16,
d_17, d_18, d_19, d_20, d_21, d_22, d_23, d_24, d_25, d_26, d_27, d_28, d_29, d_30, d_31, d_32,
d_33, d_34, d_35, d_36, d_37, d_38, d_39, d_40, d_41, d_42, d_43, d_44, d_45, d_46, d_47, d_48,
d_49, d_50, d_51, d_52, d_53, d_54, d_55, d_56, d_57, d_58, d_59, d_60, d_61, d_62, d_63, d_64,
d_65, d_66, d_67, d_68, d_69, d_70, d_71, d_72, d_73, d_74, d_75, d_76, d_77, d_78, d_79, d_80,
d_81, d_82, d_83, d_84, d_85, d_86, d_87, d_88, d_89, d_90, d_91, d_92, d_93, d_94, d_95, d_96,
d_97, d_98, d_99
위의 유닛들로는 모자라다! 하는 분들을 위해 만든 여분의 유닛 타입입니다. 위의 것과의 차이는 만들기만 하고 게임에 추가시키는 작업이 하나도 안 되어있습니다. 게임에 추가시켜주는 작업부터 해야 합니다.
만약 이 작업도 하겠다 하시겠다면 주의해야 할게 있습니다. 꼭 저 순서대로 유닛을 추가시켜야 합니다. 예를 들어 01번 부터 추가를 안 하거나 01,02번을 추가했는데 03을 건너뛰고 04번을 추가하거나 하면 오류가 일어납니다.
저희는 d_rsv_33 에다가 포병 사단을 넣겠습니다.
먼저 eyr = {}이 부분에다가 저 내용을 추가합니다. 해군이면 army부분을 navy로, 공군이면 air로 바꾸면 됩니다.
솔직히 무슨 기능인지 잘 모릅니다. 짐작이 몇개 가는데 확실치 않아서요. 그냥 하니까 되더라고요.
그 다음에 d_rsv_33 = {}을 찾아서 이렇게 내용을 추가했습니다.
각 항목의 내용은 다음과 같습니다.
type: 이 유닛의 타입입니다. 위에서 설명한 유닛 타입과는 이름만 같은 다른 개념입니다. 타입에는 아래와 같은 종류가 있습니다.
infantry, cavalry, motorized, mechanized, light_armor, armor, garrison, hq, paratrooper,
marine, bergsjaeger, cas, multi_role, interceptor, strategic_bomber, tactical_bomber,
naval_bomber, transport_plane, battleship, light_cruiser, heavy_cruiser, battlecruiser,
destroyer, carrier, submarine, transport, flying_bomb, flying_rocket, militia, escort_carrier
nuclear_submarine
이중 하나를 고르면 됩니다. 유닛은 여기서 설정된 타입의 성질을 가지게 됩니다. 예를 들어 볼까요. armor타입을 선택했다 합시다. 이 유닛은 기갑 유닛이 될 것입니다. 지상 유닛이 되겠네요. 게임 상에서 이 유닛을 선택하면 기갑 유닛의 초록색 바탕이 나타납니다. 또 보병 유닛과 합동 공격시 제병군 보너스를 받을 것 입니다. (dhr full버전에서는 제병군 보너스가 없어졌다고 하지만 사실 효과가 0%로 바뀐거지 없어진건 아닙니다.) 만약 destroyer으로 선택했으면 해상 유닛이 될테고 보조함이 될겁니다. strategic_bomber를 선택했으면 공중 유닛이 되고 핵 탑재가 가능해집니다. 유닛을 선택했을때 주황색 바탕이 나올겁니다. 만약 flying_rocket을 선택했다? 그러면 공중 유닛이자 자폭 유닛이 될 겁니다.
이렇게 각 유닛의 특별한 성질을 가지게 해주는 기능입니다. 저희는 가장 무난한 infantry를 선택했습니다.
name, short_name, desc, short_desc: 아까 config폴더에서 저희가 정해준 거 있죠? 그거 이름을 여기다 적으면 됩니다.
그런데 사진을 유심히 보면 이상한 점이 보일 겁니다. config폴더에 문자열 이름 적을 땐 NAME_ARTILLERY_DVI로 적고 여기서는 NAME_ARTILLERY_DIV로 적었죠. 이거 실수입니다. 두개의 문자열을 똑같이 적어야 오류가 안 일어납니다.
eyr: 정확이 모르겠습니다. 위에 army = ...에서 13번째에 있죠? 13이라고 적어줍시다. 잘 작동됩니다. 이유는 잘 모르겠지만요.
sprite: 이 유닛의 스프라이트입니다. 보병꺼 그냥 복붙했습니다.
transmute: ai가 이 유닛을 뽑지 못할 때 대신 뽑는 유닛입니다. ai의 관한 설명은 제 예전 글을 참조를....
gfx_prio: 여러 유닛을 합쳤을때 표시될 스프라이트와 단대호. 보병꺼 그냥 복붙했습니다.
value: 이 유닛의 점수. 일부 이벤트 구문에 활용되는데 솔직히 쓸일 거의 없습니다. 보병꺼 그냥 복붙했습니다.
list_prio: 생산창, 기술 개요창에서 보여질 순서. 숫자가 낮을수록 위로 올라갑니다. 보병이 10, 주둔병이 20인데 제가 15로 했으니 생산창에서는 보병과 주둔병 사이에서 보일 겁니다.
이제 divisions_type문서를 끝냈습니다.
이제 modifiers문서에 엽니다. 이 문서는 각종 지형,날씨 상황에서의 능력치 문서입니다.....
사진을 못 찍었네요. 한번 보면 감 오는 쉬운 문서니까 사진 없어도 가능 하실 겁니다.
이제 유닛의 능력치 설정 차례입니다. divisions폴더의 d_rsv_33문서를 열어서 수정합시다.
방공 여단과 기병 여단 부착 가능, 최대 여단 2개 이 부분은 이해 하셨을 테고.
upgrade = {}이 부분은 이 유닛이 주둔병 사단으로 업그레이드 가능이란 의미입니다. dhr에서 기병 사단이 차량화 사단 되고 가능하잖아요? 그 기능 입니다. 나머진 다른 유닛 비교하면서 보면 쉬우니까 패스.
이제 db폴더로 돌아와서 tech로 들어갑시다. armor테크를 조금 수정해서 모델 등장과 업그레이드를 가능하게 해 봅시다.
activate_unit_type: 유닛 활성화
new_model: 새로운 모델
scrap_model: 모델 사용하지 않음
모델은 0부터 셉니다. 1이 아니라.
이제 유닛 사진, 그림을 수정할 차례입니다. gfx폴더로 들어갑시다. interface -> models에서 유닛 사진과 그림, map에서 단대호를 수정합니다.
보병 그림과 포병 사진을 복붙. 그림 이름을 models_(유닛 id 여기에서는 33)_(모델 순서), 사진 이름을 ill_div_(유닛 id 여기에서는 33)_(모델 순서)이렇게 지정해 줍니다.
마지막 단대호 설정입니다. 단대호 지정은 약간의 설명이 필요합니다. 유닛의 단대호를 정할땐 이 단대호 사진에서 유닛 수 만큼 저 사진의 가로 길이를 나누고 id숫자가 작은 유닛이 왼쪽 부터사용하게 됩니다. dhr의 기본 단대호 길이가 1312픽셀, 유닛 수 41개(기존 유닛33개 미리 추가해 둔 d_rsv 계열 8개)로 나누면 딱 32픽셀로 기호가 잘 나눠집니다. 만약 d_01을 추가시켰는데 가로 32픽셀짜리 단대호를 늘여서 붙여주지 않으면 1312/42로 단대호 가로 길이가 조금씩 어긋나게 됩니다.
아무튼 비어 있는 카운터 중 맨 왼쪽의 기호를 칠해줍시다. 그림판으로 대충해서 좀 비뚤어졌네요.
모든 작업을 마치고 확인한 모습입니다. 아주 잘 되었습니다.
첫댓글 자세한 설명 감사드립니다
정말 감사합니다! 시험기간 끝나고 꼭 해봐야겠네요.