> For the complete documentation index, see [llms.txt](https://docs.sandbox.game/the-game-maker-academy_kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sandbox.game/the-game-maker-academy_kr/assets/presets.md).

# 프리셋

{% embed url="<https://youtu.be/Tes-SfuQk74>" %}

## 프리셋이란 무엇인가요? <a href="#what-is-a-preset" id="what-is-a-preset"></a>

프리셋이란 선호하는 파라미터, 비헤이비어, 컴포넌트, 메시지 또는 트리거를 매번 다시 적용할 필요없이 재사용할 수 있도록 오브젝트의 설정을 저장하는 방법을 말합니다.

이를 통해 특정 오브젝트를 재사용할 때 시간을 절약할 수 있을뿐만 아니라 트리거가 발생하기 전까지 경험에 나타나지 않을 수 있는 오브젝트를 사용자 지정할 수 있습니다.

## 프리셋 생성하기 <a href="#creating-a-preset" id="creating-a-preset"></a>

쉽고 간단하게 프리셋을 생성할 수 있는 방법을 알아보겠습니다.

예시로 적을 물리치면 코인을 드롭하는 프리셋을 생성해 보겠습니다.

#### **애셋 선택하기** <a href="#choose-an-asset" id="choose-an-asset"></a>

커스텀할 **애셋을 선택**하고 **장면 속으로 드래그**합니다.

이 예시에서는 해골 전사(Skeleton Warrior)를 이용해 보겠습니다.

<figure><img src="/files/v1ggtlbi3PPnW6LhYRAf" alt=""><figcaption><p>장면에 오브젝트 추가하기 – 클릭하여 확대</p></figcaption></figure>

#### **오브젝트 커스텀하기** <a href="#customize-the-object" id="customize-the-object"></a>

속성 패널에서 비헤이비어와 컴포넌트에 필요한 편집을 수행할 수 있습니다.

이 해골 전사가 플레이어를 공격하도록 만들기 위해 **비헤이비어(Behaviour)을 열어 근거리 적(Melee Enemy)**&#xC744; 선택합니다.

{% hint style="info" %}
근거리 적 비헤이비어는 오브젝트에 기본으로 체력(Health) 컴포넌트를 추가하므로, 플레이어가 해당 적을 물리칠 수 있습니다.
{% endhint %}

**로직 편집(Edit Logic)**&#xC744; 열어 필요성에 맞게 파라미터를 조정합니다.

<figure><img src="/files/NbauEHjNqETFQ4sAknJy" alt=""><figcaption><p>프리셋 커스텀하기 – 클릭하여 확대</p></figcaption></figure>

이 해골 전사가 패배했을 때 코인을 드롭하도록 하려면 **컴포넌트 추가(Add Components)**&#xB97C; 클릭하고 **드롭(Drop)**&#xC744; 선택합니다.

드롭 조건(Drop condition)을 ‘사망(Death)’로 남겨두고 드롭 유형(Type of Drop)을 비헤이비어(Behaviour)으로 변경합니다.

{% hint style="info" %}
*드롭 유형(Type of Drop)*&#xC5D0;는 프리셋 옵션 또한 존재합니다. 프리셋을 저장하면 이를 이용하여 아직 경험에 등장하지 않은 요소를 커스텀할 수 있습니다.
{% endhint %}

**생성될 애셋(Asset to Spawn)**&#xC73C;로는 마켓플레이스에서 판매하는 반짝이는 SAND 코인(Flashing SAND Coin)을 이용하고 **수집(Collectable) 컴포넌트**를 추가하여, 해당 아이템 드롭 시 아바타가 수집할 수 있도록 합니다.

<figure><img src="/files/U7nS6PmLwk20p4hIkCGC" alt=""><figcaption></figcaption></figure>

## 프리셋 저장하기 <a href="#save-a-preset" id="save-a-preset"></a>

커스텀 완료한 비헤이비어와 컴포넌트를 갖춘 오브젝트가 완성되었다면, 프리셋으로 저장할 준비가 되었습니다.

프리셋을 저장하려면 **왼편의 툴바**로 이동하여 **플러스 모양이 있는 정육면체 아이콘**<img src="/files/vzrIteeCvJmmufhlM4j2" alt="" data-size="line">을 선택합니다.

{% hint style="info" %}
오브젝트를 선택하면 프리셋 도구 아이콘은 흰색<img src="/files/uSGiNJ1IHr3YjzevOk4A" alt="" data-size="line">에서 파란색 <img src="/files/vzrIteeCvJmmufhlM4j2" alt="" data-size="line">으로 변경됩니다.
{% endhint %}

**팝업 창**에는 이미 저장한 프리셋뿐만 아니라 새로운 프리셋을 생성할 수 있는 옵션이 표시됩니다.

**새롭게 생성(Create New)**&#xC744; 클릭하여 프리셋 이름을 설정한 뒤 완료(Done)를 클릭합니다.

<figure><img src="/files/wwzHcUlrokQGWQGvFWkp" alt=""><figcaption><p>프리셋 저장하기 – 클릭하여 확대</p></figcaption></figure>

간단하죠? 이제 해당 프리셋을 사용할 준비가 되었습니다.

## 내 프리셋에 액세스하기 <a href="#accessing-your-presets" id="accessing-your-presets"></a>

프리셋에 액세스하려면 **L**키를 눌러 라이브러리를 열고 화면 왼편의 **필터 목록**에서 **프리셋(Preset)을 클릭**합니다.

{% hint style="info" %}
장면에서 프리셋의 단일 인스턴스가 삭제되는 경우에도 라이브러리에서 쉽게 복구할 수 있습니다.
{% endhint %}

프리셋은 이미 커스텀된 비헤이비어, 컴포넌트 및 파라미터가 설정되어 있고 바로 사용할 준비가 되어있다는 점을 제외하고는 기타 오브젝트와 동일하므로, **툴바에 추가**하거나 **장면에 직접 배치**할 수 있습니다.

{% hint style="info" %}
프리셋은 흰색 아이콘으로 구분할 수 있습니다.
{% endhint %}

<figure><img src="/files/GD8v9m1IO9ODQeb4QaOJ" alt=""><figcaption><p>프리셋에 액세스하기 – 클릭하여 확대</p></figcaption></figure>

## 프리셋 업데이트하기 <a href="#update-a-preset" id="update-a-preset"></a>

편집이 필요할 경우 손쉽게 프리셋을 업데이트할 수 있습니다.

프리셋을 업데이트하려면 **라이브러리를 열고** 원하는 프리셋을 검색하여 **장면으로 드래그**한 뒤 선택합니다.

원하는 변경사항을 적용하세요. 아래 예시에서는 해골 전사의 전체 체력을 감소하여 플레이어가 더 쉽게 무찌를 수 있도록 설정했습니다.

오브젝트를 선택하고 왼쪽 툴바의 프리셋 도구를 클릭하세요.

프리셋 창이 뜨면 **기존의 프리셋을 선택**하고 이름을 변경합니다.

**완료(Done)**&#xB97C; 클릭하여 업데이트를 마칩니다.

<figure><img src="/files/seR7yTkKdhTokQfi0nD1" alt=""><figcaption><p>프리셋 업데이트하기 – 클릭하여 확대</p></figcaption></figure>

{% hint style="info" %}
프리셋 이름을 포함한 모든 변경사항은 라이브러리와 애셋 생성기(Asset Spawner) 또는 드롭(Drop) 컴포넌트와 함께 사용된 모든 위치에서 업데이트됩니다.
{% endhint %}

{% hint style="warning" %}
프리셋을 업데이트해도 경험에서 이전 버전의 모든 인스턴스가 자동으로 업데이트되지는 않습니다. 위계를 사용하여 이를 새로운 프리셋으로 교체합니다.
{% endhint %}

## 프리셋으로 교체하기 <a href="#replace-with-a-preset" id="replace-with-a-preset"></a>

프리셋을 업데이트하고 경험 속에서 구버전 애셋에 해당 변경사항을 적용하려면 위계를 이용할 수 있습니다.

{% hint style="info" %}
이 방법을 이용하여 **오브젝트를 완전히 다른 프리셋으로 교체**할 수도 있습니다.
{% endhint %}

오브젝트를 프리셋으로 교체하려면 왼쪽 툴바 하단의 파란색 버튼<img src="/files/BK5hsavnSWhN4GTcleAL" alt="" data-size="line">을 클릭하여 위계를 엽니다.

그런 다음, 위계 목록에서 교체하고 싶은 오브젝트를 선택합니다.

{% hint style="info" %}
**뷰포트**에서 오브젝트를 **클릭**하여 위계에서 강조 표시할 수 있습니다.
{% endhint %}

선택 후, 오브젝트 이름 옆 햄버거 메뉴를 클릭합니다.

드롭다운 메뉴에서 프리셋으로 교체하기(*Replace with Preset*)을 클릭하고 팝업창에서 사용하고 싶은 프리셋을 선택합니다.

<figure><img src="/files/vSgGaD5XjldH3BGaSJdI" alt=""><figcaption><p>프리셋으로 교체하기 – 클릭하여 확대</p></figcaption></figure>

완료(Done)을 클릭하면 오브젝트가 선택된 프리셋으로 교체됩니다.

## 프리셋 애셋 변경하기 <a href="#change-a-presets-asset" id="change-a-presets-asset"></a>

프리셋이 애셋을 생성하는 데 사용된 인스턴스를 유지하며 새로운 오브젝트로 프리셋을 완전히 변경할 수 있습니다.

{% hint style="warning" %}
프리셋을 새로운 오브젝트로 변경하면 기존의 커스텀 내역은 유지되지 않습니다.
{% endhint %}

교체하려는 애셋을 **장면으로 드래그**하여 비헤이비어와 컴포넌트에 필요한 변경사항을 적용합니다.

새로운 **오브젝트를 선택**하고 **프리셋 도구**를 열어 교체하려는 프리셋을 검색합니다.

이 예시에서는 해골 전사 프리셋을 교체해 보겠습니다.

프리셋의 이름을 **새로 설정**하고 **완료(Done)**&#xB97C; 클릭합니다.

<figure><img src="/files/iMKlxA53mYYfNk8SS5KM" alt=""><figcaption><p>프리셋 애셋 변경하기 – 클릭하여 확대</p></figcaption></figure>

완료를 클릭하는 즉시 프리셋의 새로운 이름, 새로운 애셋, 관련 비헤이비어, 컴포넌트, 파라미터가 라이브러리와 생성기와 함께 사용된 기존의 프리셋이 있는 장소에 반영됩니다.

{% hint style="warning" %}
이 방법으로 <mark style="color:red;">**기존 오브젝트와 커스텀을 완전히 재정의**</mark>하게 됩니다.

라이브러리의 프리셋 섹션에는 더 이상 백업 파일이 존재하지 않습니다.

경험에서 교체하려는 프리셋 버전이 아직 없으나 여전히 해당 버전을 사용하려면 프리셋 설정을 다시 진행해야 합니다.
{% endhint %}

{% hint style="info" %}
이러한 방식으로 기존의 프리셋을 교체하려면, 경험 내 다른 영역에서 해당 프리셋을 사용할 가능성이 있는 경우 진행하기 전에 **프리셋의 복사본을 만들어 두는 것**이 좋습니다.
{% endhint %}

## 프리셋 삭제하기  <a href="#delete-a-preset" id="delete-a-preset"></a>

프리셋이 더 이상 필요하지 않거나 너무 많은 프리셋 버전이 존재할 경우, 원하지 않는 항목을 삭제하여 목록을 정리할 수 있습니다.

**라이브러리**를 열어 원하는 프리셋을 찾아 **마우스 오른 클릭**하여 **삭제(Delete)**&#xB97C; 선택합니다.

<figure><img src="/files/0I5J1PLYTjh0ebECeOeJ" alt=""><figcaption><p>프리셋 삭제하기 – 클릭하여 확대</p></figcaption></figure>

{% hint style="warning" %}
현재 드롭 또는 스폰(생성)에 해당 프리셋을 사용하는 비헤이비어 또는 컴포넌트는 더 이상 의도대로 작동하지 않으니 주의하세요.
{% endhint %}

## 프리셋 생성하기 <a href="#spawning-presets" id="spawning-presets"></a>

프리셋은 경험에서 **트리거**된 이후에만 한 번 나타나는 **애셋을 커스텀**하는 데 사용할 수 있습니다.

#### 기본 vs 프리셋 <a href="#default-vs-preset" id="default-vs-preset"></a>

프리셋 없이 애셋 생성기(Asset Spawner) 또는 드롭(Drop) 컴포넌트를 이용할 때는 제한된 수의 커스텀만 지정할 수 있습니다.

예를 들어, 생성될 애셋(*Asset to Spawn*)에 체력(Health) 컴포넌트를 추가할 수 있지만 오브젝트가 얼마의 체력을 가질 수 있는가와 같은 변수는 커스텀할 수 없습니다.

이 문제는 프리셋을 사용함으로써 해결할 수 있습니다. 생성될 애셋(*Asset to Spawn*)에 사용할 때모든 커스텀은 이미 저장되어 유지되기 때문입니다.

#### 프리셋 생성하기 <a href="#spawning-a-preset" id="spawning-a-preset"></a>

특정 오브젝트가 파괴되었을 때에만 제작한 해골 전사가 나타나게 만들고 싶다고 가정해 봅시다.

이를 위해 먼저 필요한 애셋을 **장면으로** **드래그**합니다. 해골 전사가 숨어있을 상자를 사용합니다.

우선 오브젝트에 **체력(Health) 컴포넌트**를 추가하여 **공격하면 파괴**될 수 있도록 만들어야 합니다.

그리고 **드롭(Drop) 컴포넌트**를 추가하고 **드롭 유형(Type to Drop)**&#xC744; **프리셋(Preset)**&#xC73C;로 변경하여 프리셋 팝업창에서 해골 전사(Skeleton Warrior)를 선택합니다.

<figure><img src="/files/uXo9XCTg49J2amyQ3WlA" alt=""><figcaption><p>프리셋 생성 – 클릭하여 확대</p></figcaption></figure>

이제 상자가 파괴되면 프리셋에서 정의한 모든 변수 및 수집할 수 있는 코인을 위한 드롭(Drop)컴포넌트가 적용된 커스텀 해골 전사가 나타나게 됩니다.

## 프리셋 쌓기 <a href="#stacking-presets" id="stacking-presets"></a>

프리셋의 기본을 익혔다면, 프리셋을 생성하는 비헤이비어(Behaviours)와 컴포넌트(Components)와 함께 프리셋이 이용될 때 각 프리셋을 서로 겹쳐 쌓을 수 있음을 알게 됩니다.

#### 새 프리셋 생성하기 <a href="#create-a-new-preset" id="create-a-new-preset"></a>

가령, 해골 전사가 드롭하는 코인이 기본 설정 그 이상의 커스텀을 허용하는 프리셋이 될 수도 있습니다.

그러면 이름을 변경하고, 수집(Collectable) 컴포넌트를 조정하고, 생성 시 떠다니는 모션을 적용할 수 있는 새(Bird) 비헤이비어 등을 시험해 볼 수도 있는 가능성이 열립니다.

변경 사항이 적용되면 프리셋 도구를 클릭하고 새로운 생성(Create New)을 클릭하여 이름을 지정해 프리셋을 저장합니다.

<figure><img src="/files/Idz7UeKDnhRbxIvX4l48" alt=""><figcaption><p>코인 프리셋 생성하기 – 클릭하여 확대</p></figcaption></figure>

#### 기존 프리셋에 새로운 프리셋 추가하기 <a href="#add-new-preset-to-an-exisiting-preset" id="add-new-preset-to-an-exisiting-preset"></a>

새로운 프리셋이 저장되면 장면 속에 해골 전사 프리셋을 배치하여 새로운 코인 프리셋으로 드롭(Drop) 컴포넌트를 업데이트합니다.

해골 전사를 선택하고 드롭(Drop) 컴포넌트의 드롭 유형(Type of Drop)을 비헤이비어(*Behaviour*)에서 프리셋(*Preset*)으로 변경하고 새롭게 커스텀한 마법 코인(Magic Coin) 프리셋을 선택합니다.

프리셋 도구를 클릭, 기존 프리셋을 선택하여 변경사항을 저장하고 완료(Done)를 클릭하세요.

<figure><img src="/files/KWkznUtNISdtvNTxwsJO" alt=""><figcaption><p>Ad드롭 컴포넌트에 프리셋 추가 – 클릭하여 확대</p></figcaption></figure>

이제 플레이어가 해골 전사 프리셋을 무찌르면 마법 코인 프리셋이 드롭됩니다.

#### 별도 계층 추가하기 <a href="#adding-another-layer" id="adding-another-layer"></a>

이 변경사항은 생성기(Spawner)와 함께 프리셋이 사용된 모든 영역에 반영되므로, 이 경우 상자의 드롭(Drop) 컴포넌트에 이러한 변경이 적용됩니다.

이쯤에서 예상하셨겠지만, 같은 단계를 따라 상자도 프리셋으로 저장할 수 있습니다.

<figure><img src="/files/CKOpxPRC7gASTpnHPQOq" alt=""><figcaption><p>다른 프리셋에 쌓은 프리셋 저장하기 – 클릭하여 확대</p></figcaption></figure>

이제 **상자 프리셋**은 **해골 전사 프리셋**을 생성하고 **해골 전사 프리셋**은 **마법 코인 프리셋**을 생성합니다.

**상자 프리셋**이 **라이브러리**에 저장되었기 때문에 필요한 만큼 장면으로 드래그하여 배치할 수 있으며, 모든 인스턴스는 지금까지 생성한 모든 커스텀을 포함하게 됩니다.

## 패어런팅과 프리셋 <a href="#parenting-and-presets" id="parenting-and-presets"></a>

마지막 팁으로 **프리셋**에서 **위계 설정**을 저장하는 방법입니다.

어느 한 오브젝트가 다른 오브젝트들의 부모일 경우, 프리셋은 이러한 위계를 유지합니다.

프리셋이 장면에 배치될 때 부모 오브젝트에 연결되어 있는 자식 오브젝트 또한 장면에 배치되며위계가 유지됩니다.

책상 애셋에 식물과 의자 애셋을 추가해 커스텀하여 이 예시를 함께 알아보겠습니다.

이 배치를 이동하고 싶을 경우에 대비해 책상을 움직일 때 이 두 오브젝트도 함께 움직일 수 있도록 위계를 설정하겠습니다.

#### 오브젝트 패어런팅 <a href="#parenting-objects" id="parenting-objects"></a>

모든 **오브젝트가 장면 안**에 있는지 확인하세요.

왼편 툴바 하단의 파란색 버튼<img src="/files/BK5hsavnSWhN4GTcleAL" alt="" data-size="line">을 클릭하여 **위계를 엽니다**.

위계 창이 열리면 사용할 **오브젝트를 찾습니다**.

식물과 의자를 책상에 패어런팅하기 위해 각 오브젝트를 한 번에 하나씩 클릭하고 꾹 누른 채 위계 목록의 책상 오브젝트로 드래그합니다.

<figure><img src="/files/4sFonSAMwRWxokINAXLu" alt=""><figcaption><p>오브젝트 패어런팅 – 클릭하여 확대</p></figcaption></figure>

이제 책상이 이동하면 식물과 의자도 함께 이동하는 것을 확인할 수 있습니다.

#### 프리셋으로 부모 추가하기 <a href="#add-parent-as-preset" id="add-parent-as-preset"></a>

이 설정을 여러 번 사용하려면 부모 애셋(이 경우에는 책상)을 선택하고 프리셋 도구를 클릭하여 새로운 프리셋으로 저장합니다.

이제 라이브러리로 가서 책상 프리셋을 장면으로 드래그할 수 있으며, 여기에는 부모 오브젝트에 연결된 다른 모든 오브젝트들이 포함되어 있습니다. 부모 오브젝트가 이동하면 모든 자식 오브젝트도 함께 이동합니다.

<figure><img src="/files/YTcLbLQWhofCJMPcSJIc" alt=""><figcaption><p>부모 프리셋 생성하기 – 클릭하여 확대</p></figcaption></figure>

이는 간단한 예시이나, 여러 오브젝트, 비헤이비어, 컴포넌트, 그리고 메시지의 복잡한 구성을 위해서는 간단한 원리를 기반으로 내용을 터득하고 이해해야 합니다.

이러한 원리를 이용해 플랫폼 이동을 활성화하는 스위치가 포함된 플랫폼을 생성할 수 있습니다.

스위치를 플랫폼에 패어런팅하여 플랫폼 이동에 따라 스위치 또한 함께 이동할 수 있도록 합니다.

<figure><img src="/files/By8Ld7SqSo1TkF8eJb5x" alt=""><figcaption><p>로직이 적용된 부모 프리셋 – 클릭하여 확대</p></figcaption></figure>

매번 새롭게 제작하지 않고 이 설정을 경험 속에서 여러 번 사용하려면, 프리셋으로 저장한 뒤 라이브러리에서 검색하여 쉽게 배치할 수 있습니다.
