> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/creator/content-creator-ko/sdk7/kinds-of-projects/scene-metadata.md).

# 씬 메타데이터

씬을 설정하고 메타데이터를 구성하는 방법을 알아보세요.

씬은 공간적으로 구분된 Decentraland 프로젝트로, 하나 또는 여러 파셀에 매핑됩니다. 씬이 Decentraland Genesis City 맵에 배포되면, 플레이어는 씬의 좌표를 방문하여 이를 체험할 수 있습니다. 씬이 [월드](/creator/content-creator-ko/sdk7/publishing/publishing-options.md#decentraland-worlds)에 배포되면, 플레이어는 URL을 통해 방문할 수 있습니다.

다음 [씬의 파일](/creator/content-creator-ko/sdk7/kinds-of-projects/scene-files.md) 에서 씬 프로젝트에서 사용되는 파일 목록을 확인하세요.

## 메타데이터

씬의 메타데이터를 편집하려면 [Creator Hub의 Scene Editor](/creator/content-creator-ko/scene-editor/get-started/about-editor.md)Scene Editor에서 씬을 열고 다음을 클릭하세요: **연필 아이콘**.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-d2147688ebde75948ba26a9fbe1261f9abdc66c7%2Fpencil-icon.png?alt=media\&token=21677d31-8915-4809-a60a-6674c7497d98)

이렇게 하면 씬 메뉴가 열리며, 여러 속성을 구성할 수 있습니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-5a3754defec68c898717a9468d29cf7d4e1d973e%2Fmetadata-ui.png?alt=media\&token=bab8a071-2670-4426-a54b-3c828aacb380)

또는 다음을 직접 편집할 수도 있습니다. `scene.json` 파일로, 이 모든 값이 여기에 저장됩니다.

{% hint style="warning" %}
**📔 참고**: 다음에 언급되지 않은 사용자 정의 필드를 `scene.json` 파일에 추가하지 마세요. 씬 로드에 문제가 생길 수 있습니다.
{% endhint %}

## 씬 제목, 설명, 이미지

플레이어의 관심을 끌고 무엇을 기대해야 하는지 알려 주기 위해 씬에 제목, 설명, 썸네일 이미지를 제공하는 것이 매우 중요합니다.

플레이어는 지도에서 씬의 파셀을 선택할 때 모달에 표시되는 이 내용을 보게 됩니다. 또한 다음으로 [텔레포트될 때](/creator/content-creator-ko/sdk7/interactivity/external-links.md) 표시되는 확인 화면에서도 이 내용을 보게 됩니다. 여기에 매력적인 데이터를 설정하면 씬으로의 유입을 크게 늘리는 데 도움이 될 수 있습니다.

플레이어가 월드를 탐색하며 씬에 들어오면, 미니맵 아래에서 씬 제목을 읽을 수 있습니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-5b757762ae3f0480ff5f7d65a67e2d077be5847b%2Fscene-name.png?alt=media\&token=8f433eb7-6323-49ba-bacd-2a776cab947b)

Scene Editor의 씬 메뉴를 통해 이 데이터를 추가하세요.

다른 개발자가 여러분에게 연락할 수 있기를 원한다면, 씬에 연락처 정보도 추가할 수 있습니다.

