다음을 통해 공유


입자 효과

연기를 남기는 폭죽 로켓에서 물고기 입에서 나오는 거품까지, 입자는 Minecraft: Bedrock Edition의 콘텐츠에 특수 효과를 추가하는 효과적인 방법입니다.

다양한 불꽃과 빛이 방출되는 지팡이를 든 알렉스를 보여주는 이미지

이 튜토리얼에서는 다음과 같은 사항을 안내해 드립니다.

  • Minecraft: Bedrock Edition에서 사용자 정의 입자 효과를 만드는 방법
  • 지도나 애드온에서 사용할 새 입자 효과를 만드는 방법

요구 사항

튜토리얼을 시작하기 전에 아래 사항을 완료하시길 추천합니다.

안내

입자 사용 사례

입자는 지도나 애드온의 시각적 경험을 증진할 수 있는 강력한 도구입니다. 개체에서 사용하여 연기 같은 배경 효과, 마법 주문 같은 공격이나 다른 애니메이션으로 활용할 수 있습니다. 입자를 지도상의 낙엽 같은 배경 효과로 사용하는 것도 가능합니다. 입자를 이용해 월드에 간단한 2D 그래픽을 표시할 수도 있습니다. 또한 입자는 클라이언트 측만 시뮬레이션하기 때문에 일반적으로 사용자 정의 개체보다 성능이 뛰어납니다.

이름 짓기와 위치

Bedrock은 입자 효과에 JSON 형식을 사용합니다. 파일은 리소스 팩의 particles 폴더에 저장됩니다. 모델과 개체처럼 입자는 식별자를 통해 참조되며, 따라서 참조 여부에 상관없이 파일을 particles 폴더의 아무 하위 폴더에 저장해도 됩니다.

입자 식별자는 JSON 파일 상단에 지정됩니다. 개체처럼 입자 식별자 역시 네임스페이스와 이름으로 구성됩니다(예: compass:colored_smoke).

    "description": {
    "identifier": "compass:colored_smoke",
    },

단위

입자 효과의 모든 값은 미터(블록)와 를 단위로 사용합니다. 속도는 초당 미터(m/s)로 표시되며 가속은 초당 m/s(m/s²)로 표시됩니다. 회전의 경우에는 회전과 삼각 함수 모두에 를 사용합니다.

Snowstorm

이 가이드에서는 Snowstorm을 이용해 입자 효과를 만듭니다. Snowstorm은 웹 앱이나 VSCode의 확장으로 사용할 수 있습니다. 이 기능을 사용하면 매개 변수를 변경하면서 입자 효과를 실시간으로 미리 볼 수 있습니다. 웹 앱은 초보자에게 유용하지만, 다양한 입자 효과가 적용된 프로젝트를 작업 중이라면 VSCode 확장이 더 빠른 작업 절차를 제공합니다.

인터페이스

Snowstorm을 열면 3D 프리뷰 섹션, 사이드바, 메뉴 바와 메뉴 아래에 있는 표현 바가 표시됩니다.

Snowstorm 인터페이스

사이드바는 입자를 구성하는 다양한 매개 변수와 설정의 목록입니다. 필드 다수가 몰랑을 지원합니다. 따라서 정적 숫자를 입력할 수 있지만, 값을 더 제어하고 싶다면 몰랑 언어를 이용하는 수학적 표현을 사용해야 합니다. 각 필드에 마우스 커서를 올리면 수행하는 작업의 설명을 확인할 수 있습니다.

몰랑 표현이 아주 복잡하다면, 메뉴 바로 아래에 있는 표현 바에서 편집할 수 있습니다.

Snowstorm의 표현 바

메뉴 바는 웹 앱에 있는 파일을 가져오거나 내보내고, 예시를 불러오거나 참조를 확인하는 곳입니다.

표현 바 아래에는 프리뷰 섹션이 있습니다. 왼쪽 및 오른쪽 마우스 버튼과 마우스 휠을 이용해 3D 공간을 탐색하고, 아래 버튼을 이용해 미리 보기를 시작하거나 일시 정지할 수 있습니다. 오른쪽 아래에는 이 장면의 FPS와 현재 입자 개수가 표시됩니다.

가져오기 및 내보내기

