Skip to content
Home » 유니티 파티클 스크립트 제어 | 유니티 입문 강좌 Part 10 – 파티클 시스템 256 개의 가장 정확한 답변

유니티 파티클 스크립트 제어 | 유니티 입문 강좌 Part 10 – 파티클 시스템 256 개의 가장 정확한 답변

당신은 주제를 찾고 있습니까 “유니티 파티클 스크립트 제어 – 유니티 입문 강좌 Part 10 – 파티클 시스템“? 다음 카테고리의 웹사이트 kk.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: kk.taphoamini.com/wiki. 바로 아래에서 답을 찾을 수 있습니다. 작성자 케이디 이(가) 작성한 기사에는 조회수 21,483회 및 좋아요 276개 개의 좋아요가 있습니다.

2)스크립트에서 파티클시스템 변수와 파티클 배열을 선언한다. 3)파티클 시스템의 현재 활성화된 파티클을 가져오고 개수를 출력한다. 4)게임을 플레이하면 활성화된 파티클의 개수를 출력한다.

URL로 공유시 전체 선택하여 복사하세요.
  • 자막
  • 자동 1080 HD화질변경
  • 신고하기

Table of Contents

유니티 파티클 스크립트 제어 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 유니티 입문 강좌 Part 10 – 파티클 시스템 – 유니티 파티클 스크립트 제어 주제에 대한 세부정보를 참조하세요

입자들을 이용해서 수많은 이펙트를 만들 수 있는
Paticle System에 대해서 알아보자!
====================================
본 강좌가 도움이 되셨다면,
♥ 구독 (Subscribe)
♥ 좋아요 (like)
====================================
▶ 후원 : https://www.patreon.com/keidy
▶ 티스토리 : http://keidy.tistory.com/
▶ 트위터 : https://twitter.com/KeidyTwit
▶ 유데미 : https://www.udemy.com/keidyunitycourseadvanced/
====================================

► 본 강좌는 무료입니다.
– 모든 후원은 더 나은 양질의 컨텐츠를 계속 제작할 수 있는
가장 큰 원동력이 됩니다.

유니티 파티클 스크립트 제어 주제에 대한 자세한 내용은 여기를 참조하세요.

[Unity] 파티클 시스템 Play Stop 스크립트 제어 – My_Codepia

Particle System > Play On Awake* 체크 꺼줌. 2. 스크립트 작성 후 particleObject 에다가 ParticleSystem 넣어줌. using System.Collections;

+ 여기에 보기

Source: mycodepia.tistory.com

Date Published: 3/1/2021

View: 6375

유니티 파티클 스크립트 제어 | 유니티 입문 강좌 Part 10

유니티 파티클 스크립트 제어 주제에 대한 자세한 내용은 여기를 참조하세요. [Unity] 파티클 시스템 Play Stop 스크립트 제어 – My_Codepia; [Unity 기초] …

+ 여기에 보기

Source: you.giarevietnam.vn

Date Published: 4/1/2022

View: 6845

[Unity 기초] 파티클 시스템 (Particle System) – 연잎의 develog

Pause ,Restart,Stop으로 입자의 움직임을 제어할수있다. Particle System의 Inspector창. 우선 Transform 의 Position,Rocation,Scale로 각각 파티클의 위치,회전각, …

+ 여기를 클릭

Source: flowersayo.tistory.com

Date Published: 3/30/2022

View: 2214

충돌 모듈 – Unity 매뉴얼

이 모듈은 씬에서 파티클과 게임 오브젝트가 충돌하는 방법을 제어합니다. … OnParticleCollision 함수를 통해 스크립트에서 파티클 충돌을 감지할 수 있습니다.

+ 더 읽기

Source: docs.unity3d.com

Date Published: 12/1/2021

View: 2210

파티클시스템 스크립트 접근법 – nothing

유니티 천,unity cloth 활용하기 유니티 천,unity cloth 활용하기 맥스에서 적당한 폴리곤갯수로 만든다음 랜더링을 건다. 테스트결과 스킨을 잡아도되고 …

+ 여기에 보기

Source: allisnothing.tistory.com

Date Published: 7/3/2022

View: 2137

[유니티 파티클시스템]13.코드를 통해 파티클 시스템 제어하기 …

파티클 충돌시 가상오브젝트 동기화 이펙트 제작을 위해서 -파티클 입자들을 스크립트로 디테일하게 제어 -파티클 시스템이 제공하는 컴포넌트에 대한 …

+ 여기에 표시

Source: m.blog.naver.com

Date Published: 1/20/2021

View: 7500

Unity 파티클시스템 적용해보기! Particles System

저는 아래에 Small explosion이라는 만들어져 있는 프리팹을 적용해 보기로 하였습니다. Enemy Control이라는 스크립트 파일에 public 으로 Explosion …

+ 더 읽기

Source: alolomersedess.tistory.com

Date Published: 10/8/2022

View: 2578

Unity Chapter 11-12. 좀비 TPS 게임 만들기 : 파티클 시스템

파티클 제어를 담당할 빈 게임 오브젝트 Effect Manager 를 생성한다. 위치는 상관 없긴 하지만 그래도 reset 해주자. EffectManager.cs …

+ 여기에 보기

Source: ansohxxn.github.io

Date Published: 5/29/2022

View: 7387

[Unity] 빌트인 파티클 시스템(Built-in Particle System) – DIBRARY

CPU에서 파티클 동작을 시뮬레이션함 · C# 스크립트를 통해 파티클 시스템과 해당 시스템 내의 개별 파티클들과 상호 작용이 가능 …

+ 여기에 보기

Source: daekyoulibrary.tistory.com

Date Published: 1/8/2022

View: 54

주제와 관련된 이미지 유니티 파티클 스크립트 제어

주제와 관련된 더 많은 사진을 참조하십시오 유니티 입문 강좌 Part 10 – 파티클 시스템. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

유니티 입문 강좌 Part 10 - 파티클 시스템
유니티 입문 강좌 Part 10 – 파티클 시스템

주제에 대한 기사 평가 유니티 파티클 스크립트 제어

  • Author: 케이디
  • Views: 조회수 21,483회
  • Likes: 좋아요 276개
  • Date Published: 2018. 12. 3.
  • Video Url link: https://www.youtube.com/watch?v=kPpTU4S5AeM

유니티에서 스크립트로 개별 파티클 제어하기(GetParticles, SetParticles)

유니티에서 스크립트로 개별 파티클 설정하기(GetParticles, SetParticles)

1)씬에 새로운 파티클을 생성하고 최대 파티클 개수를 설정한다(max particles)

2)스크립트에서 파티클시스템 변수와 파티클 배열을 선언한다.

3)파티클 시스템의 현재 활성화된 파티클을 가져오고 개수를 출력한다.

docs.unity3d.com/ScriptReference/ParticleSystem.GetParticles.html

4)게임을 플레이하면 활성화된 파티클의 개수를 출력한다.