{% hint style="info" %}
**📔 참고**: 월드는 씬의 메타데이터와 별도로 자체 이름, 설명, 썸네일을 유지합니다. World에 단일 씬이 포함되어 있다면, 게시할 때마다 World의 메타데이터는 씬의 메타데이터에서 업데이트됩니다. 여러 씬이 포함되어 있다면, World의 메타데이터는 독립적이며 **관리** 탭의 Creator Hub를 참조하세요. [월드 메타데이터 vs 씬 메타데이터](/creator/content-creator-ko/scene-editor/publish/publish-scene.md#world-metadata-vs-scene-metadata).
{% endhint %}

### 씬 썸네일

썸네일은 `navmapThumbnail` 필드에 설정됩니다. 반드시 *.png* 또는 *.jpg* 이미지여야 하며 **16:9** 종횡비를 가져야 합니다. *1920x1080* 픽셀이 목표 크기입니다. 같은 16:9 비율만 유지한다면 다른 크기도 작동합니다.

플랫폼의 일부에서는 썸네일의 중앙 *1080x1080* 픽셀로 잘라낸 축소 정사각형 버전을 표시합니다. 텍스트나 로고처럼 중요한 요소는 잘리지 않도록 그 안전 영역 안에 넣어 두세요.

{% hint style="warning" %}
**📔 참고**: Creator Hub는 16:9가 아닌 이미지를 거부합니다. 수동으로 `navmapThumbnail` 를 다른 형태의 이미지로 설정하면, 이를 표시하는 클라이언트에서 예기치 않게 늘어나거나 잘릴 수 있습니다. 다음을 참조하세요. [씬 썸네일](/creator/content-creator-ko/scene-editor/configure/scene-settings.md#scene-thumbnail).
{% endhint %}

![씬 썸네일 안전 영역: 전체 1920x1080 이미지이며, 중앙의 1080x1080 정사각형이 안전 영역으로 표시되고 왼쪽과 오른쪽 영역은 잘리는 부분으로 표시됨](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-3d512bbb08aca6a9630f7229176099dd565100b5%2Fscene-thumbnail-safe-area.png?alt=media\&token=0bf6d6ff-956e-4894-b621-19f8287c200c)

의 이미지는 `navmapThumbnail` 프로젝트 폴더의 이미지 파일 경로여야 합니다. 다른 곳에 호스팅된 이미지의 URL 링크일 수도 있습니다.

{% hint style="warning" %}
**📔 참고**: 이미지를 다른 곳에 호스팅한다면, 다른 사이트에서 콘텐츠를 표시할 수 있도록 CORS 정책이 허용적인 사이트인지 확인하세요.
{% endhint %}

## 카테고리

플레이어가 Decentraland를 탐험하는 데 도움이 되도록 씬에 카테고리를 추가할 수 있습니다. 이들은 [Decentraland Places dApp](https://places.decentraland.org) 에서 각 장소를 분류하고 플레이어가 관심 있는 것을 더 쉽게 찾을 수 있도록 하는 데 사용됩니다.

**카테고리** 사전 정의된 옵션 목록에서 선택해야 합니다:

* 🎨 예술
* 🕹️ 게임
* 🃏 카지노
* 👥 소셜
* 🎶 음악
* 👠 패션
* 🪙 크립토
* 📚 교육
* 🛍️ 쇼핑
* 🏢 비즈니스
* 🏅 스포츠
* 🏃 파쿠르

씬은 하나 이상의 카테고리에 속할 수 있으며, 최대 3개의 카테고리를 나열할 수 있습니다.

의 `scene.json` 카테고리는 `태그` 배열에 나열됩니다.

다음은 사전 정의된 카테고리입니다:

* `예술`
* `게임`
* `카지노`
* `소셜`
* `음악`
* `패션`
* `크립토`
* `교육`
* `쇼핑`
* `비즈니스`
* `스포츠`
* `파쿠르`

예를 들어, 다음을 추가하여 씬을 `게임` 과 `카지노` 으로 태그할 수 있습니다. `scene.json`

```json
  "tags": [
    "game",
    "casino",
  ],
```

그 후 씬은 Places dApp의 `게임` 과 `카지노` 카테고리 아래에 나열됩니다.

## 연령 등급

이 **연령 등급** 필드는 씬의 콘텐츠를 분류하는 데 사용됩니다. Decentraland는 18+ 플랫폼입니다. 다음 옵션을 사용할 수 있습니다:

* **🟡 `하나의` 성인용(18+)**: 이는 Decentraland의 [이용 약관](https://decentraland.org/terms)에 명시된 최소 연령 요건입니다. 중간 또는 강한 언어, 폭력, 노골적인 콘텐츠, 도박, 또는 알코올, 담배, 마약과 같은 물질을 포함해 성인에게 적합한 콘텐츠가 있는 경우 이 카테고리를 선택하세요.

를 통해 연령 등급을 편집할 때 `scene.json`, 등급은 **한 글자 코드**입니다. 성인용은 **하나의** 를 사용하세요.  `등급` 필드는 JSON 트리의 루트 레벨에 위치합니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-641bfde710b047bcc83949bb7e54c794a59bc7f6%2Fcontent-moderation-flag-icon.png?alt=media\&token=8ed8919f-e077-45d4-9687-f0181e7c7835)

```json
 "rating": "A"
```

### 제한된 콘텐츠

씬에는 세 번째 카테고리도 있습니다: 🔴 `R` 은(는) 제한됨을 의미합니다. 이 등급은 콘텐츠 모더레이터가 Decentraland의 [콘텐츠 정책](https://decentraland.org/content)를 위반하는 씬에 수동으로 적용합니다. 위반에는 다음이 포함될 수 있으며, 이에 국한되지 않습니다:

* 수상한 콘텐츠 또는 스팸
* 학대적이거나 혐오적인 콘텐츠
* 성적이거나 비하적인 콘텐츠
* 아동 학대
* 괴롭힘 또는 따돌림
* 테러/폭력 조장
* IP/저작권 침해

이 등급의 씬은 로드되지 않으며 누구도 상호작용할 수 없습니다. 씬이 이 범주에 해당한다면, 검토하여 다음을 준수하도록 업데이트해야 합니다. [콘텐츠 정책](https://decentraland.org/content).

## 기능 토글

플레이어가 악용할 수 없도록 특정 씬에서 비활성화할 수 있는 기능들이 있습니다. 이를 씬 설정의 **설정** 탭에서 구성하세요.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-256dd7099b9a9089211e7ce443211d5abfb61de5%2Fscene-restrictions.png?alt=media\&token=21fd4ec0-561d-4be3-9c40-6ab7d73128d8)

현재는 다음 기능만 이 방식으로 처리됩니다:

* **보이스 채팅**: 근처의 다른 플레이어들과 음성 채팅으로 대화하기 위해 마이크를 사용하는 것을 말합니다.
* **포터블 경험 비활성화**: 이 설정은 플레이어가 씬 안에 서 있는 동안 해당 플레이어의 모든 포터블 경험에 대한 동작을 설정합니다. 여기에는 [포터블 경험](/creator/content-creator-ko/sdk7/kinds-of-projects/portable-experiences.md) 뿐만 아니라 [스마트 웨어러블](/creator/content-creator-ko/sdk7/kinds-of-projects/smart-wearables.md)도 포함됩니다. 이 설정을 통해 모두 활성화(기본값) 유지, 비활성화, 또는 UI 숨기기 중 하나를 선택할 수 있습니다. 이는 예를 들어 파쿠르 챌린지에서 제트팩을 사용하는 것처럼 포터블 경험이 일부 플레이어에게 불공정한 이점을 줄 수 있는 씬에 유용합니다. 또한 블록체인 거래가 이루어지는 씬이나, 악의적인 포터블 경험이 씬의 UI를 가장할 수 있는 씬에서는 이를 차단하는 것이 권장됩니다.

에서 `scene.json` 파일에서 이러한 토글은 `featureToggles`아래에서 관리됩니다. 해당 기능은 다음으로 지정되지 않는 한 기본적으로 활성화되어 있습니다. *disabled* 에서 `scene.json` 파일을 추가할 수 있습니다.

```json
"featureToggles": {
    "voiceChat": "disabled",
    "portableExperiences": "enabled" | "disabled" | "hideUi"
},
```

만약 `featureToggles` 속성이 여러분의 `scene.json` 파일에 없다면, JSON 트리의 루트 레벨에 새로 만드세요.

### 팁 받기

씬을 방문한 플레이어로부터 팁을 받을 수 있습니다. 팁 기능을 활성화하려면 **세부정보** 탭으로 이동한 뒤 **크리에이터 지갑 주소**.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-7e5ad3784efc0fe3c5f96c88d866683e2177e274%2Fcreator-wallet-address.png?alt=media\&token=2680fa93-72b5-45d3-a1c6-9df5f6517d97)

또한 씬의 팁 주소를 `scene.json` 파일의 `creator` 필드.

```json
  "creator": "0x1234567890123456789012345678901234567890"
```

씬 설정에서 상단 왼쪽에 돼지저금통 아이콘이 표시됩니다. 이를 클릭하면 팁을 보낼 수 있는 모달이 열립니다. 이 메뉴는 지도에서 씬 정보를 열어서도 접근할 수 있습니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-96c1bf20f0a166699479dd1ef946cf297904caf2%2FTipIcon.png?alt=media\&token=7cb3c8a4-c8a6-42d9-9d79-8cdc02486f2c)

팁 모달에서는 플레이어가 보내려는 MANA 금액을 선택할 수 있습니다. 팁을 보내려면 플레이어의 지갑에 MANA가 있어야 합니다. 제공한 주소가 Decentraland NAME에 연결되어 있다면, 이 모달에는 Ethereum 주소와 함께 지갑 소유자의 이름도 표시됩니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-25d35de64b10216b0bcf6e2cc8061cf160941673%2Ftipping-modal.png?alt=media\&token=e52b3950-3993-477a-baa2-606dd4297b69)

플레이어가 팁을 보낼 때마다 Decentraland 알림 탭에 알림이 표시됩니다.

## 스폰 위치

이 **스폰 설정** 에서 **설정** 탭에서는 플레이어가 좌표를 브라우저에 직접 입력하거나 텔레포트하여 씬에 직접 접근할 때 어디에서 스폰될지 정의합니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-791de650bd7d09ceef08632a0191fbe6f1ac52fa%2Fspawn-point-ui.png?alt=media\&token=b9c29088-79f3-4dd8-bdb5-196dc5f02763)

