mir.pe (일반/어두운 화면)
최근 수정 시각 : 2024-02-03 01:55:30

해머(에디터)/골드 소스 ~ 소스 엔진

파일:상위 문서 아이콘.svg   상위 문서: 해머(에디터)
1. 개요2. 골드 소스용 해머 ((구) World Craft)
2.1. File2.2. Edit
2.2.1. Map2.2.2. View
2.3. Tools2.4. Window2.5. Help2.6. 아이콘2.7. 오브젝트(브러쉬) 생성 창2.8. 컴파일
2.8.1. 에러 메시지
2.9. 주 엔티티들
2.9.1. 포인트 엔티티2.9.2. func 브러쉬2.9.3. 트리거 포인트 엔티티2.9.4. 트리거 브러쉬
2.10. 프리팹 팩토리2.11. 기타 보조 프로그램
2.11.1. J.A.C.K2.11.2. Nem's mega 3D terrain generator2.11.3. Bsp edit2.11.4. Newbspguy2.11.5. Winbsp
3. 소스 엔진용 해머
3.1. 아웃풋, 인풋(Output, Input)3.2. 디스플레스먼트(Displacements)3.3. 페런트(Parent)3.4. 프롭(Prop)3.5. 인스턴스 (func_instance)3.6. 포탈2 오소링 툴(Authoring Tools)
4. 툴(특수 목적의) 텍스처들5. 관련 싸이트

1. 개요



파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는
문서의 r61
, 번 문단
에서 가져왔습니다. 이전 역사 보러 가기
파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
[ 펼치기 · 접기 ]
문서의 r61 ( 이전 역사)
문서의 r ( 이전 역사)


본 항목은 골드 소스에서 소스 엔진 때까지의 항목을 서술한다.

2. 골드 소스용 해머 ((구) World Craft)

파일:external/developer.valvesoftware.com/800px-Hammer35.png

설명은 위쪽 및 왼쪽 카테고리서부터, 중요하지 않은 기능은 중앙 그음으로 표기.

2.1. File

2.2. Edit

2.2.1. Map

2.2.2. View

2.3. Tools

2.4. Window

2.5. Help

도움말 항목. 온라인 링크도 걸려 있지만, 버전 따라 짤린 경우도 있다.

2.6. 아이콘[15]

파일:attachment/pdppqokkkkqko.jpg
파일:attachment/hdqqfgnkpsxghe.jpg

2.7. 오브젝트(브러쉬) 생성 창

파일:attachment/oobjeeeepcxtp.jpg

유의해야할 점은 이 기능을 쓰기에 앞서 브러쉬 생성 기능(Shift+B)을 선택&드래그 해 생성 영역을 지정하고서야 활성화 된다.

2.7.1. 텍스처

파일:attachment/cddfewqg0hjqqq.jpg

2.8. 컴파일

파일:attachment/ed11gfssdscomp.jpg

에디터에서 작업한 레벨을 게임 상에서 구동이 가능하게 가공하는 작업이며, 맵 규모(크기와 복잡성) 및 사양 따라 시간이 2분에서 17시간까지 걸릴 수 있다.

2.8.1. 에러 메시지

2.9. 주 엔티티들

2.9.1. 포인트 엔티티

2.9.2. func 브러쉬

2.9.3. 트리거 포인트 엔티티

2.9.4. 트리거 브러쉬

2.10. 프리팹 팩토리

