이 게시글은 움짤이 있습니다. 데이터가 많이 나갈 수도 있습니다.
Laser Reflection을 제작해보면서 입사각, 반사각이 사용되었다.
입사각에 대한 반사각을 구해보자.
일단 첫번째 레이저를 쏴 본다.
부딪치면, 첫번째 레이저(입사각)에 대한 반사각을 구한다.
초록색은 이미 한번 충돌이 일어난 LineTrace을 뜻한다.
반사각에 해당하는 레이저가 초록색인 원인을 알아보니, 반사각의 시작지점에서 오브젝트와 충돌이 난 것이다.
1만큼 떨어지게 해서 충돌체크가 일어나지 않게 하자. (반사각의 벡터가 단위벡터라서 길이가 1이다.)
이렇게 충돌충돌하면서 레이저를 제작하면 된다.
부딪히지 않을 때까지 반사각을 계속 구하면 되니까 재귀함수를 쓰면 편하다.
재귀함수를 돌면서, 부딪힌 곳들을을 배열에 담아놓고
배열에 담아져있는 데이터를 기반으로 레이저를 생성하면 된다.
레이저는 파티클 시스템에 있는 Beam을 사용했다.
레이저의 위치는 Beam의 Source Point(시작점), End Point(끝점)을 설정하여 맞춰주었다.
Mirror라는 새 채널을 만들어서,
반사되고 싶은 오브젝트의 콜리전에 Mirror채널을 연결하면,
원하는 오브젝트에만 반사되게 할 수 있다.
이런 것들을 이용하면, 이렇게 레이저 반사도 자연스럽게 구현할 수 있다.
'Unreal' 카테고리의 다른 글
블루프린트 입문 2주차 (0) | 2021.02.01 |
---|---|
블루프린트 입문 1주차 (0) | 2021.02.01 |
[Material] World Position 노드 알아보기 (1) | 2021.01.22 |
[Unreal BP] Physics Handle을 이용해 오브젝트 Grab하기 (2) | 2021.01.21 |
[Material] Screen Position 노드 알아보기 (0) | 2021.01.21 |