나무나 계단처럼 플레이어가 그 위에 스폰되면 이동을 막을 수 있는 오브젝트가 씬에 있을 수 있습니다. 또한 씬에 고저 차가 있는 지형이 있을 수도 있습니다. 플레이어가 이동할 수 없는 위치에 스폰되는 것을 방지하려면, 특정 위치에 여러 스폰 위치를 설정할 수 있습니다.

이 위치는 씬 내부의 좌표로 구성됩니다. 이 숫자들은 파셀 내부의 위치를 가리키며, 씬 코드에서 Transform 컴포넌트로 [엔티티를 배치하는 데](/creator/content-creator-ko/sdk7/3d/entity-positioning.md).

{% hint style="warning" %}
**📔 참고**: 모든 스폰 지점은 씬을 구성하는 필지 안에 있어야 합니다. 해당 필지의 공간 밖에는 플레이어를 스폰할 수 없습니다.
{% endhint %}

다음 항목을 확인하세요. **랜덤 오프셋** 상자를 사용해 스폰되는 플레이어들을 스폰 지점 주변에 무작위로 오프셋합니다. 이렇게 하면 스폰 시 모든 플레이어가 서로 겹쳐 나타나는 것을 방지할 수 있으며, 특히 혼잡한 씬에서 보기 좋지 않은 상황을 막아 줍니다.  **최대 오프셋** 값은 X축과 Z축 모두에서 원래 스폰 지점으로부터의 최대 거리입니다.

