For the complete documentation index, see llms.txt. This page is also available as Markdown.

게시

프로젝트를 어떻게 게시하나요?

시작하기 전에

다음 사항을 확인하세요:

  • 당신의 씬은 다음의 모든 씬 제한 사항. 이들 대부분은 씬 미리보기를 실행할 때마다 검증됩니다.

  • 모바일 플레이어에게 장면이 잘 작동하도록 하려면, 먼저 실제 기기에서 미리보기와 테스트를 해보세요 — 참고: 모바일용 빌드 과 모바일에서 미리보기. 게시되면, 여러분의 장면은 데스크톱과 마찬가지로 Decentraland 모바일 앱에서도 접근할 수 있습니다.

  • 당신에게 Metamask 계정에, 여러분의 LAND 구획이 할당되어 있습니다.

  • 인접한 LAND 구획 또는 Decentraland NAME을 필요한 만큼 보유하고 있습니다. 그렇지 않다면 마켓 에서 LAND를, 또는 마켓플레이스.

장면 데이터 확인

배포할 때 CLI는 다음에서 정보를 읽습니다: scene.json 파일을 통해 여러분의 장면을 어디에 배포할지 결정합니다.

여러분의 장면의 scene.json 파일을 열고 다음 데이터를 입력하세요:

  • 제목: 제목은 플레이어가 여러분의 장면에 들어올 때마다 미니맵 아래의 UI에 표시됩니다. 텔레포트 팝업에도 표시됩니다.

  • 설명: 플레이어가 여러분의 장면에서 무엇을 찾게 될지에 대한 설명입니다. 텔레포트 팝업에 표시됩니다.

  • navmapThumbnail: 여러분의 장면을 나타내는 이미지입니다. 텔레포트 팝업에 표시됩니다. 이미지는 .png 또는 .jpg 16:9 종횡비의 이미지여야 하며, 권장 크기는 1920x1080 픽셀입니다. 중요한 요소는 중앙의 1080x1080 정사각형 안에 넣어 두세요. 플랫폼의 일부에서는 이를 정사각형으로 잘라 표시하기 때문입니다. 참고: 장면 썸네일.

  • 구획: 여러분의 장면이 차지할 구획의 좌표

  • 기준: 장면의 [0,0] 좌표로 간주될 구획의 좌표입니다. 장면이 여러 구획으로 이루어져 있다면, 맨 왼쪽 아래(남서) 구획이어야 합니다.

  • 스폰 지점: 장면 내부의 좌표 집합(장면의 기준 구획을 기준으로 한 상대 좌표)으로, 플레이어가 생성되는 위치입니다. 기본적으로 플레이어는 0,0,0 장면 위치(왼쪽 아래 모서리)에서 생성됩니다. 이를 사용해 플레이어를 특정 위치에서 시작시키거나, 처음 나타날 때 서로 겹치지 않도록 영역을 설정할 수 있습니다.

  • 태그: 여러분의 장면을 설명하는 태그 집합입니다. 플레이어가 관심 있는 콘텐츠를 더 쉽게 찾을 수 있게 해 Decentraland를 탐색하는 데 도움이 됩니다. 사용 가능한 카테고리 목록 보기.

  • 등급: 이는 여러분의 장면 콘텐츠를 분류하는 데 사용됩니다. Decentraland는 18+ 플랫폼이므로, 설정할 값은 하나의 성인용입니다. 참조 연령 등급.

장면을 게시하려면

Creator Hub의 Scene Editor 사용하기

