Make Unreal REAL.
article thumbnail
블루프린트를 활용한 무기 추가

이득우의 언리얼 C++ 게임 개발의 정석 ABWeapon 액터 클래스를 우클릭해 자신을 상속 받은 블루프린트 액터 클래스를 만든다. 부모인 ABWeapon의 생성자에서 BlackKnight 검을 기본으로 지정했기 때문에 검이 보인다. Sksletal Mesh를 SK_Blade_GreatBlade로 변경해주면 무기의 모양을 바꿀 수 있다. 월드에 배치된 아이템 박스에서 WeaponItemClass를 방금 생성한 BP_WeaponAxe 블루프린트 액터 클래스로 변경한다. 이제 아이템 상자에 다가가면 도끼를 획득하게 된다.

article thumbnail
아이템 상자 이펙트 적용

이득우의 언리얼 C++ 게임 개발의 정석 아이템 상자에 Particle System 컴포넌트 변수를 추가한다. Template으로 지정한 Particle System 재생이 종료되면 발동하는 OnSystemFinished라는 델리게이트가 있다. C++과 BP 모두에서 사용 가능한 다이나믹 멀티캐스트 델리게이트이다. 따라서, 등록할 함수는 UFUNCTION() 매크로를 지정해줘야 한다. 람다식 함수는 등록할 수 없다. OnSystemFinished에 등록할 함수를 선언한다. 생성자에서 컴포넌트를 추가한다. UParticleSystem->SetTemplate() 함수를 이용해 컴포넌트에 파티클 시스템 에셋을 지정할 수 있다. UParticleSystem->bAutoActivate를 지정해 자동 재생 여부를 ..

article thumbnail
아이템 상자로 무기 획득

이득우의 언리얼 C++ 게임 개발의 정석 아이템 상자 클래스에 무기의 종류를 저장할 변수를 만든다. UClass* 형식으로 선언할 수도 있지만 IntelliSense에서 불필요한 것들까지 보이게 된다. TSubclassOf 키워드를 사용하면 Class와 상속 받은 클래스의 정보들만 볼 수 있다. ABWeapon.h 헤더를 포함하고 생성자에서 기본 클래스를 지정한다. 컴파일하면 Details 패널에 변수가 표시된다. 기존에 캐릭터의 BeginPlay에서 기본으로 무기를 쥐어주던 부분을 주석 처리한다. 무기를 장착시키는데 필요한 함수와 현재 무기 액터를 저장하는 변수를 생성한다. 무기 액터를 전달 받아 메시의 hand_rSocket 소켓에 붙인다. AActor->SetOwner()는 네트워크 리플리게이션을 ..

article thumbnail
아이템 상자 구현

이득우의 언리얼 C++ 게임 개발의 정석 플레이어와의 Overlap을 감지할 Collision 박스와 시각화를 담당하는 Static Mesh로 아이템 상자를 구성한다. ABItemBox 액터를 생성한다. SM_Env_Breakables_Box1 Static Mesh 에셋을 연다. 좌측 상단의 정보에서 다음을 파악할 수 있다. LOD 상태 폴리곤과 버텍스 개수 대략적인 크기 Collision 도형의 개수 상단의 Collision 메뉴에서 Simple 혹은 Complex를 선택해 초록색으로 Collision을 표시할 수 있다. ... 현재 1개의 Box Collision이 기본적으로 있는데, 없을 경우 추가할 수도 있다. 상자가 너무 작아 크기를 조정하겠다. Details 패널의 LOD 0 섹션에서 Buil..

article thumbnail
무기를 액터로 분리

이득우의 언리얼 C++ 게임 개발의 정석 ABWeapon이라는 새로운 액터 클래스를 만든다. 클래스를 새로 생성할 때 헤더 파일에서 CoreMinimal.h을 ArenaBattle.h로 바꿔주는 걸 잊지 말자. BlackKnight 검 Skeletal Mesh 에셋을 저장할 컴포넌트 변수를 선언한다. Skeletal Mesh 컴포넌트에 BlackKnight 검 에셋을 지정하고 루트 컴포넌트로 설정한다. 공격 판정은 캐릭터에서 SweepSingleByChannel() 함수를 통해 하고 있으므로 충돌 프리셋을 NoCollision으로 설정한다. 검 액터는 매 프레임마다 처리할 것이 없으므로 Tick을 꺼서 성능 향상을 도모한다. 캐릭터 클래스에서 컴포넌트로 검을 붙이던 부분을 주석 처리한다. ABWeapon..

article thumbnail
소켓에 무기 장착

이득우의 언리얼 C++ 게임 개발의 정석 마켓플레이스에서 무기 에셋을 임포트한다. 무기는 캐릭터에 Mesh 컴포넌트를 붙이고 Transform을 조정해 배치하는 것이 아니다. 캐릭터가 아닌 메시에 부착해야 애니메이션에 따라 무기가 함께 움직인다. 메시에 무기나 액세서리를 부착하기 위한 용도로 소켓이라는 시스템을 제공한다. Skeletal Mesh 에셋을 열면 원하는 위치와 회전으로 소켓을 추가할 수있다. 소켓을 우클릭하면 Add Preview Asset에서 무기나 액세서리를 테스트로 붙여볼 수 있다. 상단의 Preview Animation 메뉴에서 애니메이션을 선택하면 테스트용 애니메이션을 재생해 볼 수도 있다. 무기로 사용할 BlackKnight 검은 Skeletal Mesh 에셋이기 때문에 캐릭터 클..

검색 태그