다음을 설정하세요 **카메라 타깃** 를 사용해 플레이어가 씬에 들어올 때 어떤 방향을 바라보게 할지 제어합니다. 이를 통해 첫인상을 더 잘 통제하고 특정 방향으로 유도할 수 있습니다. 기본적으로는 `{x: 8, y:1, z:8}`을 가리키며, 이는 단일 파셀 씬에서는 씬의 중앙이고, 더 큰 씬에서는 왼쪽 아래 파셀의 중앙입니다.

클릭 **스폰 지점 추가** 원하는 만큼 스폰 지점을 나열할 수 있습니다. 플레이어는 그중 하나에 무작위로 나타납니다.

### JSON의 스폰 지점

스폰 지점은 `scene.json` 파일을 통해서도 구성할 수 있으며, `스폰 지점` 필드.

```json
  "spawnPoints": [
    {
      "name": "spawn1",
      "position": {
        "x": 5,
        "y": 1,
        "z": 4
      }
    }
  ],
```

하나의 씬에는 여러 스폰 지점이 있을 수 있습니다. 이는 특히 큰 씬에서 유용합니다. 여러 스폰 지점을 두려면 이를 배열로 나열하기만 하면 됩니다.

```json
  "spawnPoints": [
    {
      "name": "spawn1",
      "position": {
        "x": 5,
        "y": 1,
        "z": 4
      }
	},
	{
      "name": "spawn2",
      "position": {
        "x": 3,
        "y": 1,
        "z": 1
      }
    }
  ],
```

여러 스폰 지점이 있을 경우, 플레이어가 지정한 좌표에 가장 가까운 것이 선택됩니다.

스폰 지점이 `default`로 표시되면, 가장 가까운지 여부와 상관없이 항상 사용됩니다. 여러 스폰 지점이 `default`로 표시되면, 가장 가까운 것이 선택됩니다.

```json
  "spawnPoints": [
    {
      "name": "spawn1",
      "default": true,
      "position": {
        "x": 5,
        "y": 1,
        "z": 4
      }
	},
	{
      "name": "not-used",
      "position": {
        "x": 3,
        "y": 1,
        "z": 1
      }
    }
  ],
```

**스폰 영역**

씬의 전체 영역을 스폰 지점처럼 작동하도록 설정할 수 있습니다. 위치의 각 차원에 대해 두 개의 숫자로 된 배열을 지정하면, 플레이어는 그 범위 내의 임의 위치에 나타납니다. 이는 들어오는 플레이어들이 서로 겹치는 것을 방지하는 데 도움이 됩니다. 세 차원 모두 같은 형식을 사용해야 한다는 점에 유의하세요. 모두 단일 숫자이거나, 모두 두 개의 숫자로 된 배열이어야 합니다. 차원을 고정하려면 `"y": [1,1]`.

