UDN
Search public documentation:

ArchetypesTechnicalGuideKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > 언리얼스크립트 > 아키타입 테크니컬 가이드
UE3 홈 > 게임플레이 프로그래밍 > 아키타입 테크니컬 가이드

아키타입 테크니컬 가이드


문서 변경내역: Ron Prestenback 작성. Jeff Wilson 업데이트. 홍성진 번역.

개요


아키타입(Archetype)이란 이미 있는 액터(와 그 프로퍼티 값, 컴포넌트, 오브젝트 리퍼런스를 포함해서) 그대로를 스냅샷으로 찍은 다음 바로 놓을 수 있는 콘텐츠 자원으로, 템플릿 기능을 말합니다. 아키타입은 디자이너가 관리하는 일반 언리얼 패키지 파일에 저장되며, 프로그래머의 도움 없이도 디자이너가 직접 아키타입의 인스턴스 를 맵, 시퀸스, UI 등에 놓을 수 있습니다. 디자이너가 아키타입의 프로퍼티 내 디폴트 값을 변경한다면, 해당 프로퍼티를 따로 건드린(커스텀) 인스턴스를 제외하고, 레벨에 있는 그 아키타입의 모든 인스턴스에 자동으로 전파됩니다. 아키타입 프로퍼티를 변경하면 현재 열린 레벨의 인스턴스에는 즉시 전파되며, 로드되지 않은 패키지에 있는 인스턴스에는 다음 번 로드될 때 전파됩니다.

언리얼 에디터의 아키타입

아키타입은 에디터에서, 클래스와 마찬가지 방식으로 놓을 수 있는 리소스로 나타납니다. 사실 아키타입은 "스크립트 없는 클래스"로 이해하는 것이 좋습니다. 아키타입의 목적은 액터의 클래스 디폴트와는 다른 디폴트 프로퍼티 세트를 사용하여 액터를 놓을 수 있도록 하기 위함입니다. 아키타입은 콘텐츠 브라우저에 다른 리소스 타입과 동일한 방식과 함수성을 제공하는 식으로 나타나며, 그 안에서도 아키타입을 포함하는 패키지만 콘텐츠 브라우저의 패키지 목록 등에 나타나도록 할 수 있습니다.

아키타입을 "스크립트 없는 클래스"로 간주할 수는 있지만, 액터 클래스 브라우저에는 나타나지 않습니다.

아키타입 인스턴싱


언리얼 에디터에서

아키타입을 생성했으면 이제 레벨에서 사용해야 하겠습니다. 아키타입 인스턴스를 놓는 절차는 일반 액터를 놓는 절차와 매우 유사합니다. 그 자세한 내용에 대해서는 Using Archetypes KR 페이지를 참고하시기 바랍니다.

언리얼스크립트로

코드에서 아키타입 인스턴스를 생성하는 방법은 두 가지 있습니다.

언리얼스크립트에서, 오브젝트는 new 연산자를 사용하여 생성합니다. 언리얼스크립트 new 연산자는 파라미터를 다섯 개 받습니다. 마지막 파라미터가 새 오브젝트에 사용할 템플릿입니다. 언리얼스크립트에서 아키타입을 인스턴싱하려면, 템플릿 파라미터에 대한 값으로써 기존 아키타입 리퍼런스를 전달하십시오.

  var StaticMesh MeshArchetype;
  var StaticMeshActor MeshActorTemplate;
  
  // 오브젝트 아키타입 인스턴싱 예제
  function CreateObjectArchetype()
  {
  local StaticMesh MeshInstance;
  
  // 템플릿으로 MeshArchetype 값을 사용하여 임시 패키지 안에 스태틱 메시 오브젝트를 새로 생성
  MeshInstance = new Class'Object'(MeshArchetype);
  }
  
  // 액터 아키타입 인스턴싱 예제
  function CreateActorArchetype()
  {
  local StaticMeshActor MeshActorInstance;
  
  // 이제 Archetype 리퍼런스를 템플릿으로 전달하여 Actor 스폰
  MeshActorInstance = Spawn(class'StaticMeshActor', None, 'None', Location, Rotation, MeshActorTemplate);
  }
  
  defaultproperties
  {
    MeshArchetype=Object'SomeArchetypePackge.MyArchetype'
    MeshActorTemplate=StaticMeshActor'SomeArchetypePackage.SMArchetype'
  }
  

아키타입과 프리팹의 차이점


아키타입이 프리팹(Prefab)과 다른 점은 다음과 같습니다:
  1. 프리팹은 아키타입으로 구성됩니다.
  2. 프리팹은 (키즈멧) 시퀸스를 포함할 수 있습니다.
  3. 프리팹은 프리팹 내의 오브젝트 리퍼런스를 보존하고 옮깁니다.

프리팹 관련 상세 정보는 Using Prefabs KR 페이지를 참고하시기 바랍니다.