5)파티클 개수가 증가하여 최대 파티클 개수에 도달한다. 에디터에서 표시하는 현재 파티클의 개수와 동일한것을 확인할수있다.

6)프레임마다 개별 파티클(예에서 0번 파티클)의 남은 수명을 출력한다(Particle.remainingLifetime)

7)파티클의 시작 수명을 설정하였다(start lifetime-1)

8)파티클이 생성된 이후 시간이 지남에 따라서 남은수명(Particle.remainingLifetime)의 수치가 낮아지는것을 확인할수있다.

9)파티클이 사라지면 해당 배열의 요소에 새로운 파티클을 할당한다.

10)개별 파티클의 속성을 설정하고 이것을 파티클시스템에 적용할수있다.

아래 스크립트에서 활성화된 모든 개별 파티클의 속도를 설정하고 이것을 파티클 시스템의 파티클로 설정한다.

docs.unity3d.com/ScriptReference/ParticleSystem.SetParticles.html

GetParticles

docs.unity3d.com/ScriptReference/ParticleSystem.GetParticles.html

SetParticles

docs.unity3d.com/ScriptReference/ParticleSystem.SetParticles.html

Particle

docs.unity3d.com/ScriptReference/ParticleSystem.Particle.html

유니티 파티클 스크립트 제어 | 유니티 입문 강좌 Part 10 – 파티클 시스템 207 개의 베스트 답변

We are using cookies to give you the best experience on our website.

You can find out more about which cookies we are using or switch them off in settings.

[Unity 기초] 파티클 시스템 (Particle System)

728×90

본 게시물은 유튜브 ‘케이디’ 님 강좌를 바탕으로 쓰여졌습니다.

*Particle System 추가하는법

Hierarchy->Effect->Particle Sytem 클릭

추가해주면 뭔가 여러개의 빛들이 뿜어져 나옴.

Pause ,Restart,Stop으로 입자의 움직임을 제어할수있다.

Particle System의 Inspector창

우선 Transform 의 Position,Rocation,Scale로 각각 파티클의 위치,회전각,크기를 바꿀수 있다.

Duration: 지속시간.

Looping :반복여부.

Prewarm: 예열기간. 처음부터 입자가 모두 방출된채로 시작할건지/ 서서히 방출하기 시작할건지

Start Delay: 시스템이 활성화된 후 방출을 시작하기까지 기다리는 지연 시간

Start Lifetime :생명주기. 입자가 생성되고 언제 사라지는지

Start speed :입자 방출 속도

-Constant :상수 (고정값)

-Curve : 곡선

-Random Between Two Constants: 두 상수사이에서 랜덤하게 선택.

-Random Between Two Curves : 두 곡선사이에서 랜덤하게 선택.

3D Start Size: 3D 시작 크기

Start Size: 시작 크기

.

Start Rotation : 시작각도

Start Color : 시작 색깔

Gravity Modifier: 중력. 0으로 하면 중력 효과가 해제

Simulation Space: 파티클을 부모 오브젝트를 따라 이동하게 할지, 커스텀 오브젝트를 따라 이동하게 할지, 게임 월드에서 독립적으로 이동하게 할지 결정

더보기 예를 들어 구름, 호스, 화염 방사기와 같은 시스템에서는 파티클이 부모 게임 오브젝트와 따로 움직이도록 해야함. 오브젝트가 주변을 움직이면서 파티클을 생성하더라도 생성된 파티클은 월드 공간에 잔류하는 흔적을 남기기 때문. 반면에 두 개의 전극 사이에서 생기는 불꽃을 만드는 데 사용되는 파티클이라면 부모 오브젝트와 함께 이동해야함.Custom으로 설정하면 파티클이 더 이상 자체 트랜스폼 컴포넌트에 비례하여 움직이지 않으며, 지정된 트랜스폼 컴포넌트의 움직임에 비례하여 움직임.

Simulation Speed :시뮬레이션 속도

Delta Time: 일시정지했을때 계속 재생시킬것인지 여부

Scaling Mode: 트랜스폼에서 스케일을 사용하는 방법을 설정

Hierarchy/Local/Shape

Local을 선택하면 파티클 시스템 트랜스폼 스케일만 적용되고 부모는 무시

Shape을 선택하면 파티클의 시작 포지션에 스케일이 적용되지만 크기에는 영향X.

Play on Awake: 씬 시작할때 재생시킬것인지 여부

Emitter Velocity: 방출속도

Max Particles:동시에 활성화되있는 최대 입자수

Auto Random Seed:활성화하면 파티클 시스템을 재생할 때마다 시스템이 조금씩 다르게 표시됨. 비활성화하면 시스템을 재생할 때마다 파티클 시스템이 똑같이 보임.

Stop Action: 시스템에 속한 모든 파티클이 완료되어 시스템이 중지되었을 때 특정 동작을 수행하도록 설정

Particle system을 정지시켰을때 게임 오브젝트의 상태 결정

None

Destroy(파괴)

Disable(비활성화)

Callback(OnParticleSystemStopped 콜백을 게임 오브젝트에 연결된 스크립트로 전송)

*Particle System의 정지 기준?

더보기 시스템의 파티클이 모두 소멸되고 파티클의 수명이 지속 시간을 초과하면 시스템이 중지된 것으로 간주 루프를 반복하는 시스템에서는 스크립트를 통해 중지되었을 때 중지된 것으로 간주

Culling Mode :파티클이 화면을 벗어나면 파티클 시스템 시뮬레이션을 일시정지할지 여부

Ring buffer Mode :파티클이 Max Particles 수에 도달할 때까지 파티클을 계속 활성화. Max Particles 수에 도달하면 수명이 경과한 파티클을 제거하는 대신 가장 오래된 파티클을 재활용하여 새 파티클을 생성함.

Disabled 시스템이 수명이 경과한 파티클을 제거하도록 Ring Buffer Mode 를 비활성화합니다. Pause Until Replaced 수명을 다한 오래된 파티클을 일시정지했다가 Max Particle 한계에 도달하면 시스템에서 재활용하여 새 파티클로 다시 표시되게 합니다. Loop Until Replaced 수명을 다한 파티클이 특정한 수명 비율 지점으로 다시 돌아가며, Max Particle 한계에 도달하면 시스템에서 재활용하여 새 파티클로 다시 표시되게 합니다.

<여러가지 모듈>

Emission : 파티클 시스템의 방출 속도와 타이밍 관련.

Rate over Time 시간 단위당 방출되는 파티클의 수 Rate over Distance 이동한 거리 단위당 방출되는 파티클의 수 Bursts 버스트는 파티클을 생성하는 이벤트입니다. 이 설정을 통해 지정된 시점에 파티클을 방출할 수 o Time 파티클 시스템이 시작된 이후로 버스트를 방출할 시점을 초 단위로 설정 Count 방출되는 파티클 수를 설정 Cycles 버스트를 반복할 횟수를 설정 Interval 버스트가 반복되는 시간 사이의 간격(초)을 설정 Probability 각 버스트 이벤트가 파티클을 생성할 가능성을 제어 값이 클수록 시스템이 더 많은 파티클을 생성하며, 값을 ’1’로 설정하면 시스템이 100% 파티클을 생성.

