Unreal

[Unreal] 4월 16일 수업정리

k-codestudy 2025. 4. 16. 18:28

오늘은 소켓에 대한 수업을 들었다.

 

소켓

언리얼 문서 기준

  • 스켈레탈 메시에서 본에 오브젝트를 어태치 할 때 이 어태치먼트를 오프셋해야 하는 경우가 있습니다. 수학 연산을 사용하여 오프셋 트랜스폼을 추정하는 대신 소켓을 생성할 수 있습니다. 소켓은 스켈레톤 계층구조 내의 전용 어태치 포인트로, 부모로 지정된 본에 상대적으로 트랜스폼 할 수 있습니다. 구성한 후에는 오브젝트, 무기 및 기타 액터를 소켓에 어태치 할 수 있습니다

간단하게 이야기하면 위치 정보(좌표)를 얻어올 수 있는 것이다.

 

그래서 할 것은 F키를 누르게 되면 물체를 집고, F키를 다시 누르게 되면 물체를 놓는 작업을 해볼 것이다.

 

오브젝트 세팅

오브젝트 세팅 -> Collision에서 gameObject를 ObjectChannel, 프리셋에 만들기 ( 프로파일 편집의 경우 충돌할것과 안할것을 구분하여 콜리전 설정 )

 

들 수 있는 물체 만들기 

원래 기본적인 세팅

  • 기본적으로 엑트를 만들어 StaticMesh, sphere를 추가하면 이렇게 되는데 이 상태에서 물리를 먹이게 되면 충돌 범위는 움직이지 않고, 충돌(sphere Collision)을 StaticMesh의 산하에 넣게 되면 움직이는 것처럼 보이지만 로컬 좌표계는 그대로 인 것을 볼 수 있다.
  • 그렇기에 이걸 해결하기 위해 StaticMesh를 DefaultSceneRoot에 끌어다 가져가면 저런 식으로 창이 뜨고 드롭을 하게 되면 아래 사진처럼 되게 된다
  • 이렇게 하면 정상적으로 작동하는 것을 알 수 있다

 

피직스 설정 - Simulate Physics는 껏다 켰다 하면서 실험해 볼것
간단한 바인드 언바인드 인데 바인드 중간에 m-Third Person을 백업, 언바인드는 다 진행 후 m-Third Person를 null로 날려주는 작업을 추가
바인드/언바인드 중 만에 하나 오류가 나는 경우가 발생할 수 있기에 하나의 장치를 마련할 것인데 이것이 m-ThirdPerson의 검증된 Get을 이용하는 것이다.
m-ThirdPeron의 검증된 Get

 

이건 아래 작업을 전부 끝내고 해야할 것들 ( 위치를 맞추고 싶어서 여기에 둔 것 )

  • e-attatchObject가 참일 경우 E-attach Object를 호출하게 되고 클래스 즉 설계도를 알려주기 위해서 self의 class Ref를 얻어와 연결

소켓 추가 작업 

애니메이션 파일들 위치
캐릭터 -> 본 그리기 -> 모든 계층구조를 클릭하게 되면 저런식으로 전체적인 본을 그려준다.
hand_r에 소켓 추가를 누르게 되면 오른쪽 손의 본에 소켓을 추가 / 위치는 알아서 조정

 

BP_ThirdPerson

mehs를 클릭한 후 scene 추가
mesh가 부모일때만 뜸 -> 소켓 또는 본 추가 -> 우리가 만들었던 소켓 추가
떙 코딩 : 캡슐 컴포넌트랑 오버랩 되었을때 그것이 bp-attatch Obejct인지 확인하고 do once로 한번만 실행하도록 제한을 걸어 둔 후 simulate Physics로 on Off 조절, attatch Actor to Component로 액터에 컴포넌트르 붙히도록 설정
실행 결과
mesh를 클릭하고 Actor Child를 생성 후 e-attachObject 이벤트가 실행이 되면 set Child Actor class를 실행 ( 입력에 bp-attachObject 클래스 래퍼런스를 하나 만들어서 set Child Actor class에 연결을 해줘야 한다 ( 설계도를 알려주는 행위 )
실행

'Unreal' 카테고리의 다른 글

[Unreal] 4월 21일 수업정리  (0) 2025.04.21
[Unreal] 4월 18일 수업정리  (0) 2025.04.18
[Unreal] 4월 15일 수업정리  (0) 2025.04.15
[Unreal] 4월 14일 수업정리  (0) 2025.04.14
[Unreal] 4월 10일 수업정리  (0) 2025.04.10