Creator Hub의 Scene Editor는 장면을 쉽게 게시할 수 있는 방법을 제공합니다. 반드시 Creator Hub를 설치했는지.

  1. 장면 프로젝트를 여세요.

  2. 다음 게시 오른쪽 상단 모서리의 버튼을 클릭하세요.

  3. 프롬프트가 여러분에게 다음 중 어디에 게시할지 묻습니다: WORLD 또는 LAND.

    • 선택하세요 WORLD에 게시 를 선택하면 여러분의 WORLD. 그런 다음 여러분의 NAME 또는 ENS 도메인 중 어디에 게시할지 선택하세요.

    • 선택하세요 LAND에 게시 토지를 소유하고 있거나 소유자로부터 배포 권한을 받은 경우에 사용하세요. 그런 다음 지도에서 배포할 구획을 선택하세요. 배포가 허용된 구획은 분홍색으로 표시됩니다.

    • 선택하세요 대체 서버 맞춤 서버에 게시하려면 맞춤 서버.


  1. 이렇게 하면 업로드 세부 정보를 보여주는 브라우저의 새 탭이 열립니다. 지갑으로 배포에 서명하세요. 이것은 소유권을 증명하기 위한 서명일 뿐이며, 무료이고 어떤 블록체인 거래도 포함하지 않습니다.

    • MetaMask 브라우저 계정의 LAND인 경우 배포를 확인하세요. 그런 다음 MetaMask 브라우저 확장 프로그램에서 메시지에 서명하세요.

    • Wallet Connect를 통해 사용할 수 있는 지갑에 연결된 LAND의 경우, 지갑 연결, 그런 다음 모바일 기기로 QR 코드를 스캔하고 Wallet Connect의 단계를 따르세요.

CLI를 통해

  1. Decentraland에서 여러분의 구획과 연결된 동일한 공개 주소로 MetaMask 계정에 로그인하세요.

  2. 실행 npm run deploy 장면의 폴더에서.

**💡 팁**: 프로젝트 폴더에 배포하고 싶지 않은 파일이 있다면, 배포하기 전에 _.dclignore_ 파일에 목록으로 추가하세요.

  1. 브라우저 탭이 열리며, 배포할 구획이 표시됩니다. 서명 및 배포.

  2. MetaMask가 열리며 서명이 필요하다고 알려줍니다. 서명 를 눌러 이 작업을 확인하세요.

💡 팁: 장면의 변경 사항이 자동으로 배포되는 지속적 통합 흐름을 구현하려면, 다음을 설정할 수 있습니다. export DCL_PRIVATE_KEY 환경 변수를 배포 권한이 있는 계정의 개인 키로 설정하세요.

💡 팁: npm run deploy 다음을 실행합니다: npm run build장면의 형식 오류를 다음을 실행하는 것보다 더 엄격하게 검사합니다: npm run start. 이러한 오류를 피할 수 없고(예: 외부 라이브러리에서 발생하며) 장면에 영향을 주지 않는다면, 다음을 사용할 수 있습니다: npm run deploy -- --skip-build 을 건너뛰고 npm run build 단계를 생략하고 장면을 있는 그대로 배포하세요.

Worlds에 게시하기

장면을 Decentraland World에 게시하려면 Decentraland NAME 또는 ENS 도메인을 소유하고 있어야 합니다. 게시 옵션 하나를 얻는 방법에 대한 정보는

scene.json 구성

어떤 name 에서 배포할지 지정해야 합니다. 다음 섹션을 scene.json:

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

다음을 유의하세요:

  • 배포에 서명하는 지갑은 다음에 지정된 NAME을 소유하고 있어야 합니다: scene.json 파일

  • 장면에는 구획 제한이 없습니다(2023년 1월부터)

  • 아래에 설명된 대로 제외하지 않는 한 모든 World는 자동으로 Places 페이지에 등록됩니다

World 메타데이터

World에는 게시된 장면의 메타데이터와는 별도로 자체 이름, 설명, 썸네일이 있습니다. 비어 있는 World나 단일 장면을 포함한 World에 게시하면, World의 메타데이터는 게시할 때마다 장면의 메타데이터와 일치하도록 업데이트됩니다. World에 둘 이상의 장면이 있으면 메타데이터는 독립적입니다. 장면을 게시해도 변경되지 않으며, 다음에서만 편집할 수 있습니다. 관리 Creator Hub의 섹션. 참고: 월드 메타데이터 vs 씬 메타데이터.