```json
  "spawnPoints": [
    {
      "name": "region",
      "position": {
        "x": [1,5],
        "y": [1,1],
        "z": [2,4]
      }
    }
  ],
```

위의 예에서 플레이어는 꼭짓점이 다음에 있는 정사각형 안의 어디든 나타날 수 있습니다. *1,1,2* 과 *5,1,4*.

씬에는 여러 스폰 지점을 둘 수 있는 것처럼, 여러 스폰 영역도 가질 수 있습니다.

```json
  "spawnPoints": [
    {
      "name": "region1",
      "position": {
        "x": [1,5],
        "y": [1,1],
        "z": [2,4]
      }
    },
      {
      "name": "region2",
      "position": {
        "x": [1,5],
        "y": [1,1],
        "z": [6,8]
      }
    }
  ],
```

**회전**

스폰될 때 플레이어의 회전도 지정할 수 있어, 특정 방향을 바라보게 할 수 있습니다.

간단히 `cameraTarget` 필드를 스폰 지점 데이터에 추가하세요. `cameraTarget` 의 값은 *x*, *y* 과 *z* 과 마찬가지로 씬을 기준으로 한 좌표를 사용하여 공간상의 위치를 참조해야 합니다. `위치` 필드.

```json
  "spawnPoints": [
    {
      "name": "spawn1",
      "position": {
        "x": 5,
        "y": 1,
        "z": 4
      },
      "cameraTarget": {
        "x": 10,
        "y": 1,
        "z": 4
      }
    }
  ],
```

이 예시는 플레이어를 *5, 1, 4* 에 스폰시키고 동쪽을 향해 *10, 1, 4*보게 합니다. 스폰 위치가 범위라면, 플레이어의 회전은 항상 지정된 대상과 일치합니다. 여러 스폰 지점이 있다면 각 지점은 고유한 대상 값을 가질 수 있습니다.

## 필수 권한

이 `requiredPermissions` 속성은 악용될 수 있고 플레이어 경험을 해칠 수 있는 여러 제어 기능을 관리합니다.

{% hint style="warning" %}
**📔 참고**: 권한은 [포터블 경험](/creator/content-creator-ko/sdk7/kinds-of-projects/portable-experiences.md) 과 [스마트 웨어러블](/creator/content-creator-ko/sdk7/kinds-of-projects/smart-wearables.md)에서만 관련이 있습니다. 일반 씬(파셀 또는 World 모두)은 이러한 권한의 영향을 받지 않으며, 해당 기능을 자유롭게 사용할 수 있습니다.
{% endhint %}

이 기능들은 `scene.json` 파일을 추가할 수 있습니다.

```json
"requiredPermissions": [
    "ALLOW_TO_MOVE_PLAYER_INSIDE_SCENE",
		"OPEN_EXTERNAL_LINK",
  ],
```

다음 권한을 요청할 수 있습니다:

* `ALLOW_TO_MOVE_PLAYER_INSIDE_SCENE`:  [플레이어 이동](/creator/content-creator-ko/sdk7/interactivity/avatars/move-player.md)
* `ALLOW_TO_TRIGGER_AVATAR_EMOTE`:  [플레이어 아바타에 이모트 재생](/creator/content-creator-ko/sdk7/interactivity/avatars/avatar-animations.md)
* `ALLOW_MEDIA_HOSTNAMES`: *(레거시)* 다음과 같은 외부 도메인에서 미디어를 스트리밍하는 것을 의미합니다. [비디오](/creator/content-creator-ko/sdk7/media/video-playing.md) 또는 [true가 됩니다.](/creator/content-creator-ko/sdk7/media/audio-streaming.md)).
* `USE_WEB3_API`: 플레이어의 브라우저 지갑과 상호작용하여 거래를 하거나 메시지에 서명하는 것을 의미합니다.
* `USE_FETCH`:  `fetch` 또는 `signedFetch`
* `USE_WEBSOCKET`: 서드파티 서버와 웹소켓 연결을 여는 것을 의미합니다.
* `OPEN_EXTERNAL_LINK`: 플레이어에게 외부 사이트 링크를 열도록 요청하는 것을 의미합니다.

만약 `requiredPermissions` 속성이 여러분의 `scene.json` 파일에 없다면, JSON 트리의 루트 레벨에 새로 만드세요.

다음을 사용할 때 `ALLOW_MEDIA_HOSTNAMES`, 또한 `allowedMediaHostnames` 필드를 루트 레벨에 포함해 씬이 미디어를 스트리밍할 수 있는 도메인을 나열하세요:

