사용하고 싶은 크로스 헤어를 콘텐츠 브라우저에 끌어다 놓은뒤 더블클릭을 한다.
탭이 열리면 압축탭에서 압축세팅->UserInterface2D 로 변경한다.

저장 한 다음 다시 콘텐츠브라우저에서 새로운 블루프린트 클래스를 추가하는데 HUD를 상속받아 만든다

월드세팅->HUD Class에서 생성된 블루프린트 클래스로 선정한다(본인은 BP_Aim으로 직명함)

다시 만든 블루프린트 클래스->이벤트 그래프에 들어가서 Event Receive Draw HUD를 생성합니다.

Draw Texture 함수를 불러와 텍스쳐에 맨처음 가져온 크로스헤어를 선택하고
Event Receive Draw HUD의 SizeX와SizeY는 우리 모니터 사이를 뜻하기 때문에 중앙에 크로스헤어를 위치시키려면 나누기 2를 하고 설정해준 크로스헤어의의 중간크기만큼을 빼서 Draw Texture 함수에 연결해 주면 된다.


잘 실행된다.
이제 조준이 됬으니 발사를 구현해 볼텐데
GetViewportSize라는 함수로 화면 사이즈를 가져온뒤 핀 분할을 해 X와 Y를 각각 2로 나눠준다. 그리고 Deproject Screen To World 함수를 가져와서 플레이어 컨트롤러를 설정해주고 좀전에 나눈 X와 Y값을 Make Vector 2D 라는함수에 넣어 리턴값을 ScreenPosition에 넣어준다.

그리고 World Position을 Line Trace By Channel 등 함수의 Start값에, World Direction을 길이를 곱하고 Position을 더한다음 End값에 넣어준다.

이렇게 되면 내가 보는 카메라에서 크로스 헤어 방향으로 레이저가 나가게 된다.
이제 내가보는카메라가 아닌 케릭터 총구에서 나가게 해야하는데 내가 조종하는 케릭터의 매쉬 탭을 열어 무기가 들릴부분 뼈 부분에 소켓을 추가한다. 그리고 다시 블루프린트도 돌아와 Get Socket Transform 함수를 연다

만들어졌으면 In Socket Name에 내가 방금만든 소켓이름을 작성하고 Return값을 분할한다음 다시 Line Trace By Channel 함수를 불러서 Start 값에 Location값을, end 값에 이전Line Trace By Channel 함수의 리턴값 중 Out Hit의 Location값을 넣으면 총구에서 라인이 나가게 된다.

'언리얼엔진 > 블루프린트' 카테고리의 다른 글
플레이어 입력 처리 (0) | 2023.04.09 |
---|---|
BehaviorTree (0) | 2023.04.07 |
애니메이션 리타겟팅 (0) | 2023.03.29 |
에임 오프셋 (0) | 2023.03.27 |
애니메이션 몽타주 (0) | 2023.03.27 |
댓글