웹 앱을 사용한다면 파일 메뉴에서 파일을 가져오거나 내보내야 합니다. 오른쪽 위에 있는 코드 탭으로 전환하면 생성된 파일을 미리 보기할 수도 있습니다.

Snowstorm의 코드 탭

사용자 정의 텍스처를 사용 중이라면, 사이드바의 텍스처 섹션에서 개별적으로 불러와야 합니다.

Snowstorm에서의 텍스처 선택

VSCode 확장을 사용한다면 particles 폴더에서 <name>.particle.json이라는 새 파일을 만들어야 합니다. VSCode가 Snowstorm 편집기를 이용해 이 파일을 자동으로 엽니다. 또한 오른쪽 위에 있는 코드 열기를 클릭하면 생성된 코드를 새 탭에서 미리 보고, 이 탭에서 코드를 바로 편집할 수 있습니다.

입자 효과 만들기

이 가이드에서는 색상 지정 연기 효과를 단계별로 생성합니다. 먼저 Snowstorm을 열고 사이드바에서 메타 섹션을 찾습니다. 입자 효과의 식별자를 입력합니다. 여기서는 compass:colored_smoke를 사용합니다.

Snowstorm에서의 식별자

방출기

생성된 입자의 최종 결과

지금부터는 방출기를 변경해보겠습니다. 방출기는 입자 효과의 핵심 요소이며 입자를 생성하는 역할을 합니다. 먼저 속도 섹션을 열어 생성되는 입자 수를 정의해야 합니다. 모드 설정은 지속으로 유지하여 방출기가 입자를 계속 생성하게 하고, 속도는 30으로 설정하고 최고 속도는 100으로 설정합니다. 이렇게 하면 월드에 존재하는 이 방출기가 생성하는 입자가 100개를 넘지 않는 한, 방출기는 수명이 다할 때까지 초당 입자 30개를 생성합니다.

Snowstorm에서의 방출기 속도

지금부터는 방출기의 수명을 정의합니다. 이 입자 효과는 한 번만 재생하지만, 지속적인 방출기가 필요하다면 문한 반복으로 설정하면 됩니다. 활성 시간2로 설정하여 방출기가 2초 동안 입자를 생성하게 합니다.

Snowstorm에서의 방출기 수명

기본적으로 입자는 방출기 중앙의 단일 지점에서 생성됩니다. 우리의 입자 효과에는 이 사실이 아무 문제가 되지 않으므로, 모양 섹션을 변경하지 않아도 됩니다.

입자 크기

지금부터는 입자 설정으로 이동하여 입자 설정을 구성해보겠습니다. 모든 입자는 텍스처가 적용되는 2D 평면입니다. 크기 설정에서는 이 평면의 너비와 높이를 정의할 수 있으며, 각 값은 반경을 의미합니다. 따라서 크기를 1 x 1로 설정하면 2 x 2 블록 크기가 됩니다. 이 예시에서는 0.25 x 0.25를 사용합니다.

Snowstorm에서의 입자 크기

입자 움직임 및 물리 법칙

다음 단계는 입자가 움직이는 방식을 정의하는 것입니다. 움직임 섹션에서 방향 모드를 바깥쪽으로 설정합니다. 포인터 방출기의 경우 이렇게 설정하면 입자가 항상 모든 방향으로 동일하게 확산됩니다.

Snowstorm에서의 입자 움직임

입자의 최초 방향을 설정했으니, 이제 속도를 변경해보겠습니다. 움직임 섹션에서 속도math.random(2, 4)으로 설정합니다. 이것은 항상 2~4 사이의 무작위 10진수를 출력하는 단순한 수학 표현입니다. 속도는 입자가 생성될 때 한 번만 계산되며, 따라서 각 입자는 시작 속도가 무작위로 결정됩니다.

가속은 생성된 입자에 적용되는 힘을 정의합니다. 예를 들어 지구에서의 중력을 시뮬레이션하려면 중앙값(Y축)을 -9.8로 설정해야 합니다. 연기의 경우에는 0, 3, 0을 가속으로 사용하여 위쪽으로 느리게 움직이게 합니다.

이제 가속은 입자가 훨씬 더 빠르게 움직이게 합니다. 잠시 후 입자 속도를 줄이고 입자가 같은 공간에 머무를 수 있도록 대기 저항을 추가하겠습니다. 대기 저항은 입자가 최종 속도에 도달하면 가속 속도를 천천히 낮추는 짙은 공기라고 생각하면 됩니다. 지금은 이를 2로 설정하겠습니다.

