언리얼엔진
[UE] Behavior Tree: 활 Enemy 생성, Player 바라보기
[UE] Behavior Tree: 활 Enemy 생성, Player 바라보기
2023.08.07이번에는 궁수 AI를 만들것이다. 원거리에서 화살을 날리는 궁수 AI는 근거리 AI와 함께 게임에 배치하면 적 공격 패턴이 다양해져 게임에 재미를 더할 수 있다. Behavior Tree는 일전에 구현한 Melee와 크게 다르지 않다. 적을 인식하면 무기를 장착하고 활 시위를 당긴 후 화살을 날리게 만들 것이다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeaponCheckBoxes.h .cppSWeaponDetailsView.h .cppSWeaponDoActionData.h .cppSWeaponEquipmentData.h .cppSWeaponHitData.h .cppS..
[UE] Plugin (StaticMesh Detail)
[UE] Plugin (StaticMesh Detail)
2023.04.07플러그인 모듈 생성 플러그인 모듈은 플러그인의 기능을 구현하는 C++ 코드다. 모듈은 모든 Unreal Engine 모듈과 동일한 방식으로 작동하며, 헤더 파일과 소스 파일로 구성된다. Unreal Editor에서 "Add New -> C++ Class"를 선택하고 "Module Class"를 선택하여 모듈 클래스를 만들 수 있다. 목차 Plugins Example Example.Build.csExampleConsoleCommand.h .cpp ExampleDebuggerCategory.h .cppExampleModule.h .cppStaticMesh_Detail.h .cppSource Utilities CHelper.hCLog.h .cpp Global.hCStaticMesh.h .cpp...
[UE] Plugin, Slate UI
[UE] Plugin, Slate UI
2023.04.03언리얼 엔진에서 플러그인은 엔진의 기능을 확장하는 모듈식 구성요소이다. 사용자 정의 플러그인을 생성하여 새로운 기능을 추가하거나 기존 기능을 수정할 수 있으므로 개발자가 특정 요구 사항에 맞게 엔진을 조정할 수 있다. 커스텀 플러그인을 만들 때 모듈식 디자인의 모범 사례를 따르고 언리얼 엔진의 프로그래밍 규칙을 준수하는 것이 중요하다. 목차 Plugins Example Example.Build.csExampleModule.h .cppExampleDebuggerCategory.h .cpp 생성 Slate UI 언리얼 엔진에서 커스텀 플러그인을 만들기언리얼 에디터를 열고 "플러그인" 메뉴로 이동한다."새 플러그인"을 클릭하고 생성할 플러그인 유형을 선택한다.플러그인의 이름과 위치를 선택하..
[UE] FPS(일인칭 슈팅 게임)
[UE] FPS(일인칭 슈팅 게임)
2023.03.30목차 Characters CAnimInstance.h .cppCAnimInstance_Arms.h .cpp 생성CPlayer.h .cppUtilities CHelpers.hCLog.h .cppWeapons CBullet.h .cppCMagazine.h .cpp CWeapon.h .cppCWeapon_AK47.h .cppCWeapon_AR4.h .cppCWeaponComponent.h .cppWidget CUserWidget_CrossHair.h .cppCUserWidget_HUD.h .cppCGameMode.h .cppGlobal.hCAnimNotifyState_Equip.h .cpp CAnimNotifyState_Reload.h .cpp 필요한 에셋 추가하기, 소켓 추가하기 SK_M..
[UE] Mixamo, 무기 추가(AK47)
[UE] Mixamo, 무기 추가(AK47)
2023.03.29언리얼 엔진에서 TPS(Third-Person Shooter) 게임에 무기를 추가하려면 여러 단계를 거쳐야 한다. 3D 모델링 소프트웨어를 사용하여 무기 자산을 생성하거나 마켓플레이스 또는 기타 소스에서 가져올 수 있다. 자산에는 무기의 모델, 애니메이션 및 사운드가 포함되어야 한다. 목차 Characters CAnimInstance.h .cppCPlayer.h .cppUtilities CHelpers.hCLog.h .cppWeapons CBullet.h .cppCMagazine.h .cpp CWeapon.h .cppCWeapon_AK47.h .cppCWeapon_AR4.h .cppCWeaponComponent.h .cppWidget CUserWidget_CrossHair.h .cppCUserW..
[UE] 재장전(탄창 생성 및 제거)
[UE] 재장전(탄창 생성 및 제거)
2023.03.28언리얼 엔진에서 'SpawnActorDeferred'는 액터 클래스의 인스턴스를 생성할 수 있게 해주지만 실제 생성은 현재 프레임 끝까지 지연시킨다. 이것은 한 번에 많은 액터를 생성하고 싶을 때나 액터 생성이 성능 면에서 비용이 많이 드는 경우에 유용할 수 있다. 목차 Actor Lifecycle Characters CAnimInstance.h .cppCPlayer.h .cppUtilities CHelpers.hCLog.h .cppWeapons CBullet.h .cppCMagazine.h .cpp 생성CWeapon.h .cppCWeapon_AR4.h .cppCWeaponComponent.h .cppWidget CUserWidget_CrossHair.h .cppCUserWidget_HUD.h ...
[UE] 총알 & 재장전 구현. Bullet, Magazine, Reload
[UE] 총알 & 재장전 구현. Bullet, Magazine, Reload
2023.03.27목차 Enlarge CrossHair, Bullet, Reload Characters CAnimInstance.h .cppCPlayer.h .cppUtilities CHelpers.hCLog.h .cppWeapons CBullet.h .cpp 생성CWeapon.h .cppCWeapon_AR4.h .cppCWeaponComponent.h .cppWidget CUserWidget_CrossHair.h .cppCUserWidget_HUD.h .cppCGameMode.h .cppGlobal.hCAnimNotifyState_Equip.h .cpp SK_AR4_Skeleton 소켓 생성 - Muzzle_Bullet CPlayer CPlayer.cpp더보기#include "CPlayer.h"#incl..
[UE] 총알 연사, HUD & CrossHair
[UE] 총알 연사, HUD & CrossHair
2023.03.23전반적으로 언리얼 엔진에서 TPS 총알 발사를 구현하려면 블루프린트, 애니메이션 및 물리 시뮬레이션의 조합이 필요하다. 올바른 설정을 통해 플레이어가 게임에 계속 몰입할 수 있는 현실적이고 매력적인 슈팅 경험을 만들 수 있다. 목차 연사(AutoFire) 구현하기 Characters CAnimInstance.h .cppCPlayer.h .cppUtilities CHelpers.hCLog.h .cppWeapons CWeapon.h .cppCWeapon_AR4.h .cppCWeaponComponent.h .cppWidget CUserWidget_CrossHair.h .cpp 생성CUserWidget_HUD.h .cppCGameMode.h .cppGlobal.hCAnimNotifyState_Equip...
[UE] 총알 발사 구현하기
[UE] 총알 발사 구현하기
2023.03.22언리얼 엔진에서 3인칭 슈팅 게임(TPS) 총알 발사를 구현하려면 무기 만들기, 총알 생성, 총알 구성, 충돌 돌처리, 대미지 적용, 시각 효과 추가하기 등의 과정이 필요하다. 언리얼 엔진에서 TPS 총알 발사를 구현하려면 블루프린트, 애니메이션 및 물리 시뮬레이션의 조합이 필요하다. 올바른 설정을 통해 플레이어가 게임에 계속 몰입할 수 있는 현실적이고 매력적인 슈팅 경험을 만들 수 있다. 목차 총알 발사 구현하기 언리얼 엔진에서 3인칭 슈팅 게임(TPS) 총알 발사를 구현하려면 다음과 같은 여러 단계가 필요하다. 무기 만들기: 먼저 무기용 메시와 총알이 생성되는 소켓이 포함된 무기 청사진을 만들어야 한다. 청사진에 발사 애니메이션과 음향 효과도 추가해야 한다.총알 생성: 플레이어가 무기를 발사할..
[UE] Hand IK, AnimInstance, Fire
[UE] Hand IK, AnimInstance, Fire
2023.03.21Unreal Engine 4의 Hand IK(Inverse Kinematics)는 캐릭터의 가상 손이 사실적인 방식으로 환경 및 개체와 상호 작용할 수 있도록 하는 기능이다. 대상 개체의 위치와 방향을 기반으로 캐릭터 손의 위치와 방향을 계산하여 작동한다. 언리얼 엔진 4에서 Hand IK를 사용하려면 스켈레탈 메시가 있는 캐릭터와 손 애니메이션이 포함된 애니메이션 세트가 있어야 한다. Hand IK 시스템은 애니메이션 데이터를 사용하여 캐릭터 손의 위치와 방향을 실시간으로 계산한다. 목차 Weapon Unreal Engine 4의 Hand IK(Inverse Kinematics)는 캐릭터의 가상 손이 사실적인 방식으로 환경 및 개체와 상호 작용할 수 있도록 하는 기능이다. 대상 개체의 위치와 방향..
[Unreal] TSubClassOf
[Unreal] TSubClassOf
2023.03.20TSubclassOf는 언리얼엔진에서 사용되는 C++ 템플릿 클래스이다. 이 클래스는 다른 클래스를 가리키는 UClass 포인터를 저장하며, 해당 클래스의 하위 클래스만을 가리킬 수 있다. TSubclassOf는 클래스 타입을 인자로 받는 함수의 파라미터로 많이 사용된다. 목차 TSubClassOf TSubClassOf TSubclassOf는 언리얼엔진에서 사용되는 C++ 템플릿 클래스이다. 이 클래스는 다른 클래스를 가리키는 UClass 포인터를 저장하며, 해당 클래스의 하위 클래스만을 가리킬 수 있다. TSubclassOf는 클래스 타입을 인자로 받는 함수의 파라미터로 많이 사용된다. 예를 들어, AActor 클래스의 파생 클래스 중 하나를 사용하여 인스턴스화할 수 있는 SpawnActor 함수를 호..
[Unreal] 언리얼엔진 FORCEINLINE vs. C++ inline 함수
[Unreal] 언리얼엔진 FORCEINLINE vs. C++ inline 함수
2023.03.16FORCEINLINE을 사용하면 인라인 함수로 선언된 코드가 매번 복사되어 컴파일된다. 이것은 코드의 크기가 증가하더라도 실행 속도를 높일 수 있다는 장점이 있다. 하지만 FORCEINLINE은 코드의 크기를 더욱 증가시키므로, 잘못 사용하면 코드의 크기가 커지고, 따라서 실행 속도가 느려질 수도 있다. 따라서 FORCEINLINE을 사용할 때에는 신중하게 선택해야 한다. 목차 언리얼엔진 FORCEINLINE vs. C++ inline 함수 C++의 inline 함수 C++에서의 inline 함수는 함수 호출 대신에 함수 내용을 호출한 곳에 직접 삽입함으로써 실행 속도를 높이는 방법이다. 함수를 inline으로 선언하면 컴파일러는 함수 호출 대신 함수 내용을 호출한 곳에 삽입한다. 이렇게 하면 함수 호출..