+를 눌러 요소를 하나 추가해줘보았다.

그럼 이렇게 특정 시간 간격마다 30개의 입자가 한꺼번에 방출된다!

Shape :파티클 시스템이 방출될 수 있는 체적 또는 표면과 시작 속도의 방향을 정의

Shape :방출 볼륨의 모양

Angle: 방출 볼륨의 각도

Radius :입자들이 뿜어져 나오는 원의 범위

더보기 빨간색 원의 반지름 =Radius

Postion/Rotation /Scale: 방출볼륨의 위치,회전각,규모(크기)

Velocity over Lifetime: 파티클의 수명 주기에 걸친 속도 조절

Linear :X축, Y축, Z축에 있는 파티클의 직선 속도

Orbital: X축, Y축, Z축 주위에 있는 파티클의 궤도 속도

Offset: 궤도를 따라 파티클을 회전시키기 위한 궤도의 중앙 포지션

수치를 잘 조정하면 이렇게 축을 중심으로 빙글빙글 회전하는 Particle System을 만들수도 있다!

Limit Velocity over Lifetime: 파티클의 속도가 전체 수명 동안 어떻게 감소되는지 제어

Drag :저항값. 시간이 지날수록 점점 speed를 낮춤.

Force over Lifetime : 파티클의 움직임은 이 모듈에서 설정된 힘(예: 바람이나 인력)에 의해 가속화

speed!=force 는 다른 개념

Color over Lifetime : 시간에따른 색깔변화

맨 왼쪽이 start color, 맨 오른쪽이 사라지기 직전의 color

위와 같은 setting을 적용시켜주고 나면,

입자의 처음 시작컬러는 하늘색이었다가 점점 그라데이션되면서 빨간색으로 변함.

Size over Lifetime : 시간에 따른 크기변화 ->그래프로 표현 가능.

Noise : Particle의 노이즈효과( 움직임 방해)

적용시켜주면

입자가 부들부들 떨린다. 지지직거림.

Collision :입자의 충돌여부

이때 Type 을 World로 선택하면 collider를 지닌 모든 객체와 충돌한다.

->자원소비가 심해서 권장하지 x

나는 plane과 충돌하도록 설정해주었다.

그럼 이렇게 particle과 plane이 충돌하여 입자가 통통 튀긴다.

Triggers : 충돌했을 경우 특정 이벤트 실행

+ 를 눌러서 collider를 추가시킬수있다.

Inside : 콜리더에 닿는순간.

Outside :콜리더에 닿지 않는순간

Enter : 들어올때

Exit :들어왔다 빠져나갈때

kill(없음) /ignore(무시)/callback

+onTriggerExit와 같은 함수를 이용해 특정 장치가 실행되도록 할수도있다.

Sub Emitters : 입자들의 입자

EX) 폭탄이 땅에 착지하고 터질때 . 미사일의 잔해가 다른 곳으로 날라가서 또 폭발을 일으킬때

Texture Sheet Animation :입자를 sprite로 바꿀수 있도록함.

Mode -> sprite -> 원하는 사진삽입 가능

check 표시 sprite로 바꾸어 보았다.

Light : 파티클에 실시간 광원을 추가

Ratio : 광원이 붙어있을 확률. 1=100%

Maximum Light : 최대 Light수

Trail : 입자가 지나간 흔적을 표시

Ratio :흔적을 표시할 확률

Minimum Vertex Distance :잔상에 새로운 버텍스가 추가되기까지 파티클이 이동해야 하는 거리를 정의.최적화같은것.

0에 가까울수록 과부하 , 1에 가까울수록 나아짐.

Texture Mode : 여러가지효과 tile/segment/stretch 등등

Color over Lifetime :잔상이 추가된 파티클의 수명에 따라 전체 잔상의 색상을 제어

Width over Trail : 잔상의 너비를 길이에 따라 제어

Color over Trail : 잔상의 컬러를 길이에 따라 제어

처음에 무작정 적용시키면 자주색으로 그래픽이 깨져서 보이는데 그건 render module 의 Trail Material 을 설정해주지 않아서 그렇다.

none 으로 되어있던걸 바꾸어주면 그래픽 깨짐현상 해결.

Trail을 활용하면 이렇게 뭔가 영혼? 같은 느낌도 표현이 가능하다!

그외

Color by speed/Size by speed/Rotation by speed :속도값에 따라 색깔,속도,회전을 조정할수 있음.

그리고 대망의 마지막 모듈

Renderer

Render Mode :렌더링된 이미지가 그래픽 이미지나 메시에서 생성되는 방식

Stretched Billboard:파티클은 항상 카메라를 향하지만, 다양한 스케일이 적용

Horizontal Billboard:파티클 평면과 XZ “바닥” 평면이 평행해짐

-> = 위에서 아래로 내려다봐야 보임

Vertical Billboard : 파티클이 월드 Y축에 똑바로 서 있지만 카메라를 향함.

-> xy 평면을바라보아야 보임.

Render Alignment :파티클 빌보드가 어느 방향을 향하고 있는지 선택

View 파티클은 카메라 평면을 향합니다. World 파티클은 월드 축과 정렬됩니다. Local 파티클은 해당 게임 오브젝트의 Transform 컴포넌트에 따라 정렬됩니다. Facing 파티클은 카메라 게임 오브젝트의 정면을 향합니다.

Masking:

가려지게하는거

Cast Shadow:활성화하면 파티클 시스템은 섀도우 캐스팅 광원이 빛날 때 섀도우를 만듬.Receice Shadows : 다른것에 의해 그림자 영향을 받을것인가Sorting Layer/Order in Layer :우선순위 결정Light Probes : 프로브 기반 조명 보간 모드Reflection Probes :이 옵션이 활성화되어 있고 반사 프로브가 씬에 존재할 경우 이 게임 오브젝트에 대한 반사 텍스처가 선택되고 빌트인 셰이더 uniform 변수로 설정

Pivot : 회전하는 파티클의 중심 피벗 포인트를 수정

< Particle System Script 활용>

