맵 개발 맵개발 역시 쉽지 않아요 ㄱ-
페이지 정보
본문
어떻게 하다보니 엔티티 leaked되는것도 사라지고
************ ERROR ************
MAX_TW_VERTS (12) exceeded
이것은 있었다없었따하고
이번에 새로 등장한 효과로
맵의 일부분에서 브러쉬 너머가 보이며
************ ERROR ************
MAX_MAP_VISIBILITY exceeded
이게 발생하는데
역시 해결법이 영어로 되어 있어 해결이 안돼요
이건 또 무슨 현상인지 모르겟어요 ㅜㅜ
그리고 질문이있는데
Caulk의 용도가 뭔가요
에러해결법에 Caulk가 어쩌구저쩌구 하던데
p.s 만들고 있는 맵파일 올렸어요
그런데 여기 맵제작자는 fetchinist님밖에 없나요?!
fetchinist님 이전글 답변 고맙습니다
댓글목록
^Xf^7etchini^Zs^Yt님의 댓글
^Xf^7etchini^Zs^Yt쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (59.♡.193.137) 작성일
위에 두 에러 모두 detail brush가 없어서 생기는 것으로 생각됩니다. 울펜이 3D게임인지라 화면 상에서 보이지 않는 폴리곤은 처리를 안하는데
이걸 처리 하기 위해서 컴파일시 자신의 위치와 보이지 않는 곳을 계산을 하게 됩니다. 퀘이크3 엔진의 계산과정은 각각의 brush 꼭지점과 연결
된 선분을 연장해서 구역을 나누고, 자신이 어느 한 구역에 있을 때 다른 구역이 가려져서 보이지 않으면 그 곳은 폴리곤 처리를 아예 하지를 않습니다.
(참고1 http://swat-clan.com/marko/mapping/bsp.htm) 올리신 파일은 brush의 꼭지점이 너무 많아 이 구역 나누기 작업을 하기에 상당히 애로사항이
꽃 피우는 문제점이 있습니다. 이걸 해결하기 위에 detail brush라는 걸 사용합니다. 레벨의 자세한부분(다시 말해 구역 나누기에 최소한으로 필요한
brush를 뺀 부분)을 detail brush로 지정해서 그 brush는 구역 나누기에서 제외를 시키는 겁니다. (참고2 http://fetchinist.i-i.st/temp/detail_brush.jpg
드럼통도 detail brush이나 patch mesh로 되어 있어서 토글을 해도 보입니다. 컴파일시에는 다른 brush와 마찬가지로 제외되고요.)
detail brush 지정 방법은 해당 brush를 선택하고 ctrl+m을 누르면 지정됩니다. ctrl+d를 누르시면 detail brush를 위 이미지처럼 안보이게 하실 수 있습니다.
brush 지정 후 다시 원래대로(structural brush라고 부릅니다) 돌리려면 shift+ctrl+s를 누르시면 다시 원래대로 돌아옵니다.
또 한가지 방법으로서 강제적으로 구역을 나누어 주는 것으로 hint(hint shader를 입힌 brush)가 있습니다. 위에 참고1에 보시면 해당설명이 나오는데
너무 많이 구역이 나눠지는 부분을 hint brush로 싸서 한 구역으로 지정하는 것입니다. 이 경우도 detail brush와 마찬가지로 구역을 나눌 부분이 많이
줄어들어 컴파일이 무리가 가지 않습니다. 하지만 이 부분은 완전히 이해하시지 않으신다면 추천하고 싶지 않습니다. 2차원적이라면 이해가 쉬운데
게임 자체가 3차원이라 이게 꽤나 복잡합니다. (저도 자세히는 몰라서 잘 사용을 못합니다.)
caulk은 게임을 할 때 거의 볼 수 없는 부분이나 다른 브러쉬와 겹쳐지는 부분 등 필요없는 폴리곤을 지정할 때 사용합니다. caulk이 입혀진
브러쉬는 입혀진 면이 게임 상에서 아예 처리를 하지 않으며 보이지 않게 됩니다. 육면체가 있다고 가정할 때 게임상에서 콘솔명령어를 사용하지 않고
뒷 면을 볼 수 없을 때 이 부분은 전혀 필요하지가 않으므로 caulk을 사용하여 컴파일시 계산에서 제외되게 끔 합니다. 위에 두가지와 같은 목적으로
폴리곤을 줄이고 프레임을 향상시키는데 목적이 있겠습니다.
팀 전용문은 brush 속성에다가 key에 allowteams, value에 axis,allies,cvops을 넣어주시면 들어가 있는 해당 팀과 변복한 상대편 코옵만 열 수있게 됩니다.
건설물은 간단히 설명드려서 건설전 눈에 보이는 건축자제인 misc_constructiblemarker, 실제 처리를 하는 trigger_objective_info, 그리고 만들어지는 건설물인
func_constructible 세가지로 이루어지며 스크립트로 조정을 합니다. (스크립트가 없으면 그냥 단순 작동만 합니다.) misc_constructiblemarker은 건설 전
나오는 깃발과 포대자루 모델로써 시각적으로 엔지니어에게 위치를 알려주는 기능을 합니다. (단순히 시각적입니다.) 다음으로 trigger_objective_info는
실제 건설을 할 수 있게 하는 엔티티로 전술지도에 위치를 나타내주면 해당 구역에 엔지니어가 들어갔을 때 건설아이콘과 메시지로 건설이 가능하다고
알려주면 해당 구역에서 도구로 건설시 건축물이 만들어지게 됩니다. (당연하지만 구역을 벗어나면 만들어지지 않습니다.) 마지막으로 만들어지는 결과물인
func_constructible은 말 그대로 이므로 설명은 필요없겠습니다. 이렇게 세가지 엔티티를 만들고 misc_constructiblemarker -> trigger_objective_info -> func_constructible
의 순서대로 연결을 해줍니다. (연결하는 엔티티와 연결되는 엔티티를 선택하고(순서가 바뀌면 안됩니다!) ctrl+k를 누르면 됩니다. 연결이 되며 엔티티 사이에
'연결하는 엔티티의 색의' 선이 생기며 연결이 되었음을 알려줍니다. 완성이 되었으면 스크립트에 해당 기능을 지정해 주시면 됩니다. (참고3 http://fetchinist.i-i.st/temp/construction.zip)
ps. 레벨 만드시는 분이 몇 분 계신 걸로 아는데 직접적으로 활동하는 사람은 저 밖에 없는 걸로 알고 있습니다.
ps2. 스크립트를 사용하시려면 반드시 레벨 어딘가에 script_multiplayer를 만들어 주시고 속성의 key에 scriptname, value에 game_manager을 입력해주시고 스크립트에서 작동을 시키셔야합니다.
참고3 파일의 1~17줄을 입력해 주시면 됩니다. (들어가 있는 것은 기본적인 것으로서 다른 것이 추가 될 수 있습니다.) 이 곳에서 기본적인 설정을 해줍니다.
ps3. 참고3 파일의 건설 엔티티를 제외한 나머지는 게임에 기본적으로 꼭 필요한 엔티티입니다.