World 저장 공간 예산

World에 배포된 장면은 여러분의 지갑이 소유한 모든 World에서 공유되는 저장 공간 예산에 포함됩니다. 예산은 여러분의 Decentraland 보유량에 따라 늘어납니다:

  • 여러분이 소유한 각 Decentraland NAME마다 100MB가 추가됩니다.

  • 여러분이 소유한 각 LAND 구획마다 추가로 100MB가 부여됩니다.

  • 지갑에 보유한 2,000 MANA마다 추가로 100MB가 부여됩니다.

이 예산을 여러분의 World들 사이에 원하는 대로 분배할 수 있습니다. 예를 들어 500MB 예산이 있다면 300MB 장면 하나와 200MB 장면 하나를 배포하거나, 100MB 장면 다섯 개를 배포할 수 있습니다. ENS 도메인에 게시된 World는 이 예산을 사용하지 않으며, 대신 World당 고정 36MB 제한이 있습니다.

예산이 얼마나 사용되었고 얼마나 남았는지는 두 곳에서 확인할 수 있습니다:

  • 이 관리 Creator Hub의 섹션. 클릭 세부정보 보기 MANA, LAND, NAME 보유량이 어떻게 합산되는지에 대한 세부 내역을 보려면

  • 이 Worlds 탭의 Builder.

예산을 초과하면(예: 자산을 판매하거나 이전한 후), World에 접근할 수 없게 되기 전에 공간을 확보하거나 예산을 늘릴 수 있는 48시간이 주어집니다. 참고: Worlds 크기 제한 자세한 내용은.

다중 장면 World

기본적으로 CLI를 통해 World에 배포할 때 여러분의 장면은 단일 장면 World로 처리됩니다. 이미 World에 장면이 있다면, 좌표가 다르더라도 새 장면을 배포하면 기존 장면이 덮어써집니다.

다중 장면 World로 배포하려면 다음 매개변수를 추가하세요: --multi-scene 배포 명령에:

npm run deploy -- --multi-scene --target-content https://worlds-content-server.decentraland.org

이 매개변수를 사용할 때, 게시하는 장면의 좌표가 해당 World의 기존 장면들과 다르다면, 이 장면들은 모두 함께 공존하게 됩니다.

Places 목록에서 제외

여러분의 World가 Places에 색인되는 것을 제외하고 싶다면, 다음 섹션을 scene.json:

Creator Hub의 Scene Editor 사용하기

  1. 장면 프로젝트를 여세요.

  2. 다음 게시 오른쪽 상단 모서리의 버튼을 클릭하세요.

  3. 선택하세요 WORLD에 게시.

  4. 게시할 NAME 또는 ENS 도메인을 선택하세요.

CLI를 통해

다음 명령을 사용하세요:

명령을 실행하면 지갑으로 배포에 서명하라는 요청이 표시되고, 장면을 허용할지 거부할지 결정하기 위한 일련의 검증이 실행됩니다.

World에 접근하기

장면이 Worlds 서버에 업로드되면, 다음 URL을 사용하여 Decentraland Explorer에서 접근할 수 있습니다: decentraland://?realm=NAME.dcl.eth여야 하며, 여기서 NAME 은 여러분이 배포한 Decentraland NAME 또는 ENS 도메인으로 바꿔야 합니다.

Decentraland가 이미 열려 있다면, 다음을 입력해 World로 이동할 수도 있습니다: /goto NAME.dcl.eth 명령을 채팅창에 입력하세요.

다음 검색 가능하게 만들기 World를 검색 가능하게 만드는 방법에 대한 자세한 내용은

World를 Genesis City로 마이그레이션

LAND 소유자이고 World 장면을 Genesis City에 배포하고 싶다면, Genesis City의 콘텐츠 서버인 탈중앙화 Catalyst 네트워크에 장면을 다시 배포하면 됩니다.

