언리얼엔진 (71) 썸네일형 리스트형 [C++] Socket에 Gun 위치 / 탄피 / 반동 / 피격효과 * MyGPC... 블루프린트 이름들을 모두 BP_...으로 이름을 수정함 블루프린트 뷰 포트 상에서 Character의 손에 Gun 위치시키기 GPCCharacter 클래스 헤더에서 필요한 함수와 변수를 추가했다. UCLASS(Abstract) class GPC_CPP_12_API AGPCCharacter: public ACharacter, public IPosableOneInterface, public IActableOneInterface { public: void OnConstruction(FTransform const& Transform) override; protected: UPROPERTY(EditDefaultsOnly) FName GunSocket; UPROPERTY() UChildActor.. [C++] BeginFire() 수정 / SpawnActor() / AttachToComponent GPCGun 클래스의 발사 키 입력 시 호출되는 BeginFire() 함수 수정 GPCGun 클래스의 BeginFire() 함수의 정의를 구현해주었다. #include "GPCBullet.h" void AGPCGun::BeginFire() { MuzzleFlash->Activate(true); GunshotSound->Play(); FTransform Muzzle = Mesh->GetSocketTransform(MuzzleSocket); Muzzle.SetLocation(Muzzle.GetLocation() + Muzzle.GetRotation().GetForwardVector() * 25); FActorSpawnParameters SpawnParameters; SpawnParameters.Owner =.. [C++] MuzzleFlash, Sound 활성화 / GPCBullet MuzzleFlash와 Sound 발생시키기 저번시간에는 Construction() 함수를 이용하여 RootComponent에 다른 Component들을 붙여주었다. 이번에는 마우스 좌클릭으로 총알을 발사하게 되는데, 이때 MuzzleFlash와 GunshotSound를 활성화시켜줄 것이다. void AGPCGun::BeginFire() { MuzzleFlash->Activate(true); GunshotSound->Play(); } 총알 발사 시, GPCGun 클래스의 BeginFire()이 호출될 것이다. 이곳에서 MuzzleFlash의 Activate()를 부르며, bReset의 여부를 정해준다. (bReset은 Activate될 시 다시 처음부터 활성화될 지의 여부를 묻는다) GunshotSoun.. [C++] GPCWeapon수정 / 무기 Mesh 추가 / Mesh 변환 / GPCGun 생성 * ObjectInitializer : 오브젝트를 초기화 GPCWeapon 클래스의 AGPCWeapon() 생성자 수정 GPCWeapon 클래스의 AGPCWeapon() 생성자에 추가했던 (const FObjectInitializer const& ObjectInitiablizer = FObjectInitializer ::Get()) 기본 인수는 다시 지워주었다. * SUPER() 멤버이니셜라이저와 Mesh를 정의했던 부분도 지워 AGPCWeapon() 생성자를 초기 상태로 만든다. class GPC_CPP_12_API AGPCWeapon: public AActor, public IActableOneInterface, public IWeaponInterface { public: AGPCWeapon(); p.. [C++] ActableOneInterface / WeaponInterface ActableOneInterface 클래스 추가 무기를 만들기전에 먼저 새 C++클래스 - Unreal Interface 부모 클래스 - ActableOneInterface 클래스를 하나 생성해준다. 인터페이스로 만들었으므로, 마찬가지로 cpp은 사용하지 않을 예정이므로 지워준다. 언리얼 프로젝트에서 입력 - 액션 매핑에 공격과 관련된 키 입력들을 추가해주었다. * 액션 매핑 - ActA : 왼쪽 마우스 버튼 - ActB : 오른쪽 마우스 버튼 - ActC : R IActableOneInterface 클래스에 키 입력 시 호출될 BeginAction()함수들과 종료 시 호출될 EndAction()함수들을 선언한다. class GPC_CPP_12_API IActableOneInterface { GENERA.. [C++] 스테이트 머신(Standing - Crouching) / 에임 오프셋 / Camera Lag Enable 스테이트 머신(Locomotion) 추가 및 설정 (Standing - Crouching) ABP_Character 애니메이션 블루프린트 화면에서 AnimGraph에 스테이트 머신(Locomontion)을 추가했다. * 기존의 BS_Standing / BS_Crouching 블렌드 스페이스는 지웠음. 이제 Locomotion 내부에 BS_Standing(Standing) / BS_Crouching(Crouching) 블렌드 스페이스를 추가해주고, 각각 Entry → Standing ↔ Crouching으로 트렌지션 룰을 연결해준다. Prone_Idle(LyingProne) 애니메이션도 추가했다. Locomotion 스테이트 머신에서 추가한 Standing과 Crouching 블렌드 스페이스에 들어가서 디.. [C++] 인터페이스 구현, 상속, 호출 변경 사항 * 저번에 만든 ControlledPawnInterface 클래스 명을 PosableOneInterface로 바꿔주었다. //헤더파일 명 변경 #include "PosableOneInterface.generated.h" //첫번째 클래스 명 변경(U~) class UPosableOneInterface : public UInterface //두번째 클래스 명 변경(I~) class GPC_CPP_12_API IPosableOneInterface 액션 매핑에 추가했던 Crouch 삭제 후, Pose A / Pose B 두 액션 매핑을 새로 추가했다. C++ 인터페이스 구현하기 지금까지 블루프린트로 인터페이스 함수를 만들때 기본 구현을 미리 만들어둘 수 없었다. 하지만 C++ 인터페이스에서는 가능하.. [C++] GameModeBase 설정 / Stand, Crouch 애니메이션 / 인터페이스 생성 GPCPlayerController 사용하기 저번에 GPCPlayerController 클래스를 만들어 GPCCharacter의 이동 로직을 옮겨주었다. 언리얼 에디터에서 GPCGameModeBase 기반 블루프린트 클래스를 생성해준다(BP_GPCGameModeBase). BP_GPCGameModeBase 블루프린트에서 Classes를 수정했다. - Player Controller Class : GPCPlayerController 설정 사용할 컨트롤러 클래스를 넣어주었다. - Default Pawn Class : BP_Character 설정 기본 Pawn 클래스가 무엇인지 설정해주었다. 마지막으로 편집 - 프로젝트 세팅 - 프로젝트 / 맵 & 모드 - 기본 게임모드를 BP_GPCGameModeBase로 .. 이전 1 2 3 4 ··· 9 다음 목록 더보기