반응형

 

타워디펜스류 게임(Tower defence)를 개발을 간소화해주는 Unity Asset Store의 TDTK4의 메뉴얼 번역 / 간략화를 공유한다.

Asset Store의 TDTK4

TDTK4_Documentation

  • TDTK 유니티 3D 위한 코딩 프레임워크로 보통의 타워디펜스류 게임을 제작 있게 디자인되었다.
  • 기본적인 Unity 게임 개발 실력을 요구하며, TDTK 익숙하지 않다면 아래 영상을 참고하는 것을 추천한다.
  • TDTK 4.0 이전 버전과 달리 scratch 쓰여졌기 때문에 이전 버전과 호환되지 않는다.

개요

 

  • 어떻게 작동하는가
    • 예시 TDTK Scene 기본 게임 로직과 사용자와 상호작용을 있는 컴포넌트들을 가지고 있다.
    • 컴포넌트들로 게임 세팅을 바꿀 있다(wave, path )
    • 타워와 몬스터들의 Prefab들과 컨트롤 컴포넌트, Prefab 할당된 DB들이 포함되어있다.
  • 기본 컴포넌트와 클래스
    • GameControl : 게임 상태 게임 로직을 컨트롤
    • RscManager : 자원 관련 로직 포함
    • SpawnManager : 몬스터 스폰 로직을 컨트롤하고 스폰 정보를 포함.
    • TowerManager : 타워 세우는 로직을 컨트롤하고 지을 있는 타워 정보를 포함.
    • SelectControl : 타워를 선택하거나 타워를 지을 있는 위치를 보여주는 로직을 컨트롤
    • Path : 몬스터들이 지나다니는 경로를 설정
    • BuildPlatform : collider 포함한 게임 오브젝트. 그리드 형태를 띈다. 몬스터 경로가 지정되면, 빌드플랫폼은 몬스터들이 pathfinding 통해 걸어다닐 있는 그리드 역할을 수행한다.
  • 프리팹 컴포넌트와 클래스
    • UnitTower : 타워의 행동을 컨트롤하는 컴포넌트
    • UnitCreep : 몬스터의 행동을 컨트롤하는 컴포넌트
    • ShootObjecgt : 몬스터나 타워에 의해 발사된 발사체 컴포넌트.
  • 부가 컴포넌트와 클래스 (이것들은 런타임 자동으로 생성된다)
    • AbilityManager : 어빌리티 시스템의 로직을 컨트롤하고 사용가능한 어빌리티에 대한 정보를 포함한다.
    • PerkManager : 시스템의 로직을 컨트롤하고 사용가능한 퍽에 대한 정보를 포함한다.
    • Aster : 패스파인딩에 대한 로직을 컨트롤.
    • ObjectPoolManager : Object Pooling 관련된 로직을 컨트롤한다.
    • CameraControl : 카메라에 관련된 로직을 컨트롤한다.
    • Audiomanager : 모든 사운드이펙트를 포함하고 재생한다.
    • PathIndicator : 몬스터의 이동경로를 보여주는데 사용된다.
  • 레이어
    • Scene 다양한 오브젝트를 표현하기 위해 Unity Layer System 사용한다.
    • 사용시 혼란을 막기 위해 수동으로 레이어 이름 변경을 하는 것이 좋다.
      • Layer 25 : 'Terrian'
      • Layer 25 : 'Obstacle'
      • Layer 27 : 'Creep'
      • Layer 28 : 'Tower'
      • Layer 29 : 'Platform'
      • Layer 30 : 'Path'
      • Layer 31 : 'Terrian'
  • UI
    • UI 포함되어있지 않다.
    • 기본 적용된 UI 지우고 Custom UI 사용하라.

TDTK 사용법 (생략)

