1. 맵툴
전략맵의 생명은 역시 맵이겠죠.. 맵을 어떻게 구현하느냐 하는 문제는.. 속칭 아날로그라고 칭하도록 하죠. 그래픽과 관련된 문제입니다.
요새는 전략맵툴이 나와서 맵툴을 이용해서 산이나 강.. 바다 산맥이나 들판을 추가할 수 있죠.
전에 비해서 아주 간단해지고 쉬워졌습니다.
맵을 만들기위해서는 가장중요한 것이 base폴더인데 데이터폴더에 있죠. 그 폴더안에서 보면 각종 지리나 기후 강과 바다 산맥의 고저를 나타낸 파일들이 있습니다. 이 파일을 건드리는 거져. 토탈워카페에가면 툴이 있기때문에 이 툴을 이용해서 맘에 맞는 작업을 할 수 있습니다. ------------------------- 이 일을 전담하는 팀원이 있어야겠져. 그리 어렵지않아요.. 그래픽입니다.
2. 도시추가
자 맵을 만들었으면 도시를 만들어야겠죠, 도시추가는 모두 5개의 파일이 필요합니다. 5개의 파일은 토탈워카페나 제 카페 공부방에 나와있으니 참고하시기 바랍니다. 공부방을 통해서 얼마든지 공부가 가능하고 아주 쉽습니다.
문제는 도시수 제한인데 200개 도시수가 제한이더군요. 그 이상은 만들어지지가 않습니다. 참고하시기 바랍니다.
저는 도시 3개정도를 만든다음 테스트를 하고 성공하면 다음 수순으로 넘어가곤 했습니다. 성공하지않고 로딩창에서 다시 메뉴창으로 나가는 경우는 꼼꼼히 한개 한개 도시를 지워가면서 테스트를 하였습니다. 성공하는 경우도 있고 그렇지 않은 경우도 있었습니다. 역시 꼼꼼한 손놀림과 주의력 무엇보다도 인내력이 필요한 싸움입니다. 만들고 나면 자신만의 도시를 생성할 수 있는 희열을 느끼실 것입니다... 요것 만으로도 도시팩 추가 모드라고 할 수 있져.. ................... 코딩입니다. 약간의 그래픽과 더불어...
3.팩션추가
자 도시가 추가되었으면 이제 팩션을 추가해야겠죠. 팩션은 어캐 추가하느냐.. 역시 토탈워카페에 잘 나와 있습니다. 도합 12개의 파일이 필요하져. 그런데 이 작업은 도시추가보다도 더 꼼꼼하고 신경쓰이는 부분이죠.. 그럼 간단히 하는 방법이 없느냐..
있지요. 고맙게도.. 원본 미디블2는 기본 팩션이외에도 섹슨이나 노르만같은 역외팩션도 만들어 놓았습니다. 모드들은 대개 기본팩션중 일부를 빌려와 도시나 유닛을 새로 만들거나 각색해서 지도상에 구현하는거라 얼마든지 팩션을 만들수 있져.
미디블 기본팩션수가 도합 16-18개인가요.. 잘 모르곘네.. 필자는 원본 start파일서 불러와 모드에 없는 국가를 선택해서 붙여넣기
신공으로 만들었습니다. 물론 도시는 새롭게 추가해줘야겠져.. 장군이나 팩션 공주 왕자나 장군. 스파이나 외교관은 name.txt에 있는 이름을 빌려와야겠져.. 이렇게 만들면 짜잔.. 국가선택창에 새로운 국가심볼이 나타나져. 어 그런데 실행시키니 다시 메뉴창으로 가네.. 그럴때는 system.log파일을 열어보면 그 정답이 있져. start 파일에 도시명이 안 맞다거나 장군이나 위치가 안맞다거나 무엇보다도 여왕과 팩션 히어로의 친족관계가 안맞아서 생기는 경우입니다.. start파일만 약간 손보면 짜잔 바로 성공이져.
쉽게 하기 위해서 여왕하나 만들고 친족관계는 삭제하십시오.. 그럼 100프로 성공입니다. 물론 차후에 트레이나 친족트리를 만들기위해서는 수정이 필요하겠지만서요.
4.유닛추가
유닛추가는 토탈워카페에서도 많이 나와 있져. 그렇게 어렵지 않습니다. 필요한 파일은 4개입니다. edu, edb파일과 model.db파일과 최종적으로 start정도.. 유닛추가방법은 아주 간단하고 쉽지요.. 붙여넣기 신공입니다. 우선 유닛파일서 넣고 싶은 유닛이나
말을 태우고 싶은 유닛.. 또는 타국가의 유닛을 차용하거나.. 다른 모드서 신규유닛을 빼와 적용하고 싶을때 그 유닛의 유닛정보를
카피합니다. 그리고 내 데이터폴더에 있는 edu폴더내에 빌려온 유닛정보를 복사합니다. 그런다음 국가를 지정해줘야겠져.
자 그런다음 유닛추가를 위해.. 병종 solser 를 주목하세요.. 병종카테고리의 병종을 카피해서 모델파일을 열어 찾으세요..
가령.. turks_man이면 해당 정보가 나오겠져.. 거기보면 매쉬파일과 테스처파일이 있습니다. 메쉬파일을 건드리지마시고..
만약 타 모드서 빌려온거라면 그 모드서 그 메쉬파일도 복사해서 내 폴더에 맞는 위치에 저장해야겠져..
그런다음 텍스처파일보면 국가명아래 텍스처와 스크립처파일이 있져..
그 국가명과 텍스처 스크립쳐파일복사해서 바로 아래에 복사하고 국가명만 자신이 불러내고 싶은 국가로 바꿔주면 됩니다.
물론 총 국가수가 2개면 내가 복사해서 3개가 되면 3개를 써야겠져.. 그런다음 저장..
그리고 나서 스타트파일에 넣어주고 필드상서 확인하면 짜잔 .. 오 내 국가에도 타 국가 유닛이 나오네.. . 두둥...
.......... 다음으로 보병의 기병으로 태우기
이건 더 쉬운데 일단 아까처럼 병종을 선택.. 또는.. 카테고리서 선택해서 모델파일서 찾아보면..
4
none
로 되어 있져..
이걸 고칩니다.
5
Horse
로 그런다음 저장하고
edu폴더가서 바꾸고자 하는 병병유닛정보를 기병정보로 변경..
이건 타 기병유닛정보를 그대로 복사..formation까지입니다.. 그대로 붙여넣기해주고.. 만약 총병이면 camei_cunner 로.. 병종을
기병이면 lancer로 궁기병이면 필자는 터키쉬궁기병으로 해주었습니다. 이런식으로 바꿔주면 아주 잘 적용되죠..
그외에도 적용방법은 무궁무진합니다. 약간의 손질과 실험을 통해 총알대신 대포알로.. 대포알대신.. 파이어로 변경도 되고
진형을 4 4 4 4 로 또는 마음에 맞는대로 ...앞에 4는 가로.. 두번째는 새로.. 셋째 4는 흩어질시 가로 4는 세로.. 뭐 이런정도는
알아두면 진형도 내맘대로 만들 수 있겠죠..
edu를 손바닥보듯이 알면 얼마든지 새롭고 독창적인 유닛을 맘대로 만들 수 있습니다. 해보세요.. 자신만의 캐릭을 만들어 낼 수 있습니다.
5 유닛불러오기.
자 이제 유닛을 만들었으면 캠패인상에 유닛들이 생산되야겠죠. 이때 할 작업이 edb를 만지는 겁니다.. 속칭 빌딩파일인데
살펴보면.. stable과 barrak . missile로 나누어져 있져..
각 레밸단계는 - 0 1 2 3 4단계로 되어 있구요.. 자 이제.. 복사신공으로 만들어진 유닛이나 불러온 유닛을 불러와 각 카테고리에 맞게 보병은 배럭으로 기병은 마굿간으로 궁병은 미사일탑으로 붙여주면 되면 되겠져.. 맘대로 붙어넣고 숫자 조정해주고 되면 되죠
.. 가령 유닛과 팩션을 지정하고 숫자 1 0.002 2 1 요렇게 4개가 있다 합시다. 1은 생산 턴이고 0.002는 걸리는 시간입니다.. 1을 기준으로했을때이겠죠.. 1/0.002로 계산하면 다음턴까지 걸리는 턴수겟죠.. 2는 생산최대수입니다. 이 숫가는 최대 9까지해주면
한번에 9마리겠죠.. ㅎㅎㅎ
마지만 1은 얼마까지 쌓아놓냐를 결정합니다. 9면 9마리까지만 쌓아진다는 거곗죠. 요 숫자는 각각 첫째... 둘째. 쎗째. 넷째입니다. 참조하세요. 한개라도 빼먹으면 팅기져.. 필자도 많이 팅겼음. 정말 숫자하나 토시하나 틀리면 팅깁니다. edb는 심술쟁이져..
6.캠페인 베틀맵적용
이제 팩션과 유닛을 다 만들었고 배치도 완료되면 플레이를 해야겠져.. 캠페인에서 잘 뜨는지 도중에 에러가 없는지 배틀맵에도
잘 적용이 되는지.. 일일이 하기 어려우면 커스텀배틀에 지정해서 하면 쉽겠죠..
잘 적용이 되었다면 이로서 일차 임무는 완수입니다. ㅎㅎㅎ 그런데.. 정작 이 과정까지 완성하고 적용시킨다음 와보니 뜻하지않은 복병을 만났습니다. 예전 다솜모드에서도 겪었던 ctd가 발생하더군요.. 반지모드 3.2같은 경우는 특정 배틀맵이나 적의 지원군이 출연시에 배틀맵상 팅기는 현상이 벌어지더군요.. log조사를 해보니 아니나 다를까..
16:40:44.738 [game.script] [error] Script execution error for <label_unit>, at line 47035, in mods/Third_Age_3/data/world/maps/campaign/imperial_campaign/campaign_script.txt:
label_unit referenced non-existent army
고질적인 캠페인 스크립터 에러네요.. 처음에 스크립터상의 에러라고만 생각했습니다. 그러다 토탈워카페며 필자스스로 코드를 연구해보니 그런게 아니라 문제는 새롭게 추가된 유닛의 특징을 declear하지않은 상태에서 캠페인시 인식하지못하는 에러더군요.
가령 적 유닛집단이 출연했을때 적 유닛집단중에 인식되지못하는 유닛집단이 등장하면 저런 에러와 함께
16:40:44.738 [game.script] [error] Script execution error for <define_unit_group>, at line 47036, in mods/Third_Age_3/data/world/maps/campaign/imperial_campaign/campaign_script.txt:
Error in battle script command 'define_unit_group': invalid unit label 'a5u1'
이런 에러가 뜹니다. 이는 인식하지못한 유닛을 그룹 설정하는데 실패했다는 메세지인데, 이런 메세지들이 쌓이다보면
팅겨버리져.. 예전에 이런 현상을 유보시키는 가령 어느정도 커버해서 팅기지않도록 설정하는 방법이 있었던 것 같은데..
토탈워 로마카페에서 본 적이 있음.. 가령 erro 수를 늘려서 팅기지 않도록 설정하는.. 스크립터가 있었던 것같은데.. 아시는 분은
제보부탁합니다.
문제의 핵심은 인식하지 못하는 유닛집단을 인식시켜야한다는 거져.. 가령 보병이면 보병으로.. 기병이면 기병으로.. 코끼리로 형상화했다면 코끼리의 코딩으로 declear해줘야한다는 것이죠. 이렇게 짝을 맞추는 방법이 있을텐데.. 스크립터 프로그래밍 코딩공부를 하지않아서 정확히 방법을 모르겠네요.. 캠페인스크립터와 배틀맵 db에 있는 것같은데.. 코드를 분석해봐야겠네요..
팔자에도 없는 프로그래밍공부를 해야겠습니다.
말이 길어졌네요.. 현재 단계는 여기서 주춤한 상태입니다..기본모드를 반지제왕 3.2에 맞춰하다보니 이런 고질적인 베틀맵상 팅기는 현상이 심하다는 것을 간과해버렸네요.. 반지제왕 3.2모드팀의 반응도 감감무소식이고, 단지 패치하나도 커버하기에는 여전히 베틀맵상 팅김현상이 일어나고.. 그 곳 포럼에서도 난감한 상황이더군요.. 단지.. ai제작프로그래머 Germanicu5의 시원하고 명쾌한 해결책만 기다리고 있는 상황입니다. 그런데.. Germanicu5 이 양반이 지금 무지 바빠서 다른데 신경쓸 틈이 없다고 하네요..
c/c 모드에 투입되었다는 것 같기도 하고... 어쨋든 판단하건데 제 분석이 맞다면 신규유닛추가시 베틀맵상에서 구현되도록 할때
특히 지원군으로 출연할때 그 유닛군을 따로 베틀맵스크립터상에 코딩해줘야한다는 것입니다. 이 과정이 생략되면 저런 문구와함께 베틀맵상 팅기는 현상이 발생한다는 것이죠.. 특히 반지모드 3.2같은경우는 기존에 안정적으로 나와 있던 버전에 새로운 서브모드를 통합하고 더불어 새 맵과 유닛들이 많이 추가되는 과정에서 기존에 사용하던 엔진에 새로운 요소들이 적용되지 않은 상태라 문제가 발생하는 것같습니다.
정확히 베틀맵상 팅기는 문제의 핵심을 어떻게 건드려야 하는지는 더 공부와 연구가 필요한 부분같습니다.
천상 스크립터프로그래밍 언어를 공부해야겠네요.. 코드를 다 분석해봐야 문제를 알아 낼 수 있을 듯 합니다.
이상 현재까지의 상황이었습니다. 소스모드를 반지제왕 3.2로 잡고 작업한게 문제가 되는 것 같기도 하고... 프로미 2.1로 작업을 해 볼껄 하는 후회도 드네요.. 프로미 2.1같은경우는 3.2같은 혁식적인 면은 없어도 캠페인시나 특히 베틀맵시 팅기는 현상이 일어나지 않는 대단히 안정적인 모드엿거든요.. 어쨋든 문제는 배틀맵상 ctd인데, 이 문제를 푸는 열쇠는 유닛을 인식시키는 coding밖에 없어 보입니다..