대기 저항에 약간의 변화를 주기 위해 이 값을 무작위화하겠습니다. 대기 저항 표현은 프레임 단위로 평가되며, 따라서 수학 무작위 함수는 이 경우에는 작동하지 않습니다. 무작위 값은 사용자가 눈치채기도 전에 서로를 취소하기 때문입니다. 대신 내장된 변수를 사용하겠습니다. 각 입자와 방출기에는 수명이 다할 때까지 바뀌지 않는 4가지 무작위 변수가 자동으로 할당됩니다. 변수에는 0~1 사이의 무작위 숫자가 포함됩니다. 따라서 2~3 사이의 무작위 대기 저항 값을 얻기 위해 값을 2 + variable.particle_random_1로 설정하겠습니다.

입자 수명

지금부터는 월드에 입자가 존재하는 시간을 정의합니다. 천천히 사라지는 효과를 부여하기 위해 이 숫자를 다시 무작위화하겠습니다. 최대 나이는 입자가 생성된 후에 평가되므로, 값을 math.random(1, 3)으로 설정하면 작업을 완수할 수 있습니다.

Snowstorm에서의 입자 수명

텍스처

입자를 위한 자체 입자 텍스처를 만들고 리소스 팩의 텍스처 폴더에 저장할 수 있습니다. 쉽게 이해할 수 있도록 이 예시에서는 기본 Minecraft 입자 스프라이트를 사용합니다. 이 텍스처를 참조할 수 있도록 텍스처 섹션의 경로 필드에 textures/particle/particles를 입력합니다. 현재 텍스처 팩에 없는 텍스처도 자동으로 불러오고 게임에서 표시됩니다. 기본적으로 텍스처의 바닐라 버전이 되기 때문입니다.

Snowstorm에서의 입자 텍스처와 애니메이션 옵션

우리가 사용하는 입자 텍스처는 가장 큰 연기 입자입니다. 점점 더 작은 연기 입자로 변하도록 텍스처를 애니메이션화해야 하니, UV 모드움직임 부여로 설정합니다.

모든 입자의 텍스처가 포함된 전체 텍스처 지도는 해상도가 128 x 128픽셀입니다. 스프라이트에 있는 대부분의 개별 조각은 크기가 8 x 8픽셀입니다. 하지만 이러한 값은 2의 계수로 크기가 증가합니다. 따라서 텍스처 크기는 최종적으로 16 x 16픽셀이 되며, 남은 옵션은 이 크기를 기반으로 하게 됩니다.

가장 큰 연기 입자의 시작 픽셀은 수평으로 56픽셀이며, 2의 계수로 112까지 크기가 증가합니다. 이 맥락에서 텍스처는 16 x 16이므로, 112를 16으로 나누면 7이 되고 이 값이 UV 시작 필드의 값이 됩니다. 아니면 시작할 텍스처 앞에 표시되는 텍스처 수를 세도 됩니다(가장 큰 연기 입자 앞에는 텍스처 7개가 존재합니다). 하지만 빈칸이 많다면 텍스처 수를 수동으로 세기가 쉽지 않을 것입니다.

애니메이션에 더 작은 연기 텍스처로 변하는 모습이 포함되니, UV 단계-1 x 0으로 설정합니다. 이렇게 하면 연기가 이전 텍스처 쪽으로 수평으로 (텍스처 크기에 따라) 16픽셀만큼 왼쪽으로 이동하며 수직으로는 변경되지 않습니다. 최대 프레임7로 설정합니다. 텍스처가 8개 있으니 애니메이션에는 프레임이 8개 존재하며, 첫 번째는 "프레임 0"이고 마지막 프레임은 프레임 7이 됩니다.

이 경우에는 입자 수명이 다할 때까지 모든 프레임을 균일하게 확산해야 합니다. 따라서 FPS 필드에는 아무것도 입력하지 않고, 루프는 선택하지 않으며, 수명이 다할 때까지 연장은 선택해야 합니다. 이제 애니메이션화된 텍스처가 생성되었습니다.

색상

지금부터는 입자에 무작위 색상을 적용하겠습니다. 기본 텍스처는 입자 채색을 쉽게 시작할 수 있는 흰색입니다.

