⭐ Unreal Engine/UE RPG Skill
[UE] Feet IK, 마우스 Zoom, Enemy AI
[UE] Feet IK, 마우스 Zoom, Enemy AI
2023.07.21마우스의 휠을 이용하면 화면의 Zoom In과 Out을 구현했다. 'DeltaTime' (전 프레임과 현재 프레임 사이의 시간 차이)와 'InterpSpeed' (보간 속도)를 사용하여 'TargetArmLength'를 부드럽게 변경했다. 마우스 휠의 변경 값을 'InValue'로 넣고 'Speed'를 곱한 값을 'CurrentValue'에 더하고, 이 값을 'Range.X'와 'Range.Y' 사이의 값으로 제한하여 사용하였다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeaponCheckBoxes.h .cppSWeaponDetailsView.h .cppSWeaponD..
[UE] 파쿠르, Feet IK
[UE] 파쿠르, Feet IK
2023.07.20Feet IK(Inverse Kinematics)는 캐릭터의 발이 지면에 정확하게 위치하도록 하는 기술이다. 캐릭터 발의 위치를 조정할 수 있는 가상 본(virtual bone)을 생성한 후 사용한다. Animation Blueprint에 Two Bone IK을 사용하여 발의 위치를 정확하게 조정한다. 이를 위해 Foot IK 노드에는 목표 위치(Target Location)와 목표 회전(Target Rotation)을 입력하여 이 목표 위치와 회전은 발이 지면에 어떻게 위치해야 하는지를 정의한다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeaponCheckBoxes.h ..
[UE] 파쿠르: 벽 오르기
[UE] 파쿠르: 벽 오르기
2023.07.19파쿠르는 다음과 같은 과정을 통해 구현하였다. 먼저, 캐릭터 허리 높이 중앙에 있는 Arrow Component로 앞에 장애물 유무를 판단한다. 그 다음, Arrow Component 내 여러 개의 Line Trace로 장애물을 판단한다. Line Trace의 결과값을 바탕으로 어떤 파쿠르가 가능한지 판단한다. 마지막으로 Data Table에 기록된 몽타주를 찾아서 가져워 상황에 맞는 파쿠르 몽타주를 재생한다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeaponCheckBoxes.h .cppSWeaponDetailsView.h .cppSWeaponDoActionData.h..
[UE] 파쿠르 구현하기
[UE] 파쿠르 구현하기
2023.07.18파쿠르 시스템은 캐릭터가 벽이나 장애물과 부딪힐 때의 처리를 통해 구현할 수 있다. Unreal Engine에서는 충돌 처리를 위해 Collision Component와 Physics Engine을 사용할 수 있다. 이를 통해 캐릭터가 벽이나 장애물과 부딪힐 때 알맞은 반응을 하도록 설정할 수 있다. 오늘은 Foot IK를 C++ 코드로 구현할 것이다. 발에 가상 본을 만들고 이 가상 본을 사용하여 Trace로 바닥과 충돌을 검사한다. 양발의 높낮이 차이를 이 Trace 충돌값으로 알아내고 Foot IK 구현에 활용한다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeapo..
[UE] 화살
[UE] 화살
2023.07.13화살을 생성하여 발사하여 데미지를 전달한다. 활을 장착(=Equip) 시에 화살을 생성하고 장착 해제(=Unequp) 시에 화살을 소멸시켜준다. 조준 후 화살을 발사하면 Projectile 값이 1000.0으로 적용되어 날라가고 충돌이 켜진다. 발사 후에는 Owner(여기서는 플레이어)의 손에 화살을 생성하여 붙여준다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeaponCheckBoxes.h .cppSWeaponDetailsView.h .cppSWeaponDoActionData.h .cppSWeaponEquipmentData.h .cppSWeaponHitData.h .c..
[UE] 활 시위에 손 맞추기
[UE] 활 시위에 손 맞추기
2023.07.10지난 시간에는 활 시위를 구부러뜨리는것을 구현하였다. 오늘은 활 시위를 플레이어 손에 붙였다가 화살 발사 시 손에 떨어뜨리는 것을 구현할 것이다. CDo_Action_Bow를 만들어 발사 시점과 끝난 시점을 구분지어 줄 것이다. CAnimNotifyState_BowString 만들어 손에서 떨어진 활 시위를 다시 붙여주는 시점에 몽타주에 삽입할 것이다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeaponCheckBoxes.h .cppSWeaponDetailsView.h .cppSWeaponDoActionData.h .cppSWeaponEquipmentData.h .cp..
[UE] 활 시위 당기기
[UE] 활 시위 당기기
2023.07.07지난 시간에는 BlendSpace1D를 사용하여 활이 구부러지는것을 구현하였다. 오늘은 활의 SkeletalMesh에 AnimInstance를 만들어 활의 시위가 당겨지는 것을 구현하겠다. CAnimInstance_Bow, CAttachment_Bow, 그리고 CSubAction_Bow는 서로 상속관계가 아니므로 활 시위가 당겨지는 float 변수(여기서는 float Bend)를 만들어 이어줘야 한다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeaponCheckBoxes.h .cppSWeaponDetailsView.h .cppSWeaponDoActionData.h .c..
[UE] 활 조준
[UE] 활 조준
2023.07.06지난 시간에 이어 활 조준을 구현해보자. 활의 BlendSpace 1D를 만든 것처럼 플레이어 애니메이션도 BlendSpace 1D로 만들어 활 조준을 자연스럽게 구현할 것이다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeaponCheckBoxes.h .cppSWeaponDetailsView.h .cppSWeaponDoActionData.h .cppSWeaponEquipmentData.h .cppSWeaponHitData.h .cppSWeaponLeftArea.h .cppWeapon.Build.csWeaponAssetEditor.h .cppWeaponAssetFact..
[UE] 활 구현하기
[UE] 활 구현하기
2023.07.05이전에 만든 Attachment을 구조를 활용하여 활 무기를 추가해보자. CAttachment_Bow를 생성하여 활용하여 활은 만든다. BlendSpace와 Curve를 활용하여 활이 구부러지는 것을 구현한다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeaponCheckBoxes.h .cppSWeaponDetailsView.h .cppSWeaponDoActionData.h .cppSWeaponEquipmentData.h .cppSWeaponHitData.h .cppSWeaponLeftArea.h .cppWeapon.Build.csWeaponAssetEditor.h .cp..
[UE] Around 스킬 구현하기
[UE] Around 스킬 구현하기
2023.07.04목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeaponCheckBoxes.h .cppSWeaponDetailsView.h .cppSWeaponDoActionData.h .cppSWeaponEquipmentData.h .cppSWeaponHitData.h .cppSWeaponLeftArea.h .cppWeapon.Build.csWeaponAssetEditor.h .cppWeaponAssetFactory.h .cppWeaponCommand.h .cpp WeaponContextMenu.h .cppWeaponModule.h .cppWeaponStyle.h .cpp Sourc..
[UE] Around 공격 구현하기
[UE] Around 공격 구현하기
2023.07.03플레이어 주위를 도는 구형 이펙터로 적에게 피해를 입히는 공격패턴을 만들것이다. 충돌체는 0.2초 간격으로 데미지를 전달할 것이다. 주위에 적이 많을 때 지속적인 데미지를 전달하기 유용한 공격패턴이 될 것이다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeaponCheckBoxes.h .cppSWeaponDetailsView.h .cppSWeaponDoActionData.h .cppSWeaponEquipmentData.h .cppSWeaponHitData.h .cppSWeaponLeftArea.h .cppWeapon.Build.csWeaponAssetEditor.h .cpp..
[UE] 워프 Top View 만들기
[UE] 워프 Top View 만들기
2023.06.30지난 시간에 구현한 워프는 워프 시 일반적인 플레이어의 뷰에서 커서가 가르키는 방향으로 이동하였다. 플레이어의 시점에서 워프를 실행하기 때문에 뒤로 이동하려면 뒤를 돌아야 한다. 이동 가능한 범위가 한 눈에 들어오도록 Top View를 제공해 워프 이동이 좀 더 다양하도록 선택권을 넓혀줄것이다. 마우스 우클릭으로 Top View가 나오도록 SubAction_Warp를 만들것이다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeaponCheckBoxes.h .cppSWeaponDetailsView.h .cppSWeaponDoActionData.h .cppSWeaponEquip..