유의할 점:

  • 다음 항목을 제거하세요: worldConfiguration 섹션을 scene.json

  • World의 크기 제한(보유량에 따라 동적으로 결정됨)은 LAND 구획(구획당 15MB)과 다르므로, Genesis City 배포에 맞게 장면 크기가 올바른지 확인하세요!

하드웨어 지갑에서 게시하기

LAND 토큰을 Metamask 계정에 보관하는 대신, Ledger 나 Trezor와 같은 물리적으로 컴퓨터에 연결된 하드웨어 지갑 장치에 보관하는 것이 더 안전할 수 있습니다.

이러한 장치 중 하나를 사용 중이라면, 하드웨어 지갑을 Metamask에 연결해 토큰은 더 안전하게 보관하면서 메시지 서명은 가능하게 할 수 있습니다. 다음을 참조하세요. Metamask의 이 문서 에서 계정 연결 방법을 확인하세요.

하드웨어 지갑을 Metamask를 통해 사용할 수 있게 되면, 토큰이 Metamask 계정에 있는 것과 동일한 단계로 배포할 수 있습니다.

씬 덮어쓰기

새 씬이 배포되면, 그것이 차지하는 구획에 존재하던 이전 콘텐츠를 덮어씁니다.

여러 구획을 차지하는 씬이 다른 씬에 의해 부분적으로만 덮어써지는 경우, 해당 씬의 모든 구획은 덮어써지거나 지워집니다.

당신이 씬을 하나의 두 구획에 걸쳐 [100, 100] 과 [100, 101]배포했다고 가정해 봅시다. 그런 다음 [100, 101] 구획을 인접한 토지를 보유한 사용자에게 판매했고, 그 사용자가 큰 씬(B)를 여러 구획에 배포했으며, 그중에 [100, 101].

당신의 씬은 하나의 한 구획에만 부분적으로 렌더링될 수 없으므로 [100, 100] 어떤 콘텐츠도 표시되지 않습니다. 씬 하나의 의 새 버전을 만들어 한 구획만 차지하도록 한 뒤 구획 [100, 100].

콘텐츠 서버란 무엇인가요

콘텐츠 서버는 커뮤니티가 소유한 서버들의 네트워크로, 콘텐츠 주소 지정 방식의 파일 시스템을 사용합니다. 즉, 각 파일은 임의의 파일 이름이 아니라 내용으로 식별됩니다.

우리는 BitTorrent와 유사한 방식으로 콘텐츠 서버를 사용해 모든 장면 콘텐츠를 호스트하고 배포하여 Decentraland 네트워크가 분산되도록 유지합니다.

  1. 콘텐츠 서버는 여러분의 장면을 렌더링하는 데 필요한 모든 자산을 저장하고 배포합니다.

  2. 이 npm run deploy 명령은 이러한 자산을 여러분의 LAND 구획에 연결합니다 scene.json 파일에 지정된 LAND 구획에 연결합니다. 장면을 다시 배포할 때마다 콘텐츠 서버는 구획이 가장 최근 콘텐츠를 가리키도록 기록을 업데이트합니다. 배포는 블록체인 거래를 수반하지 않으며, 소유권 증명을 위해 지갑으로 새 장면 엔티티에 서명하기만 하면 됩니다.

각 서버 복사본의 정보는 검증 가능하며, 각 장면은 LAND 소유자의 해시로 서명됩니다. 이는 서버 복사본을 호스팅하는 사람이 콘텐츠를 조작해 부정한 내용을 표시할 수 없다는 뜻입니다. 커뮤니티는 DAO를 사용해 이러한 서버의 승인 또는 제거에 투표할 수도 있습니다.

사용자 지정 서버

공식 DAO가 관리하는 catalyst 서버 네트워크에 속하지 않는 맞춤 서버에 콘텐츠를 배포할 수 있습니다. 이를 위해 LAND나 NAME 토큰을 소유할 필요는 없으며, 서버를 원하는 검증 로직으로 구성해 누가 어디에 배포할 수 있는지 제어할 수 있습니다. 맞춤 서버는 공식 서버의 콘텐츠를 포함할 수도 있고(이를 덮어쓸 수 있음), 아니면 빈 상태에서 시작해 완전히 새로운 콘텐츠를 게시할 수도 있습니다.