```json
"requiredPermissions": [
    "ALLOW_MEDIA_HOSTNAMES"
  ],
"allowedMediaHostnames": [
    "somehost.com",
    "otherhost.xyz"
  ],
```

{% hint style="warning" %}
**📔 참고**: `ALLOW_MEDIA_HOSTNAMES` 과 `allowedMediaHostnames` 은(는) 레거시 설정이므로 추가할 필요가 없습니다. 이는 이전 버전의 웹 클라이언트에서만 강제되었으며, 현재 Decentraland 클라이언트는 없어도 외부 미디어를 재생합니다.
{% endhint %}

## 씬 파셀

When [배포할 때](/creator/content-creator-ko/sdk7/publishing/publishing.md) 씬의 콘텐츠는 씬 설정에 할당된 좌표로 업로드됩니다. 씬은 단일 파셀 하나 또는 수십 개까지의 파셀 목록을 포함할 수 있습니다.

Scene Editor의 장면 메뉴 두 번째 탭에서 이를 편집하세요.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-54a1901635efda3371172e647c03614733baca17%2Fscene-parcels-3x3.png?alt=media\&token=e7133392-8474-4127-b075-5a3f4e7a4e8d)

드롭다운을 사용하고 **레이아웃 적용** 을 클릭하여 장면의 크기를 변경할 수 있습니다. 각 개별 필지를 클릭하여 레이아웃에서 제외할 수도 있습니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-bbc2ecb567600843892a8c8873aaa70107e66839%2Fscene-parcels-toggled.png?alt=media\&token=aa4c4612-48ac-458d-afec-453d5168d1e8)

기본 씬의 좌표는 *0,0*로 설정됩니다. 여러 파셀을 차지할 필요가 없는 한, 오프라인에서 씬을 개발하는 동안에는 이를 변경할 필요가 없습니다. 배포 권한이 있는 좌표로 배포하기 전에 이 값을 변경해야 합니다.

또한 씬 좌표는 `scene.json` 파일:

```json
 "scene": {
    "parcels": [
      "54,-14"
    ],
    "base": "54,-14"
  }
```

이 `base` 필드는 어떤 파셀을 기본 파셀로 볼지 정의합니다. 씬이 단일 파셀이라면 기본값은 그 파셀이어야 합니다. 씬에 여러 파셀이 있다면, 기본 파셀은 왼쪽 아래(남서쪽) 파셀이어야 합니다. 모든 엔티티 위치는 이 파셀의 남서쪽 모서리를 기준으로 측정됩니다.

씬 미리보기에서 여러 파셀을 표시하려면, 사용하려는 만큼 파셀을 나열하세요. 실제로 배포할 정확한 파셀일 필요는 없지만, 모두 서로 인접해 있고 같은 상대적 위치에 배치되어 있어야 합니다.

```json
 "scene": {
    "parcels": [
      "54,-14",  "55,-14"
    ],
    "base": "54,-14"
  }
```

{% hint style="warning" %}
**📔 참고**: 설정할 수 있는 가장 큰 씬 크기는 300 x 300 파셀(총 90,000 파셀)입니다.
{% endhint %}

### 명령줄로 파셀 설정

다음을 실행하여 씬의 파셀을 설정할 수 있습니다. `npx update-parcels` 명령을 씬 폴더에서 실행하세요. 관련된 모든 파셀을 일일이 나열할 필요가 없으므로, 특히 큰 씬에 유용합니다.

{% hint style="warning" %}
**📔 참고**: `update-parcels` 은(는) 서드파티 커뮤니티 도구이며, 공식 Decentraland SDK의 일부가 아니고 Decentraland Foundation에서 유지 관리하지 않습니다.
{% endhint %}

**단일 파셀**

씬 좌표를 인수 하나로 전달하세요. 이 좌표는 기본 파셀로도 설정됩니다.

`npx update-parcels <parcel>`

예를 들면:

`npx update-parcels 15,-26`

**여러 파셀**

인수 두 개를 전달하세요: 남서쪽 파셀과 북동쪽 파셀. 남서쪽 파셀은 기본 파셀로도 설정됩니다.

`npx update-parcels <parcel> <parcel>`

{% hint style="info" %}
**💡 팁**: 남서쪽 파셀은 항상 두 *X* 과 *Y* 좌표 모두에서 숫자가 가장 낮은 파셀입니다.
{% endhint %}

예를 들면:

`npx update-parcels 15,-26 17,-24`

이 명령은 기본 파셀이 `15,-26`.

**기본 파셀 사용자 지정**

인수 세 개를 전달하세요: 남서쪽 파셀, 북동쪽 파셀, 그리고 기본 파셀로 사용할 파셀입니다.