Snowstorm에서의 입자 색상

여기서는 다양한 색상을 사용하며, 각 입자는 무작위 값을 선택합니다. 먼저 색상과 빛 섹션을 열고 그라데이션 모드를 선택합니다. 여기서는 멋지고 단순한 무지개를 구성해보겠습니다. + 아이콘을 이용해 색상 포인트를 추가하고, 포인트를 옮기고, 각 포인트의 색상을 변경할 수 있습니다.

기본 색상 범위는 0~1입니다. 따라서 다른 내장 변수를 이용해 무작위 색상을 선택할 수 있습니다. variable.particle_random_2삽간함수 필드에 입력합니다. 이제 각 입자는 그라데이션의 무작위 색상이 적용된 상태로 생성됩니다.

Snowstorm에서의 최종 결과는 다음과 비슷한 형식이 됩니다.

Snowstorm에서 생성된 입자의 최종 결과

게임에서 입자 효과 사용하기

입자 효과는 게임에서 3가지 방법으로 재생할 수 있습니다.

명령어

효과를 테스트하는 가장 간단한 방법입니다. /particle 명령어를 사용하여 입자 방출기를 월드에 소환합니다.

참고

입자 효과는 전적으로 클라이언트 측이며 명령어는 서버 측에서 실행되므로, 서버는 입자 효과를 인식하지 못합니다. 따라서 존재하지 않는 입자 효과를 재생하려고 해도 오류 메시지가 표시되지 않습니다.

다음은 대표적인 명령어 예시입니다. 명령어 끝에 있는 물결표 3개는 위치를 표시하며, 이 경우에는 명령어가 실행되는 정확한 위치, 즉 플레이어의 발 위치나 명령어를 실행하는 명령어 블록의 중앙을 표시합니다.

/particle compass:colored_smoke ~ ~ ~

애니메이션

입자는 개체 애니메이션에서 재생할 수도 있습니다. 이것은 2단계 프로세스입니다. 먼저 클라이언트 개체 파일에 있는 입자 효과를 연결하고 약식 이름을 지정해야 합니다. 이렇게 하면 약식 이름을 애니메이션에서 사용할 수 있습니다.

약식 이름을 설명 개체에 있는 클라이언트 개체 파일에 연결합니다.

"particle_effects": {
    "smoke": "compass:colored_smoke"
}

입자 효과 키프레임을 Blockbench의 애니메이션에 추가할 수 있습니다. 타임라인 위에 있는 효과 애니메이션화 버튼을 클릭하고 입자 채널에 키프레임을 추가합니다. (클라이언트 개체 파일에 정의된) 약식 이름을 키프레임 패널의 효과 입력에 입력합니다.

입자 효과가 표시되는 개체 파일에 위치탐지기를 지정할 수도 있습니다. 또한 스크립트 입력에 변수를 할당하여 나중에 입자 효과에서 사용할 수도 있습니다.

예시:

variable.custom_size = 3.14;

애니메이션 컨트롤러

입자 효과는 애니메이션 컨트롤러로 재생할 수도 있습니다. 이렇게 하려면 위의 설명에 따라 먼저 입자 효과를 클라이언트 개체 파일에 추가해야 합니다. 그런 다음 하나 이상의 입자 효과를 이 예시에서처럼 애니메이션 컨트롤러의 특정 상태에 추가합니다.

"particle_effects": [
    {
        "effect": "smoke"
    }
]

다음 튜토리얼

축하합니다. 입자 문서를 다 읽으셨습니다! 사용자 정의 입자 효과를 만드는 방법, 방출기를 구성하는 방법, 물리 법칙을 변경하는 방법, 애니메이션화한 텍스처를 사용하는 방법, 색상을 부여하는 방법을 확인했습니다.

입자 효과를 만드는 작업은 시행착오의 반복이며, 다양한 설정을 조합하고, 몰랑 표현을 이용해 매개 변수를 적용해야 합니다. 더 자세한 내용을 알고 싶다면 예시 입자와 구성을 확인하여, 입자를 만드는 데 사용 수 있는 다양한 값과 표현을 알아보세요. 가장 중요한 일은 모든 매개 변수를 즐겁게 실험하면서 결과를 확인하는 것입니다.