프리팹

  • 타워 prefab
    • 타워 prefab 게임 오브젝트에 UnitTower.cs 스크립트가 추가된 처럼 간단하다. 이는 보이지 않지만 타워가 건설될 있게 하고 다른 일반적인 타워가 하는 기능을 가능하게 한다. Mesh model 타워에게 선택적인 사항이다.
    • 타워가 타겟팅 되게하려면 collider 필요하다. Collider가 다른 컴포넌트와 겹쳐지지 않았는지 확인하고, 타워 게임 오브젝트의 레이어가 Tower 설정되어 있어야한다(layer 28). Collider 사이즈는 타워의 mesh/model 덮도록 설정되어야 한다.
    • 마지막으로 기본 타워 prefab 사용하여 계층 구조를 따르도록 권장된다. 특히 aim 포함된 터렛 형식의 타워가 지켜져야한다. 모든 정적인 mesh들은 transform정보가 StaticMesh 되어있어야 하고 조준을 위한 피봇을 사용한다면 모든 조준 부분은 TurretPivot transform 아래에 있어야 한다.
    • 타워 prefab이나 몬스터 prefab 등을 설정할 때는 타워 에디터에서 드롭다운 메뉴들을 사용하여 접근하여 설정하는 것을 권장한다. 이유는 scene에서 unit Inspector 통해 수정하는 것은 prefab instance 수정하는 것이기 때문이다. 타워 에디터를 통해 수정하면 prefab instance 모두 수정하기 때문에 클론들도 모두 바뀌어 유닛들의일관성을 유지하는데 도움이 된다.

타워 프리팻

  • Creep Prefab
    • 타워와 비슷하게 간단하다.
    • Layer Creep(layer 27) 설정한다.
    • 필요한 상황이 아니라면 prefab Rigidbody 부여하지 않는 것이 좋다. 움직이는 코드와 충돌이 가능성이 높다.
    • 계층적 구조를 따르는 것을 권장한다.
  • ShootingObject Prefab
    • 발사체는 타워나 몬스터가 타겟을 맞추기 위해 발사한 공격 시점부터 맞을 때까지 보이는 물체다.
    • 타워와 비슷하게 간단하다.
    • 가지 타입의 발사체가 있고 각자 다른 시각적 목적을 가진다.
    • Projectile : 발사부터 피격 전까지 움직이는 전형적인 물체. Projectile 발사체는 곡선으로 구현되도록 설정할 있다.
    • Beam : 대상에게 직선의 효과를 주기 위해 사용된다. 발사체가 발사되고 대상에게 적중될 때까지의 시간을 타이머가 측정한다.
    • Effect : 발사체가 필요하지 않은 공격이다. 발사체가 발사되고 나서 대상에게 적중될 때까지의 시간을 타이머가 측정한다.

 

어떻게 작동하는가

  • 아이템 Database
    • TDTK prefab들과 인게임의 모든 아이템을 저장하기위해 중앙화된 데이터베이스를 사용한다.
    • 인게임 아이템은 에디터에서 간단한 클릭으로 생성할 있다. 그러나 prefab 데이터베이스에 추가되기 전에 수작업으로 생성해줘야한다.  추가되면 에디터를 통해 접근할 있다. 추가되지 않은 prefab 게임에 보이지 않을 것이다.
    • 타워 prefab 타워 매니저를 통해 개별적으로 활성화/비활성화가 가능하다. 비활성화 타워는 Scene에서 사용이 불가능하다. 그러나 비활성화된 타워는 PerkSystem 통해 Scene 추가될 있다. 타워 Prefab BuildPlatform에서 개별적으로 비활성화가 가능하다. 타워가 플랫폼에서 비활성화 되었을 플레이어는 플랫폼에 타워 prefab 건설할 없다.
    • Perk PerkManager 창에서 개별적으로 활성화/비활성화가 가능하다. 비활성화된 perk Scene 이용이 불가능하다.
  • 데미지 테이블
    • 데미지 테이블은 유닛들 간의 가위바위보 형식으로 만들어진 표다. 데미지 테이블 에디터를 통해 데미지들과 아머 타입을 설정할 있다. 유닛들마다 대미지타입과 아머 타입을 지정할 있고 대미지 타입에 따라 공격 효과를 지정할 있다.