파일:prep`rag_k1drst.jpg

에디터 내에서 브러쉬 일부를 책상이나 의자 형태로 조형[37]한 것과 환경 엔티티[38], NPC나 스크립트 엔티티가 포함된 트리거 등을 개별 혹은 복수 선택 후 임의의 이름으로 에디터 내 DB에 저장 및 이러한 저장물을 현재의 맵에 복붙[39]하는 기능이다. 다만 Tools 항목에서 열 수 있는 프리팹 팩토리 창은 기본적으로 프리팹 관리 용도이며, 맵에 직접 복붙하기 위해서는 View > Screen Elelment > Object Bar 창을 켠 상태에서 Insert original prefab 버튼을 눌러야 한다.

파일:jokaero`lonesurviver`prefab.jpg

그리고 이러한 프리팹들은 프리팹 팩토리 창에서 추가 혹은 설정 변경이 가능한데, 각 창의 기능들은 다음과 같다.



일단 프리팹 개념을 최초 도입한 에디터이긴 했으나, 초창기 때는 이런저런 브러쉬 조형물들을 복붙하는 용도였다가[40] 점차 그 외의 요소들까지 복붙하는 개념으로 확장되었다. 게다가 후발주자들의 프리팹과 달리 골드소스 엔진과 연동되지 않고 해머 내에서만 작동하는 기능이며, 이조차도 상호 연동되지 않는 개별 복제품들을 복붙할 뿐이라 일괄 수정은 제한된다. 그리고 동일 이름과 구조의 트리거가 포함된 프리팹을 한 맵에 두 개 이상 복붙시 중첩에 의한 오작동 여지가 높아지므로 중첩되지 않게 개명하거나[41] 중앙 트리거를 만들어 이것의 일괄 제어[42]를 받게 수정하는 등 트리거 오작동 여지를 줄일 필요가 있다.

그리고 소스판 해머에서는 mdl 프롭에 입지를 상당량 넘겨줬지만 매번 모델 선택창에서 불러오거나 모듈화된 프롭을 포함한 여러 요소들을 완성품으로 조립이나 설정하기 까다로운 것들(예컨데 콤바인 발전기와 역장, LADDER 텍스처 이전의 사다리 등)에 시간을 들이기 싫다는 이유로 계속 쓰이고 있다.

2.11. 기타 보조 프로그램

2.11.1. J.A.C.K


2:00부터 접합시 중첩되지 않을 각도로 프리팹 통로 외곽을 잘라낸 뒤 3:03에 Paste special로 도넛 형태로 복붙해 냄.


16:20에 (해머 에디터의 한계로) 모서리 처리에 애먹다가 17:23부터 J.A.C.K으로 바위들을 순식간에 뽑아낸다.

2016년 퀘이크 시리즈 레벨까지 아우르는 J.A.C.K이라는 비공식 에디터가 나왔는데, 밸브 공식 해머에선 제한되거나 불가능했던 각종 원형이나 도넛 구조 등 복잡한 지형지물을 손쉽게 만들 수 있지만 이 역시 각종 툴과 기능들에 대해 시행착오를 거쳐야 제대로 쓸 수 있다. 그래도 전술한 장점들 때문에 Half-Life: Echoes #, Field Intensity # 등 메이저 모더들이 애용하고 있다.

2.11.2. Nem's mega 3D terrain generator



Nem's tool 페이지

마우스로 특정 지형을 선택해 높낮이를 조형할 수 있음을 강점으로 내세웠으나, 정작 해머용 파일로 변환하고 보니 컴파일이 허용할 수 있는 수치 밖의 내용물로만 나와서 이런저런 에러[43] 원인들을 다 잘라내야 겨우 실행이 가능할 정도라 입소문은 커녕 금새 잊혀졌다.

그나마 이런 기능은 소스엔진의 디스플레스먼트로 이어지게 된다.

2.11.3. Bsp edit

컴파일된 맵의 엔티티 편집기. 텍스트로만 지원된다. #

2.11.4. Newbspguy




TWHL의 간략 설명서

BSP 디컴파일 없이 3D창에서 엔티티와 지형지물들을 엿보거나 편집할 수 있는 툴. 64비트용이며, 지형지물의 경우 텍스처까지는 무난하나, 브러쉬 폴리곤을 임의로 수정시 형상이 잘 깨져서 원하는 이상향과 타협점을 찾기까지 최소 수차례 노가다를 해야 한다.

2.11.5. Winbsp

컴파일된 bsp 파일을 map 파일로 엉망진창[44] 디컴파일 해주는 툴로, 트리거 구조를 뜯어보거나 브러쉬 조형 모작 등에 유용. 다만 트리거가 그물같이 너무 복잡하거나 텍스처가 내장된 BSP는 불가능하다.

3. 소스 엔진용 해머

파일:external/developer.valvesoftware.com/800px-Hammer_screen.jpg

골드 소스와 크게 바뀐것 없이 신규 엔진에 걸맞는 기타 자잘한 기능들이 추가되어 이 항목에선 새로 추가된 기능 위주로 설명한다.

3.1. 아웃풋, 인풋(Output, Input)



소스엔진부터 각 엔티티들은 골드 소스의 multi_manager 기능을 내장하게 되어 다수의 타겟팅을 설정한 시간대로, 그리고 추가 기능[45]도 시키게 할 수 있게 되었으며, 이를 아웃풋으로 칭하고 있다.

반대로 타 엔티티로부터 타겟팅된 목록은 인풋으로 별칭되며, 만약 타겟팅이 안되었다면 화살표 대신 금지 아이콘으로 뜬다.

3.2. 디스플레스먼트(Displacements)


[46]

선택한 브러쉬를 폴리곤 다수의 한쪽 면[47]만 있는 상태로 만들고, 각 꼭지점들의 상하좌우 위치를 바꿔 조형한다. 또한 Paint 기능으로 일부분을 다른 텍스처로 바꿀 수 있으며, 면을 복수 선택한 상태에서 카브 기능으로 완만하게 만들 수도 있다. 다만 일반적인 브러쉬 상태가 아니기에 func_ 속성 부여는 안되며, 또 이것 너머를 다른 브러쉬로 막지 않는 한 컴파일시 Leak 에러를 일으키기도 한다.

3.3. 페런트(Parent)



해당 대상에게 이 항목이 있고, 여기에 특정 이름을 적으면 이 상태로 해당 이름을 가진 대상에 접합 및 종속[48] 설정이 되며 다단계 접합도 가능하다.[49] 다만 페런트 가능 이동식(다이나믹)이 아닌 고정식(스테틱) 프롭 등을 페런트 지정하면 튕길 수 있다.

3.4. 프롭(Prop)

파일:external/images3.wikia.nocookie.net/600px-Prison_pods.jpg

3D mdl 오브젝트[50]에 충돌 박스, 고유 특성[51] 애니메이션 등이 하나 이상 덧붙여진 3D 소품 모델들을 소스 엔진에서 칭하는 용어. 밸브 위키

여담으로 이 개념은 언리얼, 유니티 같은 타사 사용자들에게도 전해져 3D 모델 오브젝트를 뜻하는 은어나 분류로 쓰이거나 심지어 골드 소스에도 역도입되어 cycler나 monster_generic 등으로 삽입된 mdl 배경 모델들을 뜻하는 용어로 쓰였다. 게다가 대형 mdl 모델까지 집어넣는 모드도 늘었는데 cycler에서 전술했듯 프롭 전용이 아닌 걸 가져다 프롭 흉내를 내는 것이라 Half-Life: Echoes와 같은 사례도 벌어졌다.

3.5. 인스턴스 (func_instance)



밸브 위키 설명

에일리언 스웜 시기부터 공식 추가된 엔티티로, 다른 맵 데이터를 현 위치에 덩어리[53] 단위로 복붙한다.

그리고 (소스용) 프리팹 팩토리처럼 인스턴스 내 트리거들도 복붙할 때마다 원본 이름 뒤에 각기 다른 번호들이 붙어 각 인스턴스끼리 트리거가 중첩이나 간섭되지 않게 해놨기에 각각의 인스턴스들이 타겟팅 후 알아서 작동되게 만들려면 우선 원본에 func_instance_io_proxy #라는 뇌관 엔티티를 만들고 여기에서부터 트리거 작동이 시작되게 만들어야 한다. 이렇게 해야 인스턴스 이름(Fix up name) 란에 호출 부호를 적고 타겟팅 시 정상 작동한다.[54]

또한 func_instance_parms은 원본에 추가시 특정 인스턴스를 원본의 변종으로 만들 수 있는 엔티티로, 최대 10가지의 변경점[55]을 적용시킬 수 있다. # 하지만 포탈 시리즈처럼 버튼, 큐브, 패널 등을 수십, 수백번 등장시키는 맵을 만드는 게 아니라면 나름 복잡한 parm 명령어와 그것들의 효과들을 하나 하나 터득해가며 우려먹기보단 그런 변종의 인스턴스를 따로 만드는 게 나을수도 있다.

참고로 덩어리 선택시 프로퍼티 하단에 뜨는 Edit instance 버튼은 원본 맵을 불러오는 기능이고, 이렇게 불러온 원본 맵을 수정시 해당 맵에 넣어진 다른 동일 덩어리들도 일괄 수정되며, 또 사용 목적도 프리팹 팩토리와 겹쳐서 이것의 변종 혹은 발전형으로 취급되고 있다.

하지만 컴파일로 완성된 맵까지는 일괄 수정이 적용되지 않아 일관을 신경쓴다면 재컴파일이 필요할 수 있다.

3.6. 포탈2 오소링 툴(Authoring Tools)

포탈2 맵을 만들 수 있게 고유 엔티티나 불러올 수 있는 프롭 등이 설정된 해머로, 툴 메뉴에선 해머 월드 에디터로 별칭하고 있지만 정작 에디터 이름은 (포탈2 용으로 설정된) 해머(..)[56]

기초 메뉴 설명(한국어)


그밖에도 게임 메뉴 창에서 규격화된 각종 지형지물과 프리팹들을 간편하게 조합해 실험실 하나를 만들 수 있는 별도의 맵 에디터가 존재한다. 하지만 규격화된 것들만 넣을 수 있는 한계로 그 외의 세밀한 편집은 불가능하다.

4. 툴(특수 목적의) 텍스처들

골드와 소스 공통으로 별도의 값을 지정하지 않아도 브러쉬 전면에 칠하는 것만으로도 자체 속성이 적용되는 텍스처들이다. func_water를 제외한 대다수 텍스처들은 단독으로 혹은 복수 선택해 func 설정시 컴파일 거부가 될 수 있다.

5. 관련 싸이트


[1] 다만 확장자가 하나로 통합되지 않고 rmf, map 등으로 이루어져 있으니 안 뜨면 찾고자 하는 파일 형식을 바꾸든가 *.* 등을 치면 된다. [2] 다만 규모가 크고 복잡한 맵일수록 잠시 멈추는 현상도 있다. [3] 에디터 특성상 생성된 순서나 위치 등을 기준으로 번호를 임의로 붙인다. [4] 브러쉬나 엔티티, 텍스처 등을 포함한 것. [5] 브러쉬(깨짐이나 편집 영역 밖에서 감지시), 플레이어 시작점 없음, 타겟팅 에러 등등. [6] 오브젝트의 최대 표시 거리라든지 스카이 내용 등등. [7] 컴파일 시 생성되는 파일이며, 불러오면 컴파일러가 어딜 헤집고 돌아다녔냐 등을 경로로 표시하나 버전이나 그래픽 카드 문제로 보여지지 않는 경우도 있으며, (경로가 올바르다면) 게임 콘솔 창에서 pointfile 등으로도 불러와 확인이 가능하다. [8] 없어도 Shift+A로 화면에 띄울 수 있다. [9] 참고로 트리거를 복잡하게 작성시 외진 구석이나 별도의 트리거 공간을 만들고 현재 작성중인 트리거들을 모아 해당 기능을 켜고 언리얼 블루프린트 마냥 작동 순서나 조건 변수 종류별로 나열해 눈으로 쉽게 파악하는 꼼수가 있다. 물론 단순히 각 요소들을 켜고 끄고, 타겟팅 대상을 바꾸거나 죽이는 것들만 있는 초창기 에디터인 만큼 기계식 계산기 만지작 거린다 생각하면 편하다. [10] 다만 클립 브러쉬 등은 경우에 따라 숨겨놔도 다시 보여진다. [11] 다만 해당 브러쉬가 깎일 브러쉬보다 면적이 작거나 어중간하게 겹침, 사각형 이외의 도형으로 했다면 십중팔구 아래 이미지처럼 깨진 유리창 같은 상태가 되며, 애퍼처 사이언스? 이 상태로 컴파일&테스트하면 깨진 브러쉬의 금이 게임상에서 그대로 보이는 건 물론이요, 이 꼴도 난다. 아무튼 은근히 많은 사용자들이 간과하고 있는 사실. 해결법은 Undo 혹은 그 브러쉬 형태에 맞게 브러쉬를 하나하나 새로 생성, 재작업하는 수밖에 없다. 파일:external/developer.valvesoftware.com/Opt_carving_with_cylinders.jpg [12] 참고로 이미 지정된 그룹에 다른 요소나 타 그룹을 복수 선택해 하나의 그룹으로 묶을 수 있으며, 이 그룹 역시 또다른 그룹의 일부로 묶을 수 있다. 다만 그룹 지정까지 저장되는 건 Rmf 확장자에서만 가능하고, Map 파일에선 그룹 지정까지는 저장되지 않는다. [13] 다만 텍스처 값(예컨데 0.45 같이 소숫점일수록)에 따라 위치 등이 미묘하게 바뀌기도 한다. [14] 이 상태에서도 에디터와 창이 분리된 관계로 해당 창을 임의로 이동시킬 수 있으며, 더블 클릭으로 에디터에 펼침&고정시킬 수 있다. [15] 위에 언급한 기능 상당수가 여기에도 있지만 개중엔 여기에만 있는 기능도 있으니 참고. [16] Tools 항목의 카브와 동일. [17] 그룹화를 유지하되 그걸 구성하는 사물 위치를 조정할 수 있다. 여담으로 Move to world와 단축키가 같지만 이 기능과는 미묘한 차이가 있다. [18] 전자의 경우 지형지물을 대량으로 편집할 때 유용하고, 후자는 여러 오브젝트들이 뒤엉킨 공간에서 몇몇만 딱 집어 선택할 때 유용. 참고로 이 아이콘을 못 알아보더라도 옵션 란에서도 설정이 가능하다. [19] 브러쉬를 생성 혹은 복사할 때마다 브러쉬의 면들을 world에서 face로 자동 조정. [20] 만약 프리팹을 여기 이 기능으로 추가한다면 해당 영역에 맞게 늘여지거나 쭈글어든 상태로 나온다. [21] 다만 드래그된 영역에서 생성 [22] 화면 하단에서 텍스처들의 크기 조정 및 이름이나 해당 맵에서 사용되는 텍스처를 선택적으로 검색이 가능하다. [23] 기본적으로 컴파일이 끝나면 게임이 자동적으로 실행되게끔 되어 있는데, 원치 않거나 이 기능의 작동이 원할하지 않을 시 체크하자. [24] 골드 소스에선 32767, 소스에선 65536개의 평면이 한계다. [25] 쉽게 말해 드로우콜 제한 같은 게 걸려있다고 생각하면 된다. [26] 즉, 64x64 단위의 패치들이 65535개. [27] 만약 한쪽이 이 길이일 경우 다른 쪽 길이는 496 이하여야 한다. [28] 하프라이프에서 최소한의 AI와 체력 1의 배경용 NPC로, 작중에선 지게차나 자동 로더 역할로 쓰였으며 어포징 포스에선 모든 게 통과되는 Not solid, AI를 비활성화 하는 Prisoner 플랙들을 걸고 공구함 등 프롭 용도로 썼었다. 다만 충돌 박스(?)가 사람 NPC 크기 고정이라 이보다 큰 프롭으로 지정하면 주변부는 그대로 통과하며 체력 문제로 어포징 포스와 같은 플랙을 걸고 func_wall 틀어막기 노가다를 해야 한다. [29] 대표적 사용 예는 원작의 대공명 현상 때 수초간 조우하는 반투명 원생생물(Protozoan). [30] 텍스처 투명 값이라든지 등등. [31] 타겟팅이란 func나 trigger 엔티티 Target 항목에 임의의 호출 부호(말 그대로 a 같은 단문이나 아무말로 길게 써도 맵 어딘가에 그 이름을 가진 엔티티가 있으면 유효하다. 다만 너무 길면 에러 원인이 되니 유의.)를 적는 것으로 View란의 Show Connections으로 육안으로 상호 연결 확인이 가능하며, 비타겟시 Check for Problem에서 문제 목록에 뜨니 참고하면 된다. [32] 벽이나 바닥의 혈흔이나 얼룩, 타이어 그을림 등. [33] 쉽게 요약하면 기차를 타고 다음 맵을 불러올때 기차 속도나 선로에서의 위치 등을 다음 맵의 동명의 글로벌 이름을 가진 엔티티가 계승. [34] 토글 체크에 이게 양수 값인 상태의 문이 무언가에 부딪치면 후진을, 음수 상태라면 무언가가 제거될 때까지 그 상태를 유지한다. [35] 여담으로 후술할 trigger_transition도 이 엔티티와 동명이어야 한다. [36] 예컨데 버튼(func_button)의 타깃을 이 카운터 엔티티 이름으로 지정한 뒤 이 카운터 엔티티로 와서 이 항목을 3으로 쓰면, 정확히 버튼을 3번 눌러야 이게 작동된다. [37] 지금의 프롭 같은 개념이지만 세밀한 조형까지는 불가능한 한계가 있어 어디까지나 대용일 뿐이다. [38] 예컨데 울림(env_sound) 및 SPEAKER 등. [39] Texture Lock 설정 상태에서 이걸 쓰면 이동된 위치에 따라 브러쉬 각 면들의 텍스처 위치 값도 임의로 조정되는데, 안 보이는 면까지 이게 적용된다. [40] 기본 제공되는 프리팹부터가 상자, 책상, 옛날 컴퓨터 같은 것들만 있었다. [41] 그나마 소스용 이후부턴 복붙할 때마다 원본 이름 끝에 숫자별로 다르게 붙어 수고를 덜었다. [42] 간단한 예로, 특정 복제 트리거가 작동하면 나머지 복제 트리거들은 일시적이거나 영구적으로 비활성화 되는 식. [43] 특히 브러쉬 양이 쓰잘데기 없이 많아지고, 그 중 일부가 편집 가능 범위 밖을 벗어나는 것 등이 있다. [44] 컴파일 과정에서 프리팹 그룹이고 뭐고 임의대로 다 합쳐지는데 이걸 마구 뚜따해 버리니 브러쉬고 뭐고 다 깨져나오는 것. [45] 해당 엔티티를 잠그거나 삭제, 페런트 등. [46] 해당 영상은 비공식 에디터인 해머++에서 촬영된 것이다. [47] 혹은 면을 다수 선택해 두 면 이상 바꿀수도 있다. [48] 즉, 모체가 없어지면 여기 얹어진 자식들도 함께 없어짐. [49] 쉽게 말해 3D 모델의 관절같이 된다고 생각하면 된다. [50] 작게는 부스러기, 크게는 자동차나 건물 한 채까지 다양하다. [51] 무게, 폭발물이나 분출 등 특수 기능 등. [52] 일정량 데미지를 받거나 플레이어가 들거나 차버리면 떨어지는 식. [53] 표현상 그룹이 적합할 것 같지만 에디터 내의 언그룹 기능으로 그룹 해제 후 직접 편집은 불가능하다. [54] 다만 인스턴스 안에 인스턴스를 넣는 행위는 오류 발생 가능성이 있어 가급적 지양해야 한다. [55] 이를테면 팔레트 스왑이나 작동음이나 중심 축 등. [56] 이는 오소링 툴이 있는 타 게임들도 엇비슷하다. [57] 이에 대해선 상술한 cycler 참고. [58] 이후 Zoner's half-life tools 라는 이름으로 공개된다. [59] Origin이 칠해진 브러쉬 중앙을 기준으로. 따라서 직사각형이든 정사각형이든 상관없지만 중심을 잘 보이는 이유로 디자이너 사이에서 정사각형을 애용하는 편이고 경우에 따라선 시야를 가린답시고 아예 2x2 크기로 축소시키는 경우도 있는데 이 경우에도 작동에는 문제 없다. [60] 다만 이것만 붙인다고 텍스처 라이트닝이 자동으로 되지는 않으며, light.rad나 맵 이름.rad에서 텍스처 별 조명의 색, 강도, 범위 등을 따로 기제해야 한다. [61] 하프라이프2 부터 한동안은 사다리 포인트 엔티티를 사다리 위 아래로 각각 정 중앙에 정확한 높낮이로 배치해야 의도대로 오르내리는 방식이 쓰였었다. [62] 다만 배경 텍스처와 조명만 적용되던 골드 소스와 달리 맵 구석에 배경용으로 따로 있는 미니어처 세트 트리거가 적용되면 이것도 함께 보여준다.