Manuals
Manuals




This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English

타일 맵

타일 맵(Tile Map)타일 소스(Tile Source)의 타일을 큰 그리드 영역에 조합하거나 칠할 수 있게 해 주는 컴포넌트입니다. 타일 맵은 보통 게임 레벨 환경을 만드는 데 사용됩니다. 충돌 감지와 물리 시뮬레이션을 위해 타일 소스의 Collision Shapes를 맵에서 사용할 수도 있습니다(예제).

타일 맵을 만들기 전에 먼저 타일 소스를 만들어야 합니다. 타일 소스를 만드는 방법은 타일 소스 매뉴얼을 참고하세요.

타일 맵 만들기

새 타일 맵을 만들려면:

  • Assets 브라우저의 위치를 오른쪽 클릭한 다음 New... ▸ Tile Map을 선택합니다.
  • 파일 이름을 지정합니다.
  • 새 타일 맵이 타일 맵 에디터에서 자동으로 열립니다.

    새 타일맵

  • Tile Source 프로퍼티를 준비한 타일 소스 파일로 설정합니다.

타일 맵에 타일을 칠하려면:

  1. Outline 뷰에서 칠할 Layer를 선택하거나 만듭니다.
  2. 브러시로 사용할 타일을 선택하거나(Space를 눌러 타일 팔레트를 표시), 팔레트에서 클릭한 채 드래그해 여러 타일이 포함된 직사각형 브러시를 만듭니다.

    팔레트

  3. 선택한 브러시로 칠합니다. 타일을 지우려면 빈 타일을 선택해 브러시로 사용하거나 지우개(Edit ▸ Select Eraser)를 선택합니다.

    타일 칠하기

레이어에서 타일을 직접 선택하고 선택 영역을 브러시로 사용할 수 있습니다. Shift를 누른 채 타일을 클릭하면 현재 브러시로 가져옵니다. Shift를 누른 상태에서 클릭한 채 드래그하면 타일 블록을 선택해 더 큰 브러시로 사용할 수도 있습니다. 또한 Shift+Ctrl을 누른 채 비슷한 방식으로 타일을 잘라내거나, Shift+Alt를 누른 채 타일을 지울 수 있습니다.

브러시를 시계 방향으로 회전하려면 Z를 사용합니다. 브러시를 가로로 반전하려면 X, 세로로 반전하려면 Y를 사용합니다.

타일 가져오기

게임에 타일 맵 추가하기

게임에 타일 맵을 추가하려면:

  1. 타일 맵 컴포넌트를 담을 게임 오브젝트를 만듭니다. 게임 오브젝트는 파일 안에 있을 수도 있고 컬렉션에서 직접 만들 수도 있습니다.
  2. 게임 오브젝트의 루트를 오른쪽 클릭하고 Add Component File을 선택합니다.
  3. 타일 맵 파일을 선택합니다.

타일 맵 사용

런타임 조작

여러 함수와 프로퍼티를 통해 런타임에 타일맵을 조작할 수 있습니다(사용법은 API 문서 참고).

스크립트에서 타일 변경하기

게임이 실행 중일 때 타일 맵의 내용을 동적으로 읽고 쓸 수 있습니다. 이렇게 하려면 tilemap.get_tile()tilemap.set_tile() 함수를 사용합니다:

local tile = tilemap.get_tile("/level#map", "ground", x, y)

if tile == 2 then
    -- 잔디 타일(2)을 위험한 구멍 타일(번호 4)로 교체합니다.
    tilemap.set_tile("/level#map", "ground", x, y, 4)
end

타일맵 프로퍼티

Id, Position, Rotation, Scale 프로퍼티 외에도 다음과 같은 컴포넌트별 프로퍼티가 있습니다:

Tile Source
타일맵에 사용할 타일 소스 리소스입니다.
Material
타일맵 렌더링에 사용할 메터리얼입니다.
Blend Mode
타일맵을 렌더링할 때 사용할 블렌드 모드입니다.

블렌드 모드

Blend Mode 프로퍼티는 컴포넌트 그래픽을 그 뒤에 있는 그래픽과 어떻게 블렌딩할지 정의합니다. 사용 가능한 블렌드 모드와 계산 방식은 다음과 같습니다:

Alpha
일반 블렌딩: src.a * src.rgb + (1 - src.a) * dst.rgb
Add
컴포넌트의 대응하는 픽셀 색상 값으로 배경을 밝게 합니다: src.rgb + dst.rgb
Multiply
컴포넌트의 대응하는 픽셀 값으로 배경을 어둡게 합니다: src.rgb * dst.rgb
Screen
Multiply의 반대입니다. 컴포넌트의 대응하는 픽셀 값과 배경을 밝게 합니다: src.rgb - dst.rgb * dst.rgb

프로퍼티 변경하기

타일맵에는 go.get()go.set()으로 조작할 수 있는 여러 프로퍼티가 있습니다:

tile_source
타일 맵 타일 소스(hash)입니다. 타일 소스 리소스 프로퍼티와 go.set()을 사용해 변경할 수 있습니다. 예제는 API 레퍼런스를 참고하세요.
material
타일 맵 메터리얼(hash)입니다. 메터리얼 리소스 프로퍼티와 go.set()을 사용해 변경할 수 있습니다. 예제는 API 레퍼런스를 참고하세요.

메터리얼 상수

기본 tilemap 메터리얼에는 go.set() 또는 go.animate()로 변경할 수 있는 다음 상수가 있습니다(자세한 내용은 메터리얼 매뉴얼을 참조하세요). 예:

go.set("#tilemap", "tint", vmath.vector4(1,0,0,1))
go.animate("#tilemap", "tint", go.PLAYBACK_LOOP_PINGPONG, vmath.vector4(1,0,0,1), go.EASING_LINEAR, 2)
tint
타일 맵의 색조(tint)입니다(vector4). vector4는 x, y, z, w가 각각 빨강, 초록, 파랑, 알파 색조에 대응하는 tint를 표현하는 데 사용됩니다.

프로젝트 설정

game.project 파일에는 타일맵과 관련된 몇 가지 프로젝트 설정이 있습니다.

외부 도구

Defold 타일맵으로 직접 익스포트할 수 있는 외부 맵/레벨 에디터가 있습니다:

Tiled

Tiled는 직교, 아이소메트릭, 육각형 맵에 널리 사용되는 잘 알려진 맵 에디터입니다. Tiled는 다양한 기능을 지원하며 Defold로 직접 익스포트할 수 있습니다. 타일맵 데이터와 추가 메타데이터를 익스포트하는 방법은 Defold 사용자 “goeshard”의 이 블로그 글에서 더 알아볼 수 있습니다.

Tilesetter

Tilesetter는 간단한 기본 타일에서 완전한 타일셋을 자동으로 생성하는 데 사용할 수 있으며, Defold로 직접 익스포트할 수 있는 맵 에디터도 포함합니다.