[Unreal]#8_Attach Gun Actor to Shooter Character

2022. 8. 16. 19:43· 게임개발/Unreal C++
목차
  1. [Unreal]#8_Attach Gun Actor to Shooter Character

[Unreal]#8_Attach Gun Actor to Shooter Character

Unreal 개발 중 "Gun Actor"에 대해 알아보겠습니다.

"Simple Shooter Game"의 Character Class 개발 과정 중 일부입니다.

 

 


 

Attach Gun Actor to Shooter Character via Socket

 

개별적으로 생성한 Gun Actor를 "Socket"을통해 Character에 Attach 하는 방법에 대해 알아보겠습니다.

 

1. Mesh -> Skeleton Tree에서 Gun Actor가 들어갈 위치 확인

1. Character의 Animation Bluprint의 에디터 창을 엽니다.

2. 오른쪽 상단, "Mesh" 정보를 엽니다.

3. Gun에 해당하는 Skeletal Tree의 이름 정보(FName)를 확인합니다. 여기선 "weapon_r"입니다.

 

 

2. Character Mesh 중 Gun Mesh에 해당하는 Bone을 숨깁니다.

GetMesh()->HideBoneByName(TEXT("weapon_r"), EPhysBodyOp::PBO_None);
void USkinnedMeshComponent::HideBoneByName(FName BoneName, EPhysBodyOp PhysBodyOption) ?
: SkinnedMeshComponent 클래스의 "HideBoneByName()" 메서드는 특정 Bone의 이름을(FName)을 인자로 넘겨 해당 Bone을 숨깁니다.

 

"GetMesh()"를 통해 Character가 갖는 Mesh를 가져와 "HideBoneByName()" 메서드를 호출해 Gun Mesh가 들어갈 Skeleton의 Bone 자리(미리 설정된 Gun Mesh의 위치)를 숨겨줍니다.

 

3. Skeleton Tree에서 Gun Mesh 자리에 Socket을 추가합니다.

1. Animation Blueprint 에디터 창을 열어 오른쪽 상단의 "Mesh"를 엽니다.

2. Skeleton Tree에서 Gun Mesh가 들어갈 자리를 찾아서 *Socket을 추가합니다.

 

* Socket?
: 말 그대로 다른 Mesh와 Skeleton을 연결할 Plug 역할을 해줍니다. 

 

4. Gun Actor를 Socket과 연결합니다.

// BeginPlay() 내부...
Gun->AttachToComponent(GetMesh(), FAttachmentTransformRules::KeepRelativeTransform, TEXT("WeaponSocket"));
void AActor::AttachToComponent(USceneComponent* Parent, const FAttachmentTransformRules& AttachmentRules, FName SocketName) ?

: Actor 클래스가 제공하는 메서드로, Actor의 Root Component(Scene Component)를 특정 컴포넌트에 Attach 합니다. 선택적으로 "Socket Name"을 활용할 수 있습니다.

* 주의 : 등록되지 않은 컴포넌트에선 호출될 수 없습니다! 따라서, 해당 메서드를 생성자가 아니라, BeginPlay() 내부에서 호출합니다.

 

"AttachToComponent()"를 통해 Actor의 Root Component(여기선 Scene Component)를 특정 Component에 Attach 합니다.

 

여기서 우린 미리 생성한 "Socket"의 이름(FName)을 통해 Attach 동작을 수행하겠죠! 

 

5. Gun Actor의 Owner 설정

Gun->SetOwner(this);
* void AActor::SetOwner(AActor* NewOwner) ?

: Actor의 Owner를 설정합니다!

 

결과 화면

 

 

 

'게임개발 > Unreal C++' 카테고리의 다른 글

[Unreal]#9-2_Shooting 설계 및 구현  (0) 2022.08.20
[Unreal]#9-1_Shooting 설계 및 구현  (0) 2022.08.17
[Unreal]#7_Spawn Gun Actor in Runtime  (0) 2022.08.12
[Unreal]#6_Gun Actor Setting  (0) 2022.08.11
[Unreal]#5_Character의 이동 속도와 각도 구하기, Animation Blueprint  (0) 2022.08.10
  1. [Unreal]#8_Attach Gun Actor to Shooter Character
'게임개발/Unreal C++' 카테고리의 다른 글
  • [Unreal]#9-2_Shooting 설계 및 구현
  • [Unreal]#9-1_Shooting 설계 및 구현
  • [Unreal]#7_Spawn Gun Actor in Runtime
  • [Unreal]#6_Gun Actor Setting
Hardii2
Hardii2
Hardii2
개발 블로그
Hardii2
전체
오늘
어제
  • 분류 전체보기
    • 알고리즘
    • 웹 개발
      • Node.js
      • React
    • 게임개발
      • DirectX12
      • 관련 지식
      • Unreal C++
      • Unreal 블루프린트
    • 언어
      • Effective C++
      • Basic C++
      • 디자인 패턴
      • 자료구조
      • 기술 질문
    • 문제 풀이
      • BOJ 문제 풀이
      • Programmers 문제 풀이
      • geeksForgeeks 문제 풀이
    • 수학
      • 확률과 통계
      • 게임수학
    • 개인프로젝트
    • 그룹프로젝트
      • PM
      • Dev
    • Github

블로그 메뉴

  • 홈
  • 글쓰기

공지사항

인기 글

태그

  • Unreal Blueprint
  • Effective C++
  • 기술 질문
  • 우선순위 큐
  • 개발
  • 트리
  • set
  • 그래프
  • programmers
  • dfs
  • 디자인 패턴
  • stl
  • 정렬
  • DP
  • 최단 경로
  • BFS
  • 알고리즘
  • BOJ
  • unreal
  • C++

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Hardii2
[Unreal]#8_Attach Gun Actor to Shooter Character
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.