> 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) 씬 프로젝트에서 어떤 파일이 사용되는지 목록을 보려면.

## 메타데이터

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

![](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)

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

![](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)

대신 직접 `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)

씬 편집기의 씬 메뉴를 통해 이 데이터를 추가하세요.

썸네일은 *.png* 권장 크기의 이미지여야 합니다. *228x160* 픽셀이어야 합니다. 지원되는 최소 크기는 *196x143* 픽셀입니다. 가로세로 비율이 일치하지 않으면 이미지가 늘어나 보일 수 있습니다. *228x160*.

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

{% hint style="warning" %}
**📔 참고**: 이미지를 다른 곳에 호스팅하는 경우, 다른 사이트에서 콘텐츠를 표시할 때 허용적인 CORS 정책을 가진 사이트인지 확인하세요.
{% endhint %}

다른 개발자가 연락할 수 있도록 하고 싶다면, 씬에 연락처 정보도 추가할 수 있습니다.

{% hint style="info" %}
**📔 참고**: 월드는 씬 메타데이터와는 별도로 자체 이름, 설명, 썸네일을 유지합니다. World에 단일 씬이 포함된 경우, 월드의 메타데이터는 매번 게시할 때 씬의 메타데이터에서 업데이트됩니다. 여러 씬이 포함된 경우, 월드의 메타데이터는 독립적이며 다음에서만 편집할 수 있습니다 **관리** 탭에서만 편집할 수 있습니다. 다음을 참고하세요 [월드 메타데이터 vs 씬 메타데이터](/creator/content-creator-ko/scene-editor/publish/publish-scene.md#world-metadata-vs-scene-metadata).
{% 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)

```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)

현재는 다음 기능만 이렇게 처리됩니다:

* **음성 채팅**: 플레이어가 마이크를 사용해 근처의 다른 플레이어들과 음성 채팅으로 대화하는 것을 의미합니다.
* **포터블 경험 비활성화**: 이 설정은 플레이어가 씬 안에 서 있을 때 해당 플레이어의 포터블 경험 동작을 설정합니다. 여기에는 [포터블 경험](/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)

또한 씬의 팁 주소를 `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)

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

![](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)

플레이어가 팁을 보낼 때마다 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)

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

위치는 씬 내부의 좌표로 구성됩니다. 이 숫자는 파셀 내의 위치를 나타내며, 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* 및 *부터* 좌표는 씬을 기준으로 한 상대 좌표이며, 다음과 같습니다 `위치` 필드에 붙여 넣어 자체 스트리밍 인프라를 지정하세요.

```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)에서만 관련이 있습니다. 일반 씬(파셀 또는 월드 모두)은 이러한 권한의 영향을 받지 않으며, 해당 기능을 자유롭게 사용할 수 있습니다.
{% 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/player-avatar.md#move-player)
* `ALLOW_TO_TRIGGER_AVATAR_EMOTE`: 다음을 의미합니다 [플레이어 아바타에서 이모트 재생](/creator/content-creator-ko/sdk7/interactivity/player-avatar.md#play-animations)
* `ALLOW_MEDIA_HOSTNAMES`: *(레거시)* 다음과 같은 미디어 스트리밍을 의미합니다 [비디오](/creator/content-creator-ko/sdk7/media/video-playing.md) 또는 [오디오](/creator/content-creator-ko/sdk7/media/audio-streaming.md)를 외부 도메인에서 가져오는 것.
* `USE_WEB3_API`: 플레이어의 브라우저 월렛과 상호작용하여 거래를 하거나 메시지에 서명하는 것을 의미합니다.
* `USE_FETCH`: 다음을 사용하여 3rd party 서버에 http 요청을 보내는 것을 의미합니다 `fetch` 또는 `signedFetch`
* `USE_WEBSOCKET`: 3rd party 서버와 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 %}

## 씬 파셀

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

씬 편집기의 씬 메뉴 두 번째 탭에서 이 설정을 수정하세요.

![](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)

드롭다운을 사용한 다음 **레이아웃 적용** 을 클릭해 씬의 크기를 변경하세요. 각 개별 파셀을 클릭해 레이아웃에서 제외할 수도 있습니다.

![](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)

기본 씬의 좌표는 다음으로 설정됩니다 *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`

이 명령은 기준 파셀이 있는 3x3 씬을 생성합니다 `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*)부터 86400(을 나타내는 *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" %}
**📔 참고**: 이 필드는 단일 씬을 포함하는 월드에만 적용됩니다. Genesis City에서는 항상 인접한 파셀에 의해 주변 환경이 결정되므로 무시됩니다. 또한 씬의 로컬 미리보기를 실행할 때 풍경 없이 씬이 어떻게 보이는지 확인하는 데 이 기능을 사용할 수 있습니다.
{% endhint %}

## World 설정

다음에 게시할 때 [Decentraland World](/creator/content-creator-ko/sdk7/publishing/publishing-options.md#decentraland-worlds)월드 전용 설정 몇 가지를 `scene.json` 파일에서 `worldConfiguration` 객체.

### 기본 월드 설정

월드에 게시하려면, 다음에서 NAME 또는 ENS 도메인을 지정해야 합니다. `scene.json`:

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

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

### 통신 서비스 구성

그 `fixedAdapter` 속성은 씬에서 어떤 통신 서비스를 사용할지 나타냅니다. 현재는 다음 `offline:offline` 값만 허용됩니다. 설정하면 씬에는 통신 서비스가 전혀 없게 되며, 해당 월드에 들어오는 각 사용자는 항상 혼자 있게 됩니다. 설정하지 않으면 Worlds 콘텐츠 서버가 구성 방식에 따라 적절한 값을 생성합니다.

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

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

### Places 목록 설정

모든 월드는 제외하지 않는 한 자동으로 Places 페이지에 목록됩니다. Places에서 월드 색인을 생성하지 않으려면 다음을 추가하면 됩니다:

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

### 완전한 예시

모든 월드 구성 옵션을 포함한 완전한 예시는 다음과 같습니다:

```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) 를 참조하세요.

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

[씬 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("SCENE INFO: ", sceneInfo)
})
```

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

다음에 의해 반환되는 객체 `getSceneInformation()` 다음을 포함합니다:

* `baseUrl`: 씬의 콘텐츠가 호스팅되는 기본 URL
* `콘텐츠`: 해시를 포함한 씬의 모든 파일이 들어 있는 배열로, 기본 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
