이번 포스팅에서는 Player가 머티리얼에 닿았을 때 폭발하는 파티클이 나오며 머티리얼이 사라지는 효과와 Player가 다가갔을 때 머티리얼이 깜빡이는 글로우 효과를 주는 것에 대해 정리하였습니다.
만약 블루프린트에서 기본 함수가 없다면 함수의 오버라이드를 원하는 함수를 클릭하면 생성할 수 있습니다.
오브젝트에 닿았을 때 폭발하며 파티클 생성
먼저 콘텐츠 브라우저에서 우클릭하여 [블루프린트 클래스] - [액터]로 새로운 블루프린트 클래스를 생성합니다.
Construction Script
생성자 역할을 하지만 생성자는 아니고 BeginPlay보다 먼저 호출됩니다
[+ 컴포넌트 추가]를 클릭하고 Scene 컴포넌트를 생성하여 DefaultSceneRoot에 Scene을 덮어 쓴 후,
Root라고 이름을 바꿉니다.
다시 [+ 컴포넌트 추가]하여 Box Collision을 생성한 뒤 Trigger라고 하겠습니다.
Trigger를 이용해 Player가 오브젝터에 닿았을 때 폭발하며 사라지는 Paticle을 생성해보겠습니다.
Overlap과 Hit
이 트리거(Box Collision)를 [우클릭] - [이벤트 추가] - [OnComponentBeginOverlap 추가]를 합니다.
콜리전(Collision) 이벤트에 Overlap과 Hit 두가지가 있는데 여기서는 Overlap을 선택합니다.
Overlap (겹침)은 Physics 설정을 하지않아도 발생하며 조건은 Block + Overlap or Overlap + Overlap일 때 1번 발생하며 Mesh에 콜리전이 무조건 있어야합니다.
Hit는 Block + Block이고 한쪽이 Physics가 Enable 상태이어야 합니다. Hit 이벤트는 2개의 오브젝트가 막히는 것입니다.
Ovelap 이벤트가 생성된 것을 볼 수 있습니다. 여기서 Other Actor는 닿은 액터입니다.
Spawn Emitter at Location을 생성하여 파티클을 생성할 에셋을 선택하고 그 위치에 생성하기 위해 GetActorLocation을 추가해서 이어줍니다.
오브젝트 파티클 생성 및 파괴 - 완성된 블루프린트 (플레이어 태그 추가 전)
이제 오브젝트에 닿았을 때 폭발하는 파티클이 나오며 사운드가 출력되고 해당 오브젝트가 파괴되는 것을 볼 수 있습니다.
오브젝트 파티클 생성 및 파괴 - 완성된 블루프린트 (플레이어 태그 추가)
오브젝트가 Player에만 닿았을 때 파티클이 나오고 파괴되도록 tag를 추가해보겠습니다.
디테일에서 tag를 검색하여 액터의 태그에 Player라는 태그를 추가합니다.
Begin Overlap의 Other Actor에 Player태그를 가진 타깃일 때만 True가 되도록 Branch 이벤트를 만들어줍니다.
머티리얼 반짝이기
머티리얼을 반짝이기 위해 x값을 시간으로 주어 계속 증가하게 하고 Sin (Radian)으로 반환하면 위의 Sin함수 처럼 x값이 증가하여도 y값이 일정 범위내에서 반복적인 주기를 가지게 되는데, 이를 이용하여 머티리얼에 반짝이는 효과를 줄 수 있다.
Get Time Seconds로 시간과 Frequency(주기 속도)를 곱하여 Sin (Radians)로 반환합니다.
Radians이 단위인 sin을 액션으로 생성해줍니다.
단위를 각도(Degrees)로 하면, 360도까지 증가하고 다시 감소합니다.
값이 -1 ~ +1 사이로 일정 주기로 반복되는 것을 볼 수 있습니다.
빈도(Frequency)를 최소, 최대를 0, 2로 제한하고 기본 값을 1로 지정합니다.
머티리얼 편집
파라미터로 변환하여 외부에서 접근이 가능하게 해줍니다.
Time에 빈도를 곱하고 Sin으로 반환하여 이미시브 컬러와 연결하여 머티리얼의 편집을 마치겠습니다.
BP_DynamicColorBall이라는 블루프린트 클래스에 Construction Script로 가서 머티리얼 인스턴스를 생성합니다.
하단의 콘텐츠 브라우저에서 머티리얼 인스턴스 생성을하는 방법과
Set Material에서 Material의 에셋을 선택하는 방법이 있습니다.
하단의 콘텐츠 브라우저에서 머티리얼 인스턴스 생성을하는 방법은 인스턴스 생성을 하고 디테일의 Our Mat에 생성한 머티리얼 인스턴스를 넣어주면 됩니다.
동적 머티리얼 인스턴스를 만듭니다. Create Dynamic Material Instance
소스 머티리얼에서 머티리얼을 선택합니다.
변수로 승격하여 값을 바꿔줄 수 있도록 합니다.
New Var1이라는 변수가 생성되는데 변수 이름을 OurMat으로 변경합니다.
Set Vector Parmeter Value를 생성해줍니다.
그리고 Value가 구조체로 되어있는 데 이 값들을 변경하기 위해 우클릭합니다.
분할 후, Value의 R, G, B의 랜덤 float 값을 줍니다. 다가갔을 때 랜덤으로 색이 지정된 후, 반짝이는 효과가 나오게 됩니다.
'
태그가 TPC(Player)일 때 단 한번만 실행되도록 만들어줍니다.
'개발 > Unreal' 카테고리의 다른 글
[Unreal Engine4] 프로젝트 맵 & 모드 or 월드 세팅의 Game Mode 세팅 (1) | 2023.03.26 |
---|---|
[Unreal Engine4] 블루프린트 에디터에서 미확인 탭이 뜰 때 간단 해결법 (0) | 2023.03.24 |
[Unreal Engine4] 액터 이동, 회전, 점프[Transform Move, Rotate, Jump(Add Impulse)] (2) | 2023.03.22 |
[Unreal Engine4] 언리얼 엔진4 기본 사용 (1) | 2023.03.19 |
[Unreal Engine4] 'UnrealEnginePython' 플러그인 로드에 실패했습니다. [오류 해결] (7) | 2023.03.15 |