대미지 테이블

  • 타워를 위한 업그레이드 시스템
    • 타워 업그레이드에는 가지 방식이 있다. 번째는 타워는 그대로 있고 스텟이 변화되는 방식이며 번째는 기존의 타워를 지우고 새로운 타워를 생성하는 완전한 업그레이드 방식이다.
    • 타워 에디터 창에서 타워의 레벨을 여러개 추가할 있다. 번째 창이 타워가 세워졌을 기본 스텟이 된다. 이후 업그레이드를 통해 레벨이 순차적으로 올라간다.
    • Next upgrade 다른 타워 prefab 지정하여 타워 업그레이드를 있다. 업그레이드 중에, 업그레이드 되는 기존 타워는 파괴되고 NextUpgrade 명시된 타워가 생성된다.
    • 타워 업그레이드 방법은 서로 배타적이어서 가지 모두를 가질 있다. 그러나 스텟 업그레이드가 항상 우선된다. 이는 타워는 에디터에 지정된 모든 스텟 레벨업을 후에야 다음 타워로 넘어갈 있다는 것을 의미한다.
    • NextUpgrade 여러 타워를 추가하여 여러가지 업그레이드 루트를 제시할 있다. TDTK 기본 UI 어떤 타워로 업그레이드 할지 버튼을 자동으로 생성해준다.

타워 업그레이드 시스템

  • 타겟을 향해 조준 발사하는 유닛
    • 터렛 타입의 유닛은 타겟을 향해 직선으로 발사체를 발사하여 공격한다. 대부분의 경우 당신은 유닛이 타겟을 향해 조준하고 발사체를 정확한 위치로 발사하길 원할 것이다.
    • 조준을 위해 코드가 turret-pivot barrel-pivot 활성화된 타겟을 향해 회전하도록 것이다. 변형은 타워에디터 창에서 설정이 가능하다. turret-pivot x축과 y 모두 회전 가능한 메인 피봇으로 사용된다. 반면 Barrel-pivot 선택사항이고 turret-pivot 하위객체로 고정된다. Barrel-pivot x축으로만 회전한다.
    • 터렛이 정확한 방향으로 조준하도록 하기 위해 당신은 turret-pivot babbel-pivot rotatin 속성을 (0,0,0)으로 설정해야 한다.
    • 터렛 에임 잡는 절차 있음. 추후 안될 메뉴얼 참고하기.

터렛 에임

User Interface에 대해

  • 기본 UI 설정
    • 기본UI Scene 새로 만들 때마다 추가된다. 
    • UI 게임 오브젝트에 있는 UIControl 컴포넌트를 통해 주요 세팅들을 바꿀 있다.
  • 기본 UI 대체
    • 기본 UI 모듈 디자인과 기능성을 염두에 두고 제작되었다. 이는 기본적인 게임플레이와 프레임워크 내의 사용 가능한 기계류와의 상호작용을 제공한다. 이는 달리 말하면 당신의 UI 대체할 있다는 것이다. UI 게임 오브젝트를 TDTK Scene에서 지워 기본 UI 제거할 있다.
    • 'TDTK/Scripts/UI' 스크립트들을 참고하여 당신의 UI 만들 있다.
    • UI에는 유닛의 HP, 타워 건설 상태도 포함되어 있음을 알아두기 바란다. 기본 UI 지우면 또한 지워진다.
  • Ability System
    • 생략
  • Perk Menu
    • 생략

 

URP에 관해서

  • URP 머테리얼과 카메라 가지 이유때문에 지원되지 않는다. 하지만 몇몇 다른 작업들은 TDTK 내장된 URP 사용해 가능하다.

 

 

어빌리티와 Perk 시스템은 사용하지 않을 것이라 번역을 생략했다.

사용법도 해석을 해놓고 보기보다는 사진 자료가 많아 보고 따라하면 될 거라 판단하여 번역하지 않았다.

 

혹여나 타워디펜스 게임을 만들고자 하는데, TDTK에 대한 정보가 없어 도입을 꺼렸던 분들께 조금의 도움이 되었길 바란다.

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기