다음을 참고하세요: catalyst-owner 저장소 자신의 서버로 무엇을 할 수 있는지와 설정 방법에 대한 자세한 내용은 다음을 참조하세요.

플레이어가 이 서버로 직접 안내되는 일은 없으며, 접근하려면 URL을 명시적으로 입력하는 방법밖에 없습니다.

CLI를 통해

맞춤 서버에 배포하려면 다음을 실행하세요:

npm run deploy -- --target <CUSTOM SERVER DOMAIN>

맞춤 서버에서 배포된 장면에 접속할 URL은 호스팅되는 도메인에 따라 달라집니다.

배포 성공 확인

장면을 배포한 후에는 이러한 변경 사항이 네트워크의 여러 콘텐츠 서버에 전파되는 데 몇 분이 걸릴 수 있습니다. 배포 직후 Decentraland에 들어가면 잠시 이전 버전의 콘텐츠가 보일 수 있습니다.

CLI로 배포하는 경우, 서명 dapp은 새 버전의 콘텐츠가 네트워크의 모든 서버에 전파되었다는 확인 메시지를 표시하기 시작합니다.

Decentraland의 콘텐츠 네트워크를 구성하는 각 서버 목록이 표시됩니다. 각 서버마다 해당 구획에 마지막으로 업로드된 변경 사항의 타임스탬프가 표시됩니다. 각 서버는 서로 다른 realm을 가리킵니다. 서버 이름이 realm 이름에 어떻게 매핑되는지는 다음에서 확인할 수 있습니다: catalyst 모니터 화면.

전파는 전체 과정의 일부일 뿐입니다. 업로드 후 장면의 3D 모델은 각 플랫폼(Windows 및 Mac)용으로 최적화된 자산 번들로 변환됩니다. 이 변환이 끝날 때까지는 플레이어에게 의도적으로 마지막으로 완전히 작동하던 버전의 장면이 제공됩니다. 이 과정은 보통 몇 초밖에 걸리지 않지만, 아주 큰 장면이거나 서버가 바쁠 때는 더 오래 걸릴 수 있습니다. 변환 진행 상황은 직접 조회할 수 있으며, 다음을 참고하세요: 변환 상태 확인.

다음 명령을 명령줄 콘솔에서 실행하면 언제든 전파 정보를 확인할 수도 있습니다:

npx @dcl/opscli pointer-consistency --pointer 0,0

자동 배포

장면 콘텐츠를 자주 변경하고 간소화된 게시 파이프라인을 구현하고 싶다면, GitHub Actions를 통해 장면 배포를 자동화할 수 있습니다.

이를 위해 먼저 장면을 GitHub 프로젝트에 저장해야 합니다. 그런 다음 다음과 같은 GitHub Actions 을 다음 스크립트와 함께 설정할 수 있으며, 이 스크립트는 다음으로 병합될 때마다 실행됩니다: main 브랜치. 이 스크립트는 필요한 종속성을 설치하고, 프로젝트를 빌드한 다음 Decentraland에 배포합니다.

중요: 이 프로세스가 실행되려면 GitHub에서 지갑의 개인 키를 환경 변수로 설정해야 하며, 이는 배포 서명에 사용됩니다. 항상 그렇듯이 개인 키 보안을 유지하는 데 매우 주의하세요. 실제로 LAND 토큰을 소유한 계정의 개인 키는 사용하지 마세요. 이는 심각한 보안 위험을 초래합니다. 대신 귀중한 토큰을 소유하지 않은 일회용 지갑에 운영자 권한을 위임하세요. 이 개인 키가 유출되더라도, 해당 계정에서 운영자 권한을 쉽게 취소하고 새 지갑을 설정할 수 있습니다.

마지막 업데이트