프로젝트 세팅>엔진-입력에서 Turn 과 LookUp를 확인한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<ABCharacter.h>
#pragma once
#include "ArenaBattle.h" // = EngineMinimal.h
#include "GameFramework/Character.h"
#include "ABCharacter.generated.h"
UCLASS()
class ARENABATTLE_API AABCharacter : public ACharacter
{
...
private:
void UpDown(float NewAxisValue);
void LeftRight(float NewAxisValue);
void LookUp(float NewAxisValue);
void Turn(float NewAxisValue);
};
|
cs |
ABCharcter 해더파일에 LookUp과 Turn 을 선언해준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<ABCharacter.cpp>
#include "ABCharacter.h"
...
// Called to bind functionality to input
void AABCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);
...
PlayerInputComponent->BindAxis(TEXT("LookUp"), this, &AABCharacter::LookUp);
PlayerInputComponent->BindAxis(TEXT("Turn"), this, &AABCharacter::Turn);
}
...
void AABCharacter::LookUp(float NewAxisValue)
{
AddControllerPitchInput(NewAxisValue);
}
void AABCharacter::Turn(float NewAxisValue)
{
AddControllerYawInput(NewAxisValue);
}
|
cs |
ABCharacter.cpp에서 Lookup과 Turn을 캐릭터에 붙여주고
아래 함수에서 정의를 해준다
AddController --- Input 함수는 캐릭터의 회전을 담당한다
AddControllerYawInput
AddControllerRollInput
AddController PitchInput 순서대로 Z축,X축,Y축으로의 회전이다.
컴파일하고 게임을 실행해보면 마우스의 움직임에 따라 시점이 회전하는 것을 알 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<AVCharacter.cpp>
void AABCharacter::SetControlMode(int32 ControlMode)
{
if (ControlMode == 0)
{
SpringArm->TargetArmLength = 450.0f; //컨트롤 모드가 0일때 스프링암의 길이는 450
SpringArm->SetRelativeRotation(FRotator::ZeroRotator);
SpringArm->bUsePawnControlRotation = true;
SpringArm->bInheritPitch = true;
SpringArm->bInheritRoll= true;
SpringArm->bInheritYaw = true;
bUseControllerRotationYaw = false;
GetCharacterMovement()->bOrientRotationToMovement = true;//방향에따른 움직임 설정(회전기능)
GetCharacterMovement()->RotationRate = FRotator(0.0f,720.0f,0.0f);//회전속도 설정해서 자연스러운 회전 움직임
}
}
|
cs |
방향에 따라 회전하는 코드와 회전속도를 지정해서 자연스러운 움직임을 나타내는 코드를 추가하고 게임을 돌려보면 방향에 따라 움직임을 바꾸는 캐릭터를 볼 수 있다
이제 카메라 시점에 맞게 자연스럽게 회전하며 움직이는 캐릭터를 볼 수 있다.
'언리얼 개인 프로젝트 > 언리얼엔진C++ 독학(이득우)' 카테고리의 다른 글
6.캐릭터 제작과 컨트롤_4)디아블로방식 컨트롤 구현 (0) | 2022.03.05 |
---|---|
6.캐릭터 제작과 컨트롤_3)GTA방식 컨트롤 구현 (0) | 2022.03.04 |
6.캐릭터의 제작과 컨트롤_1)캐릭터 제작 (0) | 2022.03.04 |
5. 폰의 제작과 조작_3폰에 애니메이션입히기 (0) | 2022.03.04 |
5. 폰의 제작과 조작_2폰의조작 (0) | 2022.03.04 |