목요일 수업
1. 애니메이션
1) hierarchy 창에 게임 오브젝트(CUBE)를 하나 만듭니다.
2) 만든 게임 오브젝트를 클릭한 상태에서 메뉴바의 'window' 를 누릅니다.
3) 'window' 에서 'Animation' 을 클릭합니다.
4) 새로운 애니메이션 'Move'를 만들고 'Add Property'를 통해 만들고 싶은 애니메이션 요소를 추가해줍니다.
5) 하얀 막대기 부분을 이동하며, 요소의 값을 조정해줍니다.
6) 플레이 버튼을 통해 생성한 애니메이션을 확인할 수 있습니다.
7) Move 이외의 Rotate 애니메이션도 만들어줍니다. cube 의 rotation 프로퍼티를 추가해줍니다.
8) 생성한 애니메이션이 있는 폴더에, Animator인 Cube도 있는 것을 확인할 수 있습니다.
9) 'window' 에서 'Animator' 을 클릭합니다.
10) 생성한 Move, Rotate 애니메이션과 Any State, Entry, Exit 인 기본요소들이 있습니다.
11) 각각의 요소에 마우스 우클릭을 하면 Make Transition을 통해 다른 요소와 상호작용할 수 있도록 연결할 수 있습니다.
12) Transition을 클릭하면 값을 조정할 수 있도록 나옵니다.
13) Has Exit Time은 종료 시점(Exit Time)을 활성화 하는 옵션입니다.
14) 애니메이션간의 전환에 있어 바로 전환할지, 약간 섞이며 전환할지 조정할 수 있습니다.
15) conditions 에 값을 주어 애니메이션을 조정할 수 있습니다.
16) parameters 에 int, float, Bool, Trigger 중에서 생성할 수 있습니다. 해당 파라미터는 애니메이션을 조정하는 conditions에 쓰입니다.
17) Layers 에서 레이어를 추가할 수 있습니다.
18) 더 아래 계층에 있는 레이어일수록, 우선순위가 높아서 위의 레이어의 애니메이션을 덮어 씌웁니다.
19) 덮어 씌우지 않고 섞고 싶다면 '설정'에서 blending 을 addictive 로 변경하면 됩니다.
20) 섞는 정도도 지정할 수 있습니다.
enum RState
{
Walk = 0,
Attack,
Run
}
stateMachine = new StateMachine();
stateMachine.AddState(RState.Attack.ToString(), onLogic: (state) =>
{
transform.position = Vector3.MoveTowards(transform.position, character.transform.position, 0.1f * Time.deltaTime);
Debug.Log("Attack");
});
21) 해당 애니메이션을 스크립트로 작성할 수 있습니다.
22) enum으로 state 목록을 적어 줍니다.
23) 각 state 별로 수행할 함수를 람다식을 통해 작성해줍니다.
stateMachine.AddTransition(RState.Run.ToString(), RState.Walk.ToString(),
(transition) =>
{
anim.SetInteger("State", (int)RState.Walk);
return Vector3.Distance(character.transform.position, this.transform.position) < 3f;
});
24) 각 애니메이션을 언제 어떻게 수행할지 적어줍니다.
2. FSM: Finite State Machine: 유한상태 기계
1) 직접 애니메이션을 제작하는 것이 아닌, 이미 만들어진 애니메이션 'Jump', 'Mma Kick'을 넣어줍니다.
2) 인스펙터 창의 Rig를 통해, Avatar Definition을 Create From This Model 로 바꾼 후 Apply해줍니다.
3) 새로운 모델이 생긴 것을 확인 할 수 있습니다.
4) Animator 의 Avatar에 새로만든 모델을 넣어줍니다.
5) Animator에서 각 애니메이션들을 연결해줍니다.
6) 이미 만들어진 애니메이션이기 때문에 상당히 복잡한 것을 확인할 수 있습니다.
7) 프로젝트 창에 아바타 마스크를 생성한 뒤, Animator의 New Layer에 적용해줍니다.
8) 아바타 마스크의 Humanoid를 통해 휴머노이드 바디의 단순화 다이어그램에서 원하는 부위를 클릭하여 마스크할 부분을 선택 또는 해제하면 됩니다.
9) 이 때, 선택할 수 있는 신체 부위는 머리, 왼팔, 오른팔, 왼손, 오른손, 왼발, 오른발, 루트(발 아래의 “그림자”로 표시되는 부분)입니다.
10) 바디 마스크에서 손과 발에 대해서는 역운동학(IK)을 토글 선택하여 IK 곡선을 애니메이션 블렌딩에 포함할지 말지 결정할 수 있습니다.
11) 각 뼈대의 체크박스를 선택 또는 해제하여 계층 구조의 각 부분을 마스크로 사용할 수 있습니다.
금요일 수업
1.post processing
1) Rendering 은 Monobehavieur에서 object로 관리됩니다.
2) post processing 은 후처리과정입니다. 패키지 매니저에서 따로 설치를 해줍니다.
3) 카메라에 post-process Layer 컴포넌트를 추가해줍니다.
4) Global과 Local 이 있습니다.
5) 카메라가 아닌 다른데 붙이는 경우는 3인칭 슈팅게임같은 경우가 있습니다.
6) Layer을 everything으로 하는 경우, 무겁습니다.
7) Anti-aliasing 은 약간 뭉게지는 현상을 막아줍니다.
8) Hierarchy창에 Post-process Volume을 생성해줍니다. Post-process Volume은 3D Object에 있습니다.
9) Cube 하나를 생성해줍니다.
10) Post-process Volume 의 profile의 new를 해준 후, 더블클릭 합니다.
11) Add effect를 통해 새로운 이펙트를 넣을 수 있습니다.
12) Bloom 효과를 추가해줍니다. Intensity와 Threshold 에 체크를 합니다.
13) Is Global를 통해 전체에 적용할지 결정할 수 있습니다.
14) Is Global를 끄고, Post-process Volume 내부에 카메라가 들어갔을 때만 bloom효과가 나타나도록 해줍니다.
15) 하나의 Post-process Volume을 더 만들어준 뒤, 새로운 효과인 Lens Distortion을 추가해줍니다.
16) 두개의 Post-process Volume가 겹쳐 있을 경우, blend distance와 weight를 통해 겹치는 부분에 대해 값을 설정해줄 수 있습니다.
*다양한 효과 정리
- 앰비언트 오클루전: 주변광에 노출되지 않는 씬 내 영역을 어둡게 만듭니다.
- 안티앨리어싱: 씬에서 모서리의 모양을 부드럽게 만듭니다.
- 자동 노출: 이미지의 노출을 동적으로 조정하여 중간 색조에 맞춥니다.
- 블룸: 이미지의 밝은 영역을 빛나게 만듭니다.
- 채널 믹서: 각 입력 컬러의 밸런스를 조정할 수 있습니다.
- 색 수차: 이미지의 어두운 영역과 밝은 영역 간의 경계를 따라 컬러를 분산시킵니다.
- 컬러 조정: 최종 렌더링 이미지의 전체적인 톤, 밝기 및 콘트라스트를 변경할 수 있습니다.
- 컬러 커브: 색조, 채도 또는 광도의 특정 범위를 조정할 수 있습니다.
- 안개: 야외 환경의 안개나 미스트를 시뮬레이션할 수 있습니다.
- 피사계심도(뎁스오브필드): 이미지의 배경을 흐리게 만들고 전경의 오브젝트에 초점을 유지합니다.
- 그레인: 이미지에 필름 노이즈를 오버레이합니다.
- 렌즈 왜곡: 실제 카메라 렌즈의 모양에 의해 발생하는 왜곡을 시뮬레이션합니다.
- 리프트, 감마, 게인: 3방향 컬러 그레이딩을 수행할 수 있습니다.
- 모션 블러: 카메라의 이동 방향으로 이미지를 흐리게 만듭니다.
- 스크린 공간 반사: 은은하게 반사되는 젖은 마룻바닥이나 물웅덩이를 시뮬레이션합니다.
- 비네트: 이미지의 가장자리를 어둡게 만듭니다.
2. custom effect (쉐이더 부분)
public sealed class Grayscale : PostProcessEffectSettings
{
[Range(0f, 1f), Tooltip("Grayscale effect intensity.")]
public FloatParameter blend = new FloatParameter { value = 0.5f };
}
public sealed class GrayscaleRenderer : PostProcessEffectRenderer<Grayscale>
{
public override void Render(PostProcessRenderContext context)
{
var sheet = context.propertySheets.Get(Shader.Find("Hidden/Custom/Grayscale"));
sheet.properties.SetFloat("_Blend", settings.blend);
context.command.BlitFullscreenTriangle(context.source, context.destination, sheet, 0);
}
}
1) Add effect에 custom 효과를 넣어줄 수 있습니다. 위의 코드는 쉐이더 관련 부분으로 다음에 자세히 다루겠습니다.
3. particle
1) hierarchy 창에서 effect에서 Particle System을 생성해줍니다. 기본 텍스처가 들어가 있습니다.
2) world좌표로 움직입니다.
*메인 모듈 기능
Duration | 시스템이 실행되는 지속 시간입니다. |
Looping | 활성화하면 시스템이 지속 시간의 끝에 다다르면 다시 시작되어 주기를 계속 반복합니다. |
Prewarm | 활성화하면 시스템이 전체 주기를 한 번 완료한 것처럼 초기화됩니다. Looping 이 활성화되었을 때에만 작동합니다. |
Start Delay | 시스템이 활성화된 후 방출을 시작하기까지 기다리는 지연 시간(초)입니다. |
Start Lifetime | 파티클의 초기 수명입니다. |
Start Speed | 해당 방향으로 작용하는 파티클 초기 속도입니다. |
3D Start Size | 각 축의 크기를 별도로 제어하려면 체크박스를 선택합니다. |
Start Size | 각 파티클의 초기 크기입니다. |
3D Start Rotation | 각 축의 회전을 별도로 제어하려면 체크박스를 선택합니다. |
Start Rotation | 각 파티클의 초기 회전 각도입니다. |
Flip Rotation | 일부 파티클이 반대 방향으로 회전하도록 합니다. |
Start Color | 각 파티클의 초기 컬러입니다. |
Gravity Modifier | Physics 창에서 설정된 중력 값을 스케일합니다. 이 값을 0으로 하면 중력 효과가 해제됩니다. |
Simulation Space | 파티클이 부모 오브젝트의 로컬 공간에서 애니메이션화되도록 할지(부모 오브젝트와 함께 이동), 월드 공간에서 애니메이션화할지, 아니면 커스텀 오브젝트에 대해 상대적으로 애니메이션화(선택한 커스텀 오브젝트와 함께 이동)되도록 할지 설정합니다. |
Simulation Speed | 전체 시스템 업데이트 속도를 조절합니다. |
Delta Time | Scaled 와 Unscaled 중에서 선택합니다. Scaled 를 선택하면 Time 창의 Time Scale 값이 사용되고 Unscaled 를 선택하면 이 값이 무시됩니다. 예를 들어 일시정지 메뉴에 표시되는 파티클 시스템 등에 유용합니다. |
Scaling Mode | 트랜스폼에서 스케일을 사용하는 방법을 설정합니다. Hierarchy, Local, Shape 중에서 선택할 수 있습니다. Local을 선택하면 파티클 시스템 트랜스폼 스케일만 적용되고 부모는 무시됩니다. Shape을 선택하면 파티클의 시작 포지션에 스케일이 적용되지만 크기에는 영향이 없습니다. |
Play on Awake | 활성화하면 오브젝트가 생성될 때 파티클 시스템이 자동으로 시작합니다. |
Emitter Velocity | 파티클 시스템이 Inherit Velocity 모듈과 Emission 모듈에 사용할 속도를 계산하는 방법을 선택합니다. 시스템은 Rigidbody 컴포넌트(있을 때에 한함)를 사용하거나 Transform 컴포넌트의 움직임을 추적하여 속도를 계산할 수 있습니다. |
Max Particles | 시스템에 한번에 포함될 수 있는 최대 파티클 수입니다. 한도에 도달하면 일부 파티클이 제거됩니다. |
Auto Random Seed | 활성화하면 파티클 시스템을 재생할 때마다 시스템이 조금씩 다르게 표시됩니다. 비활성화하면 시스템을 재생할 때마다 파티클 시스템이 똑같이 보입니다. |
Random Seed | Auto Random Seed가 비활성화되었을 때 이 값을 사용하여 고유한 반복 효과를 만들어낼 수 있습니다. |
Stop Action | 시스템에 속한 모든 파티클이 완료되어 시스템이 중지되었을 때 특정 동작을 수행하도록 설정할 수 있습니다. 시스템의 파티클이 모두 소멸되고 파티클의 수명이 지속 시간을 초과하면 시스템이 중지된 것으로 간주됩니다. 루프를 반복하는 시스템에서는 스크립트를 통해 중지되었을 때 중지된 것으로 간주됩니다. |
Disable | 게임 오브젝트를 비활성화합니다. |
Destroy | 게임 오브젝트를 파괴합니다. |
Callback | OnParticleSystemStopped 콜백을 게임 오브젝트에 연결된 스크립트로 전송합니다. |
Culling Mode | 파티클이 화면을 벗어나면 파티클 시스템 시뮬레이션을 일시정지할지 여부를 선택합니다. 오프스크린인 경우 컬링이 가장 효율적이지만, 오프스크린 효과의 시뮬레이션을 지속하는 것이 좋습니다. |
Automatic | 루핑 시스템은 Pause 를, 기타 모든 시스템은 Always Simulate 를 사용합니다. |
Pause And Catch-up | 시스템이 화면에서 벗어나면 시뮬레이션을 중단합니다. 뷰 안으로 다시 진입하면 시뮬레이션은 일시정지되지 않았다면 도달했을 포인트에 도달하기 위해 대규모 단계를 수행합니다. 복잡한 시스템의 경우 이 옵션을 설정하면 성능이 순간적으로 크게 저하될 수 있습니다. |
Pause | 시스템이 화면에서 벗어나면 시뮬레이션을 중단합니다. |
Always Simulate | 온스크린 여부와는 상관없이 시스템이 모든 프레임에서 시뮬레이션을 처리합니다. 시뮬레이션 시 명확하게 알아볼 수 있는 불꽃놀이와 같은 일회성 효과에 유용합니다. |
Ring Buffer Mode | 파티클이 Max Particles 수에 도달할 때까지 파티클을 계속 활성화합니다. Max Particles 수에 도달하면 수명이 경과한 파티클을 제거하는 대신 가장 오래된 파티클을 재활용하여 새 파티클을 생성합니다. |
Disabled | 시스템이 수명이 경과한 파티클을 제거하도록 Ring Buffer Mode 를 비활성화합니다. |
Pause Until Replaced | 수명을 다한 오래된 파티클을 일시정지했다가 Max Particle 한계에 도달하면 시스템에서 재활용하여 새 파티클로 다시 표시되게 합니다. |
Loop Until Replaced | 수명을 다한 파티클이 특정한 수명 비율 지점으로 다시 돌아가며, Max Particle 한계에 도달하면 시스템에서 재활용하여 새 파티클로 다시 표시되게 합니다. |
- 참고: https://docs.unity3d.com/kr/2021.3/Manual/PartSysMainModule.html
*Emission
Rate over Time | 시간 단위당 방출되는 파티클의 수입니다. |
Rate over Distance | 이동한 거리 단위당 방출되는 파티클의 수입니다. |
Bursts | 버스트는 파티클을 생성하는 이벤트입니다. 이 설정을 통해 지정된 시점에 파티클을 방출할 수 있습니다. |
Time | 파티클 시스템이 시작된 이후로 버스트를 방출할 시점을 초 단위로 설정합니다. |
Count | 방출되는 파티클 수를 설정합니다. |
Cycles | 버스트를 반복할 횟수를 설정합니다. |
Interval | 버스트가 반복되는 시간 사이의 간격(초)을 설정합니다. |
Probability | 각 버스트 이벤트가 파티클을 생성할 가능성을 제어합니다. 값이 클수록 시스템이 더 많은 파티클을 생성하며, 값을 ’1’로 설정하면 시스템이 100% 파티클을 생성합니다. |
*Shape
Shape | 방출 볼륨의 모양입니다. |
Cone | 원뿔의 밑면이나 바디에서 파티클이 방출됩니다. 파티클은 원뿔 중심선과의 거리에 비례하여 분기됩니다. |
Angle | 원뿔 꼭지점의 각도입니다. 각도가 0이면 원기둥이 되고, 90이면 평면 원반이 됩니다. |
Radius | 모양의 원형 부분의 반지름입니다. |
Radius Thickness | 파티클을 방출하는 체적 비율입니다. 값을 0으로 설정하면 모양의 바깥 표면에서 파티클이 방출됩니다. 값을 1로 설정하면 전체 체적에서 파티클이 방출됩니다. 0와 1 사이의 값을 지정하면 파티클을 방출할 체적의 비율을 조절할 수 있습니다. |
Arc | 이미터의 모양을 형성하는 전체 원의 각도 비율입니다. |
Mode | Unity가 모양의 원호 주위에 파티클을 생성하는 방법을 정의합니다. 랜덤(Random) 으로 설정하면 Unity가 원호 주위에 파티클을 무작위로 생성합니다. 루프(Loop) 를 사용하면 Unity가 모양의 원호 주위에 파티클을 순차적으로 생성하고, 주기가 끝나면 처음부터 다시 반복합니다. 핑퐁(Ping-Pong) 으로 설정하면 주기가 끝난 곳에서 이전과 반대 방향으로 반복된다는 점을 제외하고 루프(Loop) 와 같습니다. 마지막으로 버스트 스프레드(Burst Spread) 로 설정하면 파티클이 모양 주위에 고르게 분산되어 생성됩니다. 이 모드를 사용하면 파티클이 고르지 않게 모일 수 있는 기본 무작위 동작에 비해 더 고르게 분산되는 파티클을 얻을 수 있습니다. 버스트 스프레드(Burst Spread) 는 폭발 방출과 함께 사용하면 가장 효과적입니다. |
Spread | 파티클이 생성될 수 있는 원호 주위의 분리 간격입니다. 예를 들어 값을 0으로 설정하면 파티클이 원호 주위의 어디에서나 생성될 수 있지만, 값을 0.1로 설정하면 파티클이 모양 주위에 10% 간격으로만 생성됩니다. |
Speed | 방출 포지션이 원호를 따라 움직이는 속도입니다. 값 필드 옆의 작은 검은색 드롭다운 메뉴를 사용하여, 값을 항상 동일하게 유지하려면 일정(Constant) 을 선택하고 시간이 경과하여 값을 변경하려면 커브(Curve) 를 선택합니다. 랜덤(Random) 이외의 모드(Mode) 를 설정한 경우에만 이 옵션을 이용할 수 있습니다. |
Length | 원뿔의 길이입니다. Emit from: 프로퍼티가 Volume 으로 설정되었을 때에만 적용됩니다. |
Emit from: | 파티클이 원뿔의 기본(Base) 또는 볼륨(Volume) 에서 방출됩니다. |
Texture | 파티클 틴트 및 폐기에 사용되는 텍스처입니다. |
클립 채널(Clip Channel) | 파티클 폐기에 사용되는 텍스처의 채널입니다. |
클립 임계값(Clip Threshold) | 파티클을 텍스처상의 포지션에 매핑할 때 이 임계값 이하의 픽셀 컬러는 모두 폐기하십시오. |
컬러 영향 파티클(Color affects Particles) | 파티클 컬러에 텍스처 컬러를 곱합니다. |
알파 영향 파티클(Alpha affects Particles) | 파티클 알파에 텍스처 알파를 곱합니다. |
바이리니어 필터링(Bilinear Filtering) | 텍스처를 읽을 때 텍스처 크기에 관계없이 인접 샘플 4개를 결합하여 파티클 컬러를 더욱 부드럽게 변경합니다. |
Position | 파티클을 생성하는 데 사용되는 이미터 모양에 오프셋을 적용합니다. |
Rotation | 파티클을 생성하는 데 사용되는 이미터 모양을 회전합니다. |
Scale | 파티클을 생성하는 데 사용되는 이미터 크기를 변경합니다. |
Align to Direction | 초기 이동 방향을 기준으로 파티클의 방향을 지정합니다. 예를 들어 자동차가 충돌하면서 자동차 차체에서 떨어져서 흩날리는 자동차 페인트 덩어리를 시뮬레이션하려고 할 때 효과적으로 활용할 수 있습니다. 방향이 마음에 들지 않는다면 메인(Main) 모듈의 시작 회전(Start Rotation) 값을 적용하여 방향을 오버라이드할 수도 있습니다. |
Randomize Direction | 파티클 방향이 무작위 방향이 되도록 블렌드합니다. 0으로 설정하면 아무런 영향도 미치지 않습니다. 1로 설정하면 파티클 방향이 완전히 무작위로 변경됩니다. |
Spherize Direction | 파티클 방향이 구체 방향이 되도록 블렌드합니다. 파티클이 트랜스폼의 중앙을 기준으로 방사형으로 방출됩니다. 0으로 설정하면 아무런 영향도 미치지 않습니다. 1로 설정하면 파티클 방향이 중앙을 기준으로 방사형이 됩니다. 이는 모양을 구체로 설정했을 때와 똑같이 작동합니다. |
Randomize Position | 파티클을 지정된 값까지 무작위한 양만큼 이동합니다. 값을 0으로 설정하면 아무런 영향도 미치지 않습니다. 다른 값으로 설정하면 파티클 생성 포지션에 어느 정도 무작위성이 적용됩니다. 무작위화의 양은 Scale 프로퍼티를 곱합니다. |
https://docs.unity3d.com/kr/2021.3/Manual/PartSysShapeModule.html
*Velocity Over Lifetime
Linear X, Y, Z | X축, Y축, Z축에 있는 파티클의 리니어 속도입니다. |
Space | 리니어 X, Y, Z(Linear X, Y, Z) 축이 로컬 공간을 참조하는지 월드 공간을 참조하는지 지정합니다. |
Orbital X, Y, Z | X축, Y축, Z축 주위에 있는 파티클의 궤도 속도입니다. |
Offset X, Y, Z | 궤도를 따라 파티클을 회전시키기 위한 궤도의 중앙 포지션입니다. |
Radial | 중앙 포지션에서 멀어지거나 가까워지는 파티클의 방사성 속도입니다. |
Speed Modifier | 파티클이 현재 이동하는 방향 주위를 따라 파티클의 속도에 멀티플라이어를 적용합니다. |
*Noise
Separate Axes | 각 축에서 세기와 재매핑을 별도로 제어합니다. |
Strength | 노이즈 효과가 파티클의 전체 수명 동안 얼마나 강하게 적용되는지 정의하는 커브입니다. 값을 높게 설정할수록 파티클이 더 빠르고 멀리 이동합니다. |
Frequency | 값을 낮게 설정하면 부드럽고 매끄러운 노이즈가 생성되고, 값을 높게 설정하면 빠르게 변하는 노이즈가 생성됩니다. 파티클의 이동 방향이 바뀌는 빈도와 방향이 얼마나 갑작스럽게 바뀌는지를 제어합니다. |
Scroll Speed | 노이즈 필드를 시간의 흐름에 따라 이동하여 파티클이 더 예측하기 힘들고 불규칙하게 움직이게 합니다. |
Damping | 활성화하면 세기가 빈도에 비례합니다. 두 값을 묶으면 파티클의 동작을 그대로 유지하면서 크기는 달라지도록 노이즈 필드를 스케일할 수 있습니다. |
Octaves | 최종 노이즈 값을 생성하기 위해 몇 개의 노이즈 레이어를 겹칠지 지정합니다. 레이어를 많이 사용할수록 노이즈가 더 풍부해지고 흥미로워지지만 성능 비용이 증가합니다. 즉, 많은 리소스를 사용합니다. |
Octave Multiplier | 노이즈 레이어를 하나씩 추가할 때마다 세기가 이 비율만큼 줄어듭니다. |
Octave Scale | 노이즈 레이어를 하나씩 추가할 때마다 빈도가 이 멀티플라이어만큼 조절됩니다. |
Quality | 품질 설정을 낮추면 성능 비용을 크게 줄일 수 있지만 노이즈의 흥미로운 정도에도 영향을 미칩니다. 성능을 극대화하려면 원하는 동작을 얻을 수 있는 가장 낮은 품질을 사용합니다. |
Remap | 최종 노이즈 값을 다른 범위에 다시 매핑합니다. |
Remap Curve | 최종 노이즈 값이 변환되는 방법을 나타내는 커브입니다. 예를 들어 커브를 사용하여 노이즈 필드의 낮은 범위를 선택하고 큰 값으로 시작한 후 영(0)으로 끝나는 커브를 만들어 더 높은 범위를 무시할 수 있습니다. |
Position Amount | 노이즈가 파티클 포지션에 영향을 미치는 정도를 제어하는 멀티플라이어입니다. |
Rotation Amount | 노이즈가 파티클 회전에 영향을 미치는 정도를 제어하는 멀티플라이어입니다. 단위는 초당 도입니다. |
Size Amount | 노이즈가 파티클 크기에 영향을 미치는 정도를 제어하는 멀티플라이어입니다. |
https://docs.unity3d.com/kr/2021.3/Manual/PartSysNoiseModule.html
*Limit Velocity over Lifetime: 생존 기간 속도 제한 모듈
Separate Axes | 축을 개별 X, Y, Z 컴포넌트로 분할합니다. |
Speed | 파티클의 제한 속도를 설정합니다. |
Space | 제한 속도가 로컬 공간을 참조할지 월드 공간을 참조할지 선택합니다. 이 옵션은 개별 축(Separate Axes) 이 활성화되었을 때에만 사용할 수 있습니다. |
Dampen | 제한 속도를 초과할 때 파티클의 속도가 감소되는 비율입니다. |
Drag | 파티클 속도에 선 항력을 적용합니다. |
Multiply by Size | 활성화하면 파티클이 클수록 항력 계수에 더 많이 영향을 받습니다. |
Multiply by Velocity | 활성화하면 파티클이 빠를수록 항력 계수에 더 많이 영향을 받습니다. |
https://docs.unity3d.com/kr/2021.3/Manual/PartSysLimitVelOverLifeModule.html
*Collision: 충돌 모듈
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 | 씬 뷰에서 각 파티클의 충돌 튕김을 와이어프레임 모양으로 렌더링합니다. |
*Trigger
Inside | 파티클이 콜라이더 내에 있는 프레임마다 파티클 시스템이 파티클에 대해 수행하는 작업을 지정합니다. 다음과 같은 옵션이 있습니다. • Callback: OnParticleTrigger() 콜백에서 검색해서 가져올 수 있는 리스트에 파티클을 추가합니다. • Kill: 파티클을 파괴합니다. • Ignore: 파티클을 무시합니다. |
Outside | 파티클이 콜라이더 밖에 있는 프레임마다 파티클 시스템이 파티클에 대해 수행하는 작업을 지정합니다. 다음과 같은 옵션이 있습니다. • Callback: OnParticleTrigger() 콜백에서 검색해서 가져올 수 있는 리스트에 파티클을 추가합니다. • Kill: 파티클을 파괴합니다. • Ignore: 파티클을 무시합니다. |
Enter | 파티클이 콜라이더 범위 안으로 들어가는 프레임에서 파티클 시스템이 파티클에 대해 수행하는 작업을 지정합니다. 다음과 같은 옵션이 있습니다. • Callback: OnParticleTrigger() 콜백에서 검색해서 가져올 수 있는 리스트에 파티클을 추가합니다. • Kill: 파티클을 파괴합니다. • Ignore: 파티클을 무시합니다. |
Exit | 파티클이 콜라이더 범위 밖으로 나가는 프레임에서 파티클 시스템이 파티클에 대해 수행하는 작업을 지정합니다. 다음과 같은 옵션이 있습니다. • Callback: OnParticleTrigger() 콜백에서 검색해서 가져올 수 있는 리스트에 파티클을 추가합니다. • Kill: 파티클을 파괴합니다. • Ignore: 파티클을 무시합니다. |
Collider Query Mode | 이 파티클 시스템이 파티클이 상호작용하는 콜라이더에 대한 정보를 가져올 때 사용하는 방법을 지정합니다. 이렇게 하면 트리거 모듈 처리의 리소스 소모량이 크게 증가하므로, 추가 충돌 정보가 필요하지 않는 경우에는 이 프로퍼티를 Disabled로 설정하십시오. 다음과 같은 옵션이 있습니다. • Disabled: 각 파티클이 상호작용하는 콜라이더에 대한 정보를 가져오지 않습니다. • One: 각 파티클이 상호작용하는 첫 번째 콜라이더의 정보를 가져옵니다. 파티클이 프레임에서 여러 콜라이더와 상호작용하는 경우 파티클이 상호작용하는 Collider 리스트의 첫 번째 콜라이더를 반환합니다. • All: 각 파티클이 상호작용하는 모든 콜라이더에 대한 정보를 가져옵니다. |
Radius Scale | 파티클의 콜라이더 경계입니다. 이를 통해 파티클의 콜라이더 경계를 파티클의 시각적 모습에 더 가깝게 맞출 수 있습니다. 이는 파티클이 원형이고 해당 텍스처에 페이드인이 있는 경우에 유용한데, 그 이유는 파티클이 시각적으로 보이기 전에 기본 파티클 콜라이더가 트리거 내부에 있기 때문입니다. 단, 이 설정은 이벤트가 실제로 트리거될 때 변경되지 않지만, 트리거의 시각적 효과를 지연시키거나 진행시킬 수 있습니다. • 1을 입력하면 파티클 콜라이더를 동일한 크기로 유지하고, 파티클이 콜라이더에 닿을 때 이벤트가 발생하는 것처럼 보입니다. • 1보다 작은 값을 입력하면 파티클 콜라이더가 더 작아지고, 파티클이 콜라이더를 관통한 후 트리거가 발생하는 것처럼 보입니다. • 1보다 큰 값을 입력하면 파티클 콜라이더가 더 커지고, 파티클이 콜라이더를 관통하기 전에 트리거가 발생하는 것처럼 보입니다. |
Visualize Bounds | 씬 뷰에서 각 파티클의 콜라이더 경계를 표시할지 여부를 나타냅니다. 이 프로퍼티를 활성화하면 콜라이더 경계를 표시하고, 비활성화하면 콜라이더 경계를 숨깁니다. |
https://docs.unity3d.com/kr/2021.3/Manual/PartSysTriggersModule.html
——————————————————————————
유데미코리아 바로가기 : https://bit.ly/3b8JGeD
본 포스팅은 유데미-웅진씽크빅 취업 부트캠프 유니티 1기 과정 후기로 작성되었습니다.
'대외활동 > starters 부트캠프 feat.웅진씽크빅' 카테고리의 다른 글
유데미 스타터스 취업 부트캠프 유니티 1기 9주차 학습 일지 (0) | 2022.08.21 |
---|---|
유데미 스타터스 취업 부트캠프 유니티 1기 8주차 학습 일지 (0) | 2022.08.14 |
유데미 스타터스 취업 부트캠프 유니티 1기 6주차 학습 일지 (0) | 2022.07.31 |
유데미 스타터스 취업 부트캠프 유니티 1기 5주차 학습 일지 (1) | 2022.07.24 |
[유데미] "쉽게 배우는 C# 알고리즘 입문" 리뷰 (0) | 2022.07.17 |