`npx update-parcels <parcel> <parcel> <parcel>`

{% hint style="warning" %}
**📔 참고**: 기본 파셀은 씬의 파셀 중 하나여야 합니다.
{% endhint %}

**정사각형이 아닌 씬**

위 명령들은 모두 직사각형 모양의 씬을 생성합니다. Decentraland 씬은 L자형이나 다른 구성도 가능합니다. 다음을 사용해 더 큰 정사각형을 생성한 뒤 `npx update-parcels` 초과 파셀을 수동으로 제거할 수 있습니다. `scene.json` 파일을 추가할 수 있습니다.

{% hint style="warning" %}
**📔 참고**: 기본 파셀은 씬의 파셀 중 하나여야 합니다.
{% endhint %}

## 스카이박스 시간대

씬에 고정된 시간을 설정할 수 있습니다. 모든 플레이어는 이 시간대의 씬을 보게 되며, 스카이박스는 낮/밤 주기를 따르지 않습니다.

씬 설정을 열고 **설정** 탭에서 다음을 찾으세요. **스카이박스** 섹션. 다음의 선택을 해제하세요. **자동** 옵션을 클릭한 뒤 원하는 시간을 설정하세요.

또한 씬 코드에서도 스카이박스 시간을 설정할 수 있습니다. 그러려면 다음 섹션을 여러분의 `scene.json` 루트 수준에 추가할 수도 있습니다:

```json
 "skyboxConfig": {
    "fixedTime": 36000
  }
```