using System.Collections; using System.Collections.Generic; using UnityEngine; public class NewBehaviourScript : MonoBehaviour { ParticleSystem ps; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { ps.Play();// 재생시작 ps.Emit(100);//즉각적으로 100개의 파티클 방출 , burst같은것. ps.Stop(); //정지 ps.Pause(); //일시정지 ps.transform.localScale = new Vector3(2, 2, 2); //파티클 시스템 크기 변경 } }

Unity 매뉴얼

외부 힘 모듈 트리거 모듈

충돌 모듈

이 모듈은 씬에서 파티클과 게임 오브젝트가 충돌하는 방법을 제어합니다. 첫 번째 드롭다운 메뉴를 사용하여 충돌 설정을 Planes 또는 World 에 적용할지를 정의합니다. World 를 선택한 경우 Collision Mode 드롭다운 메뉴를 사용하여 충돌 설정을 2D 또는 3D 월드에 적용할지를 정의합니다.

충돌 모듈 사용

이 모듈은 Particle System 컴포넌트의 일부입니다. 새로운 파티클 시스템 게임 오브젝트를 생성하거나 Particle System 컴포넌트를 기존의 게임 오브젝트에 추가하는 경우 Unity는 충돌 모듈을 파티클 시스템에 추가합니다. 기본적으로 Unity는 이 모듈을 비활성화합니다. 새로운 파티클 시스템을 생성하고 이 모듈을 활성화하려면 다음 단계를 따르십시오.

GameObject > Effects > Particle System을 클릭합니다. 해당 인스펙터에서 Particle System 컴포넌트를 찾습니다. Particle System 컴포넌트에서 충돌 모듈 폴드아웃을 찾습니다. 폴드아웃 헤더 왼쪽에 있는 체크박스를 활성화합니다.

API

이 모듈이 Particle System 컴포넌트의 일부이므로 ParticleSystem 클래스를 통해 액세스합니다. 이 모듈에 액세스하고 런타임 시 값을 변경하는 방법에 대한 내용은 충돌 모듈 API 문서를 참조하십시오.

평면 모듈 프로퍼티

이 섹션의 일부 프로퍼티에 대해 다른 모드를 사용하여 해당 값을 설정할 수 있습니다. 사용할 수 있는 모드에 대한 정보는 시간 경과에 따른 프로퍼티 다양화를 참조하십시오.

프로퍼티 기능 Planes popup Planes 모드를 선택합니다. Planes 충돌 평면을 정의하는 트랜스폼의 확장 리스트입니다. Visualization 충돌 평면 기즈모를 씬 뷰에서 와이어프레임으로 표시할지 솔리드 평면으로 표시할지 선택합니다. Scale Plane 시각화에 사용되는 평면 크기입니다. Dampen 파티클이 충돌한 후 줄어드는 속도의 비율입니다. Bounce 파티클이 충돌한 후 충돌 표면에서 튕겨져 나오는 속도의 비율입니다. Lifetime Loss 파티클이 충돌할 때 줄어드는 전체 수명의 비율입니다. Min Kill Speed 충돌한 후 이 속도 이하로 이동하는 파티클은 시스템에서 제거됩니다. Max Kill Speed 충돌한 후 이 속도 이상으로 이동하는 파티클은 시스템에서 제거됩니다. Radius Scale 파티클 충돌 구체의 반지름을 조절할 수 있으며, 이를 통해 시각적으로 가장자리에 잘 맞게 표현할 수 있습니다. Send Collision Messages 이 옵션이 활성화되어 있으면 OnParticleCollision 함수를 통해 스크립트에서 파티클 충돌을 감지할 수 있습니다. Visualize Bounds 씬 뷰에서 각 파티클의 충돌 튕김을 와이어프레임 모양으로 렌더링합니다.

월드 모듈 프로퍼티

이 섹션의 일부 프로퍼티에 대해 다른 모드를 사용하여 해당 값을 설정할 수 있습니다. 사용할 수 있는 모드에 대한 정보는 시간 경과에 따른 프로퍼티 다양화를 참조하십시오.

프로퍼티 기능 World popup World 모드를 선택합니다. Collision Mode 3D 또는 2D입니다. Dampen 파티클이 충돌한 후 줄어드는 속도의 비율입니다. Bounce 파티클이 충돌한 후 충돌 표면에서 튕겨져 나오는 속도의 비율입니다. Lifetime Loss 파티클이 충돌할 때 줄어드는 전체 수명의 비율입니다. Min Kill Speed 충돌한 후 이 속도 이하로 이동하는 파티클은 시스템에서 제거됩니다. Max Kill Speed 충돌한 후 이 속도 이상으로 이동하는 파티클은 시스템에서 제거됩니다. Radius Scale 2D 또는 3D 설정입니다. Collision Quality 이 드롭다운 메뉴를 사용하여 파티클 충돌 품질을 설정합니다. 이렇게 하면 콜라이더를 통해 통과할 수 있는 파티클의 수가 영향을 받게 됩니다. 낮은 품질의 레벨에서는 파티클이 가끔 콜라이더를 통과할 수 있지만 계산할 때 리소스가 덜 소모됩니다. High Collision Quality 를 High 로 설정하면 충돌은 항상 물리 시스템을 활용하여 충돌 결과를 감지합니다. 리소스가 가장 많이 소모되지만 가장 정확합니다. Medium (Static Colliders) Collision Quality 를 Medium (Static Colliders) 으로 설정하면 충돌은 복셀 그리드를 사용하여 이전 충돌을 캐시하여 나중에 프레임에서 빠르게 재사용할 수 있습니다. 이 캐시에 대한 자세한 내용은 다음 월드 충돌을 참조하십시오.

Medium 과 Low 의 유일한 차이점은 파티클 시스템이 물리 시스템에 쿼리하는 프레임당 횟수입니다. Medium 은 Low 보다 프레임당 더 많이 쿼리합니다.

이 설정은 절대 움직이지 않는 정적 콜라이더에만 적합합니다. Low (Static Colliders) Collision Quality 를 Low (Static Colliders) 로 설정하면 충돌은 복셀 그리드를 사용하여 이전 충돌을 캐시하여 나중에 프레임에서 빠르게 재사용할 수 있습니다. 이 캐시에 대한 자세한 내용은 다음 월드 충돌을 참조하십시오.

Medium 과 Low 의 유일한 차이점은 파티클 시스템이 물리 시스템에 쿼리하는 프레임당 횟수입니다. Medium 은 Low 보다 프레임당 더 많이 쿼리합니다.

이 설정은 절대 움직이지 않는 정적 콜라이더에만 적합합니다. Collides with 파티클은 선택한 레이어의 오브젝트와만 충돌합니다. Max Collision Shapes 파티클 충돌에 대해 고려할 수 있는 충돌 형태의 수입니다. 과도한 형태는 무시되며 터레인이 우선 순위를 갖습니다. Enable Dynamic Colliders Dynamic colliders are any collider not configured as Kinematic (see documentation on colliders for further information on collider types).

Check this option to include these collider types in the set of objects that the particles respond to in collisions. If you uncheck this option, the particles only respond to collisions against static colliders. Voxel Size 복셀은 3차원 공간에서 일반 그리드의 값을 나타냅니다. Medium 또는 Low 품질의 충돌을 사용할 때 Unity는 그리드 구조에서 충돌을 캐시합니다. 이 설정은 그리드 크기를 제어합니다. 값이 작을수록 정확도는 높아지지만 메모리를 많이 사용하고 효율성이 떨어집니다.

참고: Collision Quality 가 Medium 또는 Low 로 설정되었을 때에만 이 프로퍼티를 사용할 수 있습니다. Collider Force 파티클 충돌 이후 물리 콜라이더에 힘을 가합니다. 파티클로 콜라이더를 미는 데 유용합니다. Multiply by Collision Angle 콜라이더에 힘을 적용할 때 파티클과 콜라이더 간의 충돌 각을 기반으로 힘의 세기를 조정합니다. 그레이징 각은 정면 충돌보다 더 적은 힘을 발생시킵니다. Multiply by Particle Speed 콜라이더에 힘을 적용할 때 파티클의 속력을 기반으로 힘의 세기를 조정합니다. 빠르게 이동하는 파티클은 느리게 이동하는 파티클보다 더 많은 힘을 발생시킵니다. Multiply by Particle Size 콜라이더에 힘을 적용할 때 파티클의 크기를 기반으로 힘의 세기를 조정합니다. 크기가 큰 파티클은 작은 파티클보다 더 많은 힘을 발생시킵니다. Send Collision Messages OnParticleCollision 함수로 스크립트에서 파티클 충돌을 감지하려면 이 옵션을 선택합니다. Visualize Bounds 씬 뷰에서 각 파티클의 충돌 구체를 미리 볼 수 있습니다.

세부 정보

파티클 시스템을 둘러싸고 있는 다른 오브젝트는 파티클이 오브젝트와 상호 작용할 때 더욱 효과적입니다. 예를 들어 물이나 잔해는 쉽게 통과되지 않고 단단한 벽에 의해 차단되어야 합니다. 충돌 모듈을 활성화하면 파티클이 씬의 오브젝트와 충돌할 수 있습니다.

팝업 창에서 월드(World) 모드를 선택하여 파티클이 씬의 모든 콜라이더와 충돌할 수 있도록 파티클 시스템을 설정할 수 있습니다. 콜라이더는 충돌 대상(Collides With) 프로퍼티를 사용하여 사용되는 레이어에 따라 비활성화할 수도 있습니다. 팝업 창에 평면(Planes) 모드 옵션도 있으므로 콜라이더가 필요 없는 평면 집합을 씬에 추가할 수 있습니다. 이 옵션은 간단한 바닥, 벽이나 그와 비슷한 오브젝트에 유용하며 월드 모드보다 프로세서 오버헤드가 낮습니다.

평면 모드가 활성화되어 있으면 평면 프로퍼티를 통해 트랜스폼 리스트(일반적으로 빈 게임 오브젝트)를 추가할 수 있습니다. 평면은 오브젝트의 로컬 XZ 평면에서 무한대로 확장되며 양의 Y축은 평면의 노멀 벡터를 나타냅니다. 개발을 돕기 위해 오브젝트에 눈으로 볼 수 있는 메시가 있는지 여부에 관계없이 평면이 기즈모로 표시됩니다. 기즈모는 와이어프레임 그리드 또는 솔리드 평면으로 표시할 수 있으며 크기를 조정할 수도 있습니다. 하지만 스케일링은 시각화에만 적용됩니다. 충돌 평면 자체는 씬을 통해 무한대로 확장됩니다.

충돌이 활성화되면 그래픽이 표면과 접촉할 때 잘릴 수 있기 때문에 파티클 크기가 문제가 되는 경우가 있습니다. 이로 인해 파티클이 멈추거나 튀어 오르기 전에 표면 중간에 “가라앉는” 것처럼 보일 수 있습니다. 반지름 스케일(Radius Scale) 프로퍼티는 파티클의 대략적인 원형 반경을 실제 크기의 백분율로 정의하여 이 문제를 해결합니다. 이 크기 정보는 클리핑을 방지하고 침몰 효과를 피하기 위해 사용됩니다.

감속(Dampen) 및 바운스(Bounce) 프로퍼티는 파티클이 솔리드 오브젝트를 나타내는 경우 유용합니다. 예를 들어 자갈은 던져질 때 딱딱한 표면에서 튀어 나오는 경향이 있지만 눈뭉치 파티클은 충돌하면서 속도가 줄어듭니다. 수명 손실(Lifetime Loss) 및 최소 소멸 속력(Min Kill Speed) 은 충돌 후 남은 파티클의 영향을 줄이는 데 사용됩니다. 예를 들어 불 덩어리는 공기 중을 비행하는 몇 초 동안은 지속될 수 있지만 충돌한 후에는 분리된 불 파티클이 빠르게 소멸되어야 합니다.

충돌 메시지 보내기(Send Collision Messages) 를 활성화하면 스크립트에서 파티클 충돌을 감지할 수 있습니다. 스크립트는 파티클 시스템이나 콜라이더가 있는 시스템에 연결할 수 있습니다. 충돌을 감지하게 함으로써 게임플레이에서 파티클을 발사체, 마법 주문, 파워 업과 같은 능동적인 오브젝트로 사용할 수 있습니다. 자세한 내용과 예제는 MonoBehaviour.OnParticleCollision의 스크립트 레퍼런스 페이지를 참조하십시오.

월드 충돌 품질

월드 충돌 모듈에는 충돌 품질(Collision Quality) 프로퍼티가 있으며 이 프로퍼티는 높음(High), 중간(Medium) 또는 낮음(Low) 으로 설정할 수 있습니다. 충돌 품질 을 중간(정적 콜라이더)(Medium (Static Colliders)) 또는 낮음(정적 콜라이더(Low (Static Colliders))로 설정하면 충돌은 3D 그리드 값인 복셀의 그리드를 사용하여 이전 충돌을 캐시하여 나중에 프레임에서 빠르게 재사용할 수 있습니다.

이 캐시는 각 복셀의 평면으로 구성되어 있습니다. 여기서 평면은 각 포지션의 충돌 표면을 의미합니다. 매 프레임마다 Unity는 파티클이 위치한 평면 캐시를 체크합니다. 만일 캐시가 존재한다면, Unity는 이를 통해 충돌 검사를 합니다. 캐시가 존재하지 않는 경우 물리 시스템을 활용합니다. 충돌이 리턴되면 캐시에 추가되어 이후 프레임에서 쿼리 속도를 향상시킵니다.

이는 근사치이므로 충돌이 누락될 수도 있지만, 복셀 크기 값을 줄여 이를 어느 정도 줄일 수 있습니다. 하지만 이렇게 하면 메모리가 추가적으로 사용되어 효율성이 떨어집니다.

중간(Medium) 과 낮음(Low) 사이의 유일한 차이점은 프레임당 시스템이 물리 시스템에 쿼리할 수 있도록 허용된 횟수입니다. 낮음(Low)은 중간(Medium)보다 프레임당 쿼리가 적습니다. 프레임당 예산이 초과되면 남아 있는 파티클에 캐시만 사용됩니다. 이렇게 하면 캐시가 충분히 채워질 때까지 누락된 충돌이 늘어날 수 있습니다.

2017–05–30 페이지 수정됨

Unity [2017.1]에서 충돌 모듈의 기능 변경됨(../Manual/30_search.html?q=newin20171) NewIn20171

파티클시스템 스크립트 접근법

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class rayrayer : MonoBehaviour {

public ParticleSystem ps;

public float PsEmission;

// Use this for initialization

void Start () {

ps = GetComponent ();

}

// Update is called once per frame

void Update () {

var emission = ps.emission; //모듈접근법 ps.main , ps.shape 등으로 접근가능하다.

emission.rate = PsEmission;

}

}

공유하기 게시글 관리 저작자표시

[유니티 파티클시스템]13.코드를 통해 파티클 시스템 제어하기 트레이닝 세션 코드 분석(2017 유니티)

using System.Collections; using System.Collections.Generic; using UnityEngine; public class ParticleDecalData { //데칼이 붙을 파티클들의 위치 public Vector3 position; //크기 public float size; //로테이션(충돌한 객체의 노말 벡터 정보를 이용해,어느방향으로 데칼을 붙일 것 인지결정한다) public Vector3 rotation; //충돌한 데칼의 색상조절 public Color color; } //데칼 파티클들의 데이터를 저장하고, 데칼 파티클에 할당하는 풀 public class ParticleDecalPool : MonoBehaviour { //성능을 위해서 충돌할때마다 데칼을 만드는 것이아니라 //생성될 데칼의 최대갯수를 정해서 데칼이펙트를 생성하는 방식을 쓴다 public int maxDecals = 100; public float decalsSizeMin = .5f; public float decalsSizeMax=1.5f; private ParticleSystem decalParticleSystem; private int particleDecalDataIndex; //생성될 파테클의 데칼정보 저장 private ParticleDecalData[] particleData; private ParticleSystem.Particle[] particles; private void Start() { //데칼 효과에 사용될 파티클 시스템 할당받고(여기선 데칼효과 파티클에 할당된 스크립트) decalParticleSystem = GetComponent(); //최대 데칼 갯수만큼 파티클 배열을 생성하고 particles = new ParticleSystem.Particle[maxDecals]; particleData = new ParticleDecalData[maxDecals]; //초기 파티클 데칼 데이터 배열을 할당한다. for (int i = 0; i < maxDecals; i++) { particleData[i] = new ParticleDecalData(); } } //파티클 런처에셔 파티클 충돌 이벤트가 발생할때 마다 호출할 함수. public void ParticleHit(ParticleCollisionEvent particleCollisionEvent, Gradient colorGradient) { //이벤트 데이터 를 넘겨주고, 이벤트 정보를 이용해 파티클 배열에, 데칼 이펙트 정보를 할당한다. SetParticleData(particleCollisionEvent, colorGradient); //할당된 정보를 화면에 보여준다. DisplayParticles(); } void SetParticleData(ParticleCollisionEvent particleCollisionEvent, Gradient colorGradient) { //만약에 파티클 데칼 인덱스가 맥스값을 넘으면. if (particleDecalDataIndex >= maxDecals) { particleDecalDataIndex = 0; } //파티클 충돌이벤트의, 교차점 정보를 받아서, 데칼이 생성될 위치를 할당해주고. particleData[particleDecalDataIndex].position = particleCollisionEvent.intersection; //데칼 이펙트가 매쉬 (QUAD)로 되어있음으로, 어느방향을 보게 만들지 결정하기위해 로테이션값결정한다 //파티클 충돌이벤트가 가진정보중, 이벤트 매쉬의 노말벡터에대한 정보를 가지고 있다. Vector3 particleRotationEuler = Quaternion.LookRotation(particleCollisionEvent.normal).eulerAngles; particleRotationEuler.z = Random.Range(0, 360); particleData[particleDecalDataIndex].rotation = particleRotationEuler; particleData[particleDecalDataIndex].size = Random.Range(decalsSizeMin, decalsSizeMax); particleData[particleDecalDataIndex].color = colorGradient.Evaluate(Random.Range(0f, 1f)); particleDecalDataIndex++; } void DisplayParticles() { //데칼 데이터 배열에 저장된 파티클 정보를 //실제사용될 파티클 객체정보에 할당한다. for(int i=0;i< particleData.Length;i++) { particles[i].position = particleData[i].position; particles[i].rotation3D = particleData[i].rotation; particles[i].startSize = particleData[i].size; particles[i].startColor = particleData[i].color; } //데칼 파티클 시스템에 위에서 적용된 파티클 정보를 할당한다. decalParticleSystem.SetParticles(particles, particles.Length); } }

Unity 파티클시스템 적용해보기! Particles System

반응형

열심히 Unity공부를 하고 있는데요 이번시간에는 파티클시스템(Particles System)을 적용해보도록 하겠습니다.

적용하기에 앞서 이게 대체 무엇인지 알아봐야겠네요…

파티클시스템(Particles System)이란?

일종의 효과입니다. 가장 쉽게 생각하면.. 내가 총을쏴 어떤 물체를 맞췄는데 총알이 물체에 맞았을 때 불꽂이 튀는 것들 만들고 싶거나 아니면.. 모닥불을 지폈는데 불꽃이 활활 타오르는 것을 표현하거나 하는 것 같이요. 폭발물이 터지는 효과도 그렇습니다. 좀 그럴듯한 효과를 구현하기 위해 추가된 유니티의 패키지입니다.

실제 적용을 해보니 복잡하거나 힘든 작업이 결코 아닙니다. 이미 완성된 효과가 많이 있기 때문에 원하는 효과를 그냥 사용하면 됩니다. 직접 만들어서 사용하셔도되고요.. 아니면 에셋스토어에서 원하는 자료를 다운로드 받으셔도 됩니다.

지금 진행하고 있는 연습 게임에 적용시켜보겠습니다. 그냥.. 총알을 쏘는건데.. 적 물체를 맞추면.. 폭발하는 효과를 표현했습니다.

파티클시스템 유니티에 적용하기

메뉴화면에서 [Import Package]->[Particles] 를 누르시고 [ Import]를 눌러서 추가합니다.

Project폴더 아래에 Particles라는 폴더가 생기고 그 아래에 추가가 된 모습이 보이게 될 것입니다.

저는 아래에 Small explosion이라는 만들어져 있는 프리팹을 적용해 보기로 하였습니다.

Enemy Control이라는 스크립트 파일에 public 으로 Explosion이라는 게임오브젝트를 받을 수 있도록 선언 해 놨습니다.

마우스로 드래그 해서 해당 위치에 가져다 놓으면 연결이 됩니다.

어떠한 효과인지 궁금해서 씬 화면에 올려다 놨는데.. 제법 그럴듯하네요..ㅎㅎ

근데 폭발이 계속 반복이 됩니다. 한번만 폭발하는걸로 만들고 싶거든요.. 이럴 경우 인스펙터화면에서.. One Shot에 체크해주시면되겠습니다.

또한 스크립트에서 프리팹을 연결하기 위해서 public GameObject explosion; 이렇게 변수를 선언했습니다.

또한 연결되어있는 오브젝트의 OnTriggerEnter 메소드에 Instantiate메소드로 생성하는 스크립트를 만들어 넣어봤습니다.

또한 이렇게 충돌 시 이벤트가 발생하도록 하려면, 인스펙터 화면에서 collider의 Is Trigger에 체크가 되어야 합니다…

그리고.. 실제 잘 작동하는지 play를 눌러봤습니다.

총알이 날라가면서.. 적 물체에 충돌을 하게 되면 Small explosion 프리팹으로 만들어진 파티클이 동작하도록 말이죠..

잘되네요..

아직은 초반이고 기초가 많이 부족해서.. 차근차근진행중입니다. ^^; 생각보다 많이 복잡하지 않습니다. 열심히 공부해서 게임을 만들어야겠습니다.

반응형

Unity Chapter 11-12. 좀비 TPS 게임 만들기 : 파티클 시스템

인프런에 있는 이제민님의 레트로의 유니티 C# 게임 프로그래밍 에센스 강의를 듣고 정리한 필기입니다. 😀

🌜 [레트로의 유니티 C# 게임 프로그래밍 에센스] 강의 들으러 가기!

Chapter 11. 좀비 TPS 게임 만들기

파티클 시스템

파티클 제어를 담당할 빈 게임 오브젝트 Effect Manager 를 생성한다. 위치는 상관 없긴 하지만 그래도 reset 해주자.

를 생성한다.

📜EffectManager.cs

빈 게임 오브젝트 Effect Manager 에 붙여준다.

싱글톤으로서 존재한다.

using UnityEngine ; public class EffectManager : MonoBehaviour { private static EffectManager m_Instance ; public static EffectManager Instance { get { if ( m_Instance == null ) m_Instance = FindObjectOfType < EffectManager >(); return m_Instance ; } } public enum EffectType { Common , Flesh } public ParticleSystem commonHitEffectPrefab ; public ParticleSystem fleshHitEffectPrefab ; public void PlayHitEffect ( Vector3 pos , Vector3 normal , Transform parent = null , EffectType effectType = EffectType . Common ) { var targetPrefab = commonHitEffectPrefab ; if ( effectType == EffectType . Flesh ) { targetPrefab = fleshHitEffectPrefab ; } var effect = Instantiate ( targetPrefab , pos , Quaternion . LookRotation ( normal )); if ( parent != null ) effect . transform . SetParent ( parent ); effect . Play (); } }

싱글톤

파티클에 접근하는 여러 스크립트들에서 직접 파티클 오브젝트를 참조할 수도 있지만 그렇게 하면 여러곳에서 동시에 참조할 수 있으니까 너무 혼잡 난잡! 👉 싱글톤을 사용하는 이유

private static EffectManager m_Instance ; public static EffectManager Instance // 이펙트 매니저 인스턴스를 리턴받을 프로퍼티 { get { if ( m_Instance == null ) m_Instance = FindObjectOfType < EffectManager >(); return m_Instance ; } }

private한 m_Instance 를 리턴해주는 Instance 프로퍼티를 통하여 기존의 📜EffectManager 인스턴스가 없을 때만, 즉 m_Instace == null 일때만 📜EffectManager 인스턴스인 m_Instance 를 리턴 받는다. 📜EffectManager 인스턴스가 오직 하나만 존재하도록 관리해주는 것!

를 리턴해주는 프로퍼티를 통하여 기존의 📜EffectManager 인스턴스가 없을 때만, 즉 일때만 📜EffectManager 인스턴스인 를 리턴 받는다.

멤버 변수

파티클 상태 EffectType Common 대부분에 사용될 일반 피탄 이펙트 Flesh 피부나 살에 총알이 부딪혔을때 사용할 피가 튀는 이펙트

파티클 프리팹 두개를 할당한 후 복제해서 게임 도중 생성할 것이다. commonHitEffectPrefab 🟦Metal Impact 프리팹을 할당해준다. fleshHitEffectPrefab 🟦Flesh Impact 프리팹을 할당해준다.

멤버 함수

public void PlayHitEffect

public void PlayHitEffect ( Vector3 pos , Vector3 normal , Transform parent = null , EffectType effectType = EffectType . Common ) { var targetPrefab = commonHitEffectPrefab ; if ( effectType == EffectType . Flesh ) { targetPrefab = fleshHitEffectPrefab ; } var effect = Instantiate ( targetPrefab , pos , Quaternion . LookRotation ( normal )); if ( parent != null ) effect . transform . SetParent ( parent ); effect . Play (); }

인수 pos 이펙트 위치 normal 이펙트가 바라볼 방향 parent 이펙트에게 할당할 부모 디폴트 null 움직이는 대상으로 이펙트가 생성 되었을 때 이펙트가 움직이는 물체를 따라가야 하는 경우에는 그 대상을 이펙트의 부모로 할당해주어야 한다. effectType 이펙트 타입 디폴트 Common

이펙트 할당 var targetPrefab = commonHitEffectPrefab; 일반적으로 쓰이는 이펙트는 commonHitEffectPrefab 니까 일단 targetPrefab 을 commonHitEffectPrefab 로 지정한다. 그런데 만약에 이펙트 타입이 Common 이 아닌 Flesh 라면 그때 targetPrefab 을 fleshHitEffectPrefab 로 지정한다.

이펙트 복제 생성 (from 프리팹) var effect = Instantiate(targetPrefab, pos, Quaternion. LookRotation (normal));

이펙트의 부모가 될 Transform이 인수로 들어온게 있다면 그것을 이펙트의 부모로 설정 effect.transform.SetParent(parent);

이펙트 재생

파티클 성능 관리

파티클 프리팹으로 부터 복제 생성된 파티클 오브젝트들이 총을 너무 많이 쏴서 씬 상에 너무 많이 생성되면 성능 저하가 일어날 수 있다.

이에 대한 대처 방법 오브젝트 풀링 재사용 가능한 객체들을 미리 몇개 생성해두고 이를 돌아가며 가져다 쓴다. 이들을 사용중/사용안함 으로 관리한다. 디자인패턴 : 오브젝트 풀 패턴 참고 재생 종료된 파티클은 그때 그때 파괴시켜 메모리 해제시켜 주기 이 수업에서는 이 방식을 택할 것이다. 사용할 이펙트 프리팹인 🟦Flesh Impact 와 🟦Metal Impact 의 Stop Action 부분을 Destroy 로 설정한다.

파티클 재생을 누가 할 것인가

IDamageable 타입이라서 데미지를 입을 수 있는 오브젝트라면 👉 스스로 어떤 파티클을 재생 시켜야할지 결정한다. 굳이 총을 쏘는 사람 입장에서 파티클 효과를 결정해줄 필요가 없다. 각각 IDamageable 인터페이스를 오버라이딩 하는 데미지 입을 수 있는 오브젝트들(스크립트)에서 각각에서 오버라이딩 한 ApplyDamage 함수내에서 파티클 효과를 결정할 것! target.ApplyDamage(damageMessage);

타입이라서 데미지를 입을 수 있는 오브젝트라면 반대로 데미지를 입을 수 있는 오브젝트가 아니라면 범용적인 파티클 효과로! 미리 설정해둠. 스스로 어떤 파티클을 재생시켜야 할지를 결정하지 않음 EffectManager.Instance.PlayHitEffect(hit.point, hit.normal, hit.transform);

📜Gun.cs

Shot 함수

✨✨ 부분 추가

if ( target != null ) { DamageMessage damageMessage ; damageMessage . damager = gunHolder . gameObject ; damageMessage . amount = damage ; damageMessage . hitPoint = hit . point ; damageMessage . hitNormal = hit . normal ; // 상대방의 OnDamage 함수를 실행시켜서 상대방에게 데미지 주기 target . ApplyDamage ( damageMessage ); // 💛 } else { EffectManager . Instance . PlayHitEffect ( hit . point , hit . normal , hit . transform ); // ✨✨ } // 레이가 충돌한 위치 저장 hitPosition = hit . point ;

🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

[Unity] 빌트인 파티클 시스템(Built-in Particle System) : 메인 모듈(Main Module)

프로퍼티 설명

Duration 파티클 시스템이 실행되는 지속 시간

ex) 1초로 설정 시, 파티클 시스템이 1초동안만 작동하고 멈춤

Looping 파티클 시스템을 반복 재생

Prewarm 체크할 경우, 처음 재생부터 모든 입자가 방출된 채로 시작

체크 해제 시, 서서히 방출하기 시작

Start Delay 파티클 시스템이 실행된 후, 파티클 방출을 시작할 때까지의 지연 시간

Start Lifetime 입자의 생명주기 시간

ex) 5로 설정하면, 입자는 생성된 후 5초의 시간이 지나면 사라진다.

Start Speed 입자의 방출 속도

3D Start Size 체크할 경우, 입자의 크기를 축(Axis)마다 별도로 제어 가능

Start Size 입자의 초기 크기

3D Start Rotation 체크할 경우, 입자의 회전을 각 축(Axis)마다 별도로 제어 가능

Start Rotation 입자의 초기 회전 각도

Flip Rotation 체크할 경우, 일부 입자가 반대 방향으로 회전하도록 설정

Start Color 입자의 초기 색깔

Gravity Modifier Physics 창에서 설정된 중력의 값의 크기를 조절

이 값을 0으로 하면 중력 효과를 받지 않음

Simulation Space – Local : 파티클이 부모 오브젝트의 로컬 공간에서 애니메이션화됨

(즉, 부모 오브젝트와 함께 이동함)

– World : 파티클이 월드 공간에서 독립적으로 애니메이션화됨

– Custom : 커스텀 오브젝트를 따라 이동하며 애니메이션화됨

Simulation Speed 파티클 시스템의 시뮬레이션 속도

Delta Time 일시 정지했을 때, 계속 재생시킬 것인지 여부

– Scaled : Time 창의 Time Scale의 값이 사용됨

– Unscaled : Time Scale의 값이 무시됨

일시 정지 메뉴에 표시되는 파티클 시스템 제작에 유용한 옵션이다.

Scaling Mode 트랜스폼 컴포넌트에서 Scale을 사용하는 방법을 설정

– Hierarchy : 계층구조 전체적으로 결합된 스케일 값을 사용

– Local : 파티클 시스템 트랜스폼 스케일만 적용되고, 부모는 무시

– Shape : 파티클의 시작 포지션에 스케일이 적용되나, 크기는 영향 없음

Play on Awake 체크할 경우, 오브젝트가 생성될 때 파티클 시스템이 자동으로 시작됨

Emitter Velocity Inherit Velocity 모듈과 Emission 모듈에 사용할 속도 계산 방법 선택

– Rigidbody나 Transform의 움직임을 추적하여 속도 계산

Max Particles 파티클 시스템에서 생성되어 있을 수 있는 입자의 최대 개수

한도에 도달하면 일부 파티클이 제거됨

Auto Random Seed 체크 시, 파티클 시스템을 재생할 때마다 조금씩 다르게 표시

체크 해제 시, 재생할 때마다 항상 똑같은 패턴의 파티클 시스템 재생이 진행됨

Stop Action 파티클 시스템에 속한 모든 입자들이 제 역할을 모조리 수행하여 시스템이 중지되었을 때, 특정 동작을 수행하도록 설정

파티클 시스템의 입자가 모두 소멸되고, 입자의 수명이 지속 시간을 초과할 경우 시스템이 중지된 것으로 간주한다.

Loop를 반복하는 시스템에서는 스크립트를 통해 중지되었을 경우 중지된 것으로 간주

– None : 아무것도 하지 않음

– Destory : 파괴

– Disable : 비활성화

– Callback : OnParticleSystemStopped 콜백을 게임 오브젝트에 연결된 스크립트로 전송

Culling Mode 입자가 화면을 벗어나면, 파티클 시스템 시뮬레이션을 일시 정지할 것인지 여부

오프스크린의 경우에는 컬링이 가장 효율적이지만, 오프스크린 효과의 시뮬레이션 지속이 좋다

– Automatic : Loop일 경우 Pause, 그 외에는 Always Simuate를 사용

– Pause And Catch-up : 파티클 시스템이 화면에서 벗어나면 시뮬레이션 중단

다시 화면에 들어왔을 경우, 원래 계속 재생했더라면 도달했을 부분까지 도달하기 위해 큰 작업을 수행. (복잡한 시스템의 경우, 성능 저하가 일어날 수 있음)

– Pause : 파티클 시스템이 화면에서 벗어나면 시뮬레이션을 중단

– Always Simulate : 화면 안에 파티클 시스템이 있던 없던, 모든 프레임에서 시뮬레이션 처리

시뮬레이션 시, 명확하게 알아볼 수 있는 불꽃놀이와 같은 일회성 효과에 유용

키워드에 대한 정보 유니티 파티클 스크립트 제어

다음은 Bing에서 유니티 파티클 스크립트 제어 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 유니티 입문 강좌 Part 10 – 파티클 시스템

  • 유니티
  • 유니티 강좌
  • 유니티 튜토리얼
  • 유니티 입문
  • 유니티 초보

유니티 #입문 #강좌 #Part #10 #- #파티클 #시스템


YouTube에서 유니티 파티클 스크립트 제어 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 유니티 입문 강좌 Part 10 – 파티클 시스템 | 유니티 파티클 스크립트 제어, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  가위 눌리는 꿈 | [건강충전] 공포의 '가위 눌림', 원인과 대처법 17702 명이 이 답변을 좋아했습니다

Leave a Reply

Your email address will not be published. Required fields are marked *