이 숫자는 하루가 시작된 후 경과한 초 수를 의미하며, 0( *00:00*자정 *24:00*을 나타냄)부터 86400(

다음은 유효한 값의 몇 가지 예시입니다:

* 0초 => *00:00*
* 21600초 => *06:00*
* 43200초 => *12:00*
* 64800초 => *18:00*
* 86400초 => *24:00*

## 풍경 지형

에 게시된 씬은 [Decentraland World](https://github.com/decentraland/docs/tree/main/creator/worlds/about.md) 잔디, 나무, 바다로 이루어진 자동 생성 풍경으로 둘러싸입니다. 이 풍경이 예를 들어 열린 물 위나 우주에 떠 있는 씬처럼 여러분의 씬 미학과 맞지 않는다면, 비활성화할 수 있습니다. 그렇게 하려면 여러분의 `scene.json` 루트 수준에 추가할 수도 있습니다:

```json
{
	"landscapeTerrain": false
}
```

를 사용하면 `landscapeTerrain` 다음으로 설정되어 있고 `false`를 설정하면 씬의 파셀 바깥에는 아무것도 렌더링되지 않으며, 플레이어는 씬 주변의 스카이박스만 보게 됩니다. 주변 지형을 제거하면 렌더링 리소스도 절약되어 씬이 더 부드럽게 동작하는 데 도움이 됩니다.

필드가 설정되지 않으면 기본값은 `true` 이며, 풍경은 평소처럼 표시됩니다.

{% hint style="warning" %}
**📔 참고**: 이 필드는 단일 씬을 포함한 World에만 적용됩니다. Genesis City에서는 주변 환경이 항상 인접한 파셀에 의해 결정되므로 무시됩니다. 또한 로컬로 씬 미리보기를 실행할 때도 이 기능을 사용해 풍경 없이 씬이 어떻게 보이는지 확인할 수 있습니다.
{% endhint %}

## World 구성

에 게시할 때 [Decentraland World](/creator/content-creator-ko/sdk7/publishing/publishing-options.md#decentraland-worlds), 여러분의 `scene.json` 파일에서 여러 World 전용 설정을 `worldConfiguration` 객체에 사용합니다.

### 기본 World 구성

World에 게시하려면 여러분의 `scene.json`:

```json
{
	"worldConfiguration": {
		"name": "my-name.dcl.eth"
	}
}
```

이 **name** 에 NAME 또는 ENS 도메인을 지정해야 합니다. 지정된 값은 Decentraland NAME 또는 ENS 도메인일 수 있으며, 배포를 서명하는 지갑(또는 접근 제어 목록을 통해 권한이 부여된 모든 지갑)이 소유해야 합니다.

### 통신 서비스 구성

이 `fixedAdapter` 속성은 씬에서 사용할 통신 서비스를 지정합니다. 현재로서는 `offline:offline` 값만 허용됩니다. 이 값으로 설정하면 씬에는 통신 서비스가 전혀 없게 되며, 해당 World에 참여하는 각 사용자는 항상 혼자 있게 됩니다. 설정하지 않으면 World 콘텐츠 서버가 구성 방식에 따라 적절한 값을 생성합니다.

```json
{
	"worldConfiguration": {
		"name": "my-name.dcl.eth",
		"fixedAdapter": "offline:offline"
	}
}
```

{% hint style="warning" %}
**📔 참고**: 설정하면 `fixedAdapter` 를 `"offline:offline"` (또는 Creator Hub의 World 설정에서 **싱글 플레이어** 를 활성화하면) 라이브 스트리밍이 비활성화됩니다. 스트리밍 기능은 통신 계층을 통해 시청자에게 비디오를 전달합니다. World에서 라이브 스트리밍이 필요하다면 이 옵션을 사용하지 마세요.
{% endhint %}

### Places 목록 구성

모든 World는 기본적으로 Places 페이지에 자동으로 등록되며, 제외하도록 선택하지 않는 한 그렇습니다. World가 Places에서 인덱싱되는 것을 제외하려면 다음을 추가할 수 있습니다:

```json
{
	"worldConfiguration": {
		"name": "my-name.dcl.eth",
		"placesConfig": {
			"optOut": true
		}
	}
}
```

### 전체 예시

모든 World 구성 옵션이 포함된 전체 예시는 다음과 같습니다:

```json
{
	"worldConfiguration": {
		"name": "my-name.dcl.eth",
		"fixedAdapter": "offline:offline",
		"placesConfig": {
			"optOut": true
		}
	}
}
```

다음 [Worlds에 게시하기](/creator/content-creator-ko/sdk7/publishing/publishing.md#publishing-to-worlds) World에 배포하는 방법에 대한 자세한 내용은

## 씬 코드에서 메타데이터 가져오기

[씬 API 참조](https://js-sdk-toolchain.pages.dev/modules/js_runtime_apis.__system_Scene_)

씬이 배포된 파셀이나 스폰 지점 위치와 같은 씬 메타데이터의 필드에 접근하려면 씬 코드가 필요할 수 있습니다. 이는 복제용 씬이나 다른 씬에서 재사용할 코드에 특히 유용합니다. 또한 씬 경계가 어디인지 알아야 하는 라이브러리에도 매우 유용합니다.

이 데이터에 접근하려면 먼저 `getSceneInformation` 함수:

```ts
import { getSceneInformation } from '~system/Runtime'
```

그런 다음 다음을 호출할 수 있습니다 `getSceneInformation()` 함수는 scene.json 파일의 대부분의 내용을 포함하는 JSON 객체를 반환합니다. 아래 예제는 이 함수의 응답에서 더 일반적인 여러 필드에 접근하는 방법을 보여줍니다:

```ts
import { getSceneInformation } from '~system/Runtime'

executeTask(async () => {
  const sceneInfo = await getSceneInformation({})

  if (!sceneInfo) return
  console.log("씬 정보: ", sceneInfo)
})
```

{% hint style="warning" %}
**📔 참고**: `getSceneInformation()` 다음과 같이 실행되어야 합니다 [비동기 함수](/creator/content-creator-ko/sdk7/programming-patterns/async-functions.md)응답이 데이터를 반환하는 데 0.몇 초 이상 지연될 수 있으므로, 더 이상 사용되지 않는 `getSceneInfo()` 함수.
{% endhint %}

이 함수가 반환하는 객체에는 `getSceneInformation()` 다음이 포함됩니다:

* `baseUrl`: 장면 콘텐츠가 호스팅되는 기본 URL
* `content`: 해시를 포함한 장면의 모든 파일이 들어 있는 배열로, 기본 URL과 함께 사용하여 파일을 가져올 수 있습니다.
* `metadataJson`: 문자열로 된 장면의 scene.json 전체 내용입니다. 특정 값을 얻으려면 이를 파싱해야 합니다.
* `urn`: 장면 전체에 대한 고유한 urn입니다.

아래 예제에서는 다음의 내용을 파싱하여 `metadataJson` scene.json 파일의 속성에서 값을 얻기 위해

```ts
import { getSceneInformation } from '~system/Runtime'

executeTask(async () => {
	const sceneInfo = await getSceneInformation({})

	if (!sceneInfo) return

	const sceneJson = JSON.parse(sceneInfo.metadataJson)
	const spawnPoints = sceneJson.spawnPoints
	const parcels = sceneJson.scene.parcels
	console.log({ parcels, spawnPoints })
})
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.decentraland.org/creator/content-creator-ko/sdk7/kinds-of-projects/scene-metadata.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
