분류 전체보기

전투 공격 판정전에 올린 포스팅에서는 공격을 판정하기 위해 아주 간단한 방법만 사용했다.간략하게 공격을 판정하는 방법은 3가지로 나눌 수 있다.공격 타이밍에 공격 범위에 해당되는 콜리전을 만들어서 체크하기공격하고자 하는 무기에 콜리전을 설치해 닿는 경우 체크하기공격하는 애니메이션에 NotifyState를 이용해 Tick 마다 무기 위치 체크하기저번엔 1번에 대해 포스팅 해봤으니이번에는 3번을 해보자.기본 아이디어공격을 한다는건 무기를 휘두른다는 것과 같다.그렇다면 무기의 칼 끝과 칼 손잡이 부분에 Socket을 지정하고그 사이를 라인트레이싱해서 피격된 물체가 있는지 확인하자.Socket 설정이렇게 시작과 끝 부분을 지정해서 나중에 이 사이에 어떤 물체가 닿았는지 판별할 것이다. AnimNotifyStat..
시점 고정시점 고정이라하면 Lock On 기능을 말하는 것이다.몬스터와 전투중이 아니라면 마우스로 화면을 회전하고 쳐다보는 것이 가능하지만몬스터와 전투중이라면 카메라는 항상 몬스터를 쳐다보게 할 것이다. 이렇게 설계한 이유는 단순하다.유저의 편의성이다. 유저가 편하게 몬스터와 전투 경험을 하기 위해서 Lock On 시스템을 도입하고자 한다.다만, 오늘은 그 Lock On을 구현해서 넣기보다는Lock On을 했을 경우 플레이어의 움직임을 먼저 구현해보자. 예를 들어, Lock On을 했을 경우 bControllerRotationYaw 값을 true로 해서 항상 카메라가 바라보는 방향을 플레이어가 바라보게 한다는지 말이다. 실제 몬스터와 전투가 아직 진행되지 않았기 때문에 임시로 Tab 키를 누르면 고정이 ..
이전까지 연습했던 내용을 바탕으로 엘든링과 비슷한 느낌의 다크소울류 게임을 제작하려고 한다.기획 내용은 일반 몬스터 하나와 보스 몬스터 하나 해서 총 두가지의 몬스터를 제작할 것이다. RAS는 Roll And Slash의 약자이다. 기본적인 내용(캐릭터 세팅 등)은 넘어가고 2주간 고민했던 내용들을 적어보려고 한다.Combo Attack콤보 공격은 액션게임이라면 필수불가결하다. 스킬을 사용하는 것이 아닌 기본 공격의 연계로서 다크 소울류에서도 많이 등장한다. 지금 구현할 콤보는 다음과 같다.A - B - C - D - E (좌클릭 - 좌클릭 - 좌클릭 - 좌클릭 - 좌클릭)A - B - C - H - I (좌클릭 - 좌클릭 - 좌클릭  - 좌클릭 + Left Shift - 좌클릭) F - G - H - ..
BehaivorTree와 Blackboard를 이용해서 몬스터를 만들어보자.ProjectRAS에 들어갈 몬스터를 위해 연습 제작해보자. 1. 근접 정찰병, 스폰된 위치에서 일정 범위를 랜덤하게 이동하다가 피격 당할 시 타겟을 쫒으며 공격2. 마법병, 스폰된 위치에서 일정 범위를 랜덤하게 이동하다가 근처에 타겟이 있을 경우 선 공격3. 다양한 패턴의 보스그 중 1번을 제작해보자. 몬스터 헥터헥터라는 몬스터는 다음과 같이 생겼다.이 몬스터는 총 4가지의 공격 방식을 구사할 생각이다.1. 팔을 휘둘러 가까운 거리를 내려친다.2. 팔을 휘둘러 가까운 거리를 올려친다.3. 팔을 휘둘러 2번의 연속 공격을 한다.4. 타겟이 멀리 있을 경우 점프해 타겟 위치로 날라오며 내려찍기를 한다. 이는 애니메이션 몽타주에서 각..
이번에는 모든 생명체에 스탯(공격력 방어력 스피드 등등)을 부여해보자.그런데 그냥 단순하게 생각하면 이미 짜여진 CharacterBase(움직이는 물체의 최상위 부모)에 우리가 정의하고자 하는 스탯을 가지고 있으면 되지 않을까? 물론 틀린말은 아니다. 게임의 규모가 크지 않고 한 두마리만 관리할 것이라면 당연히 그렇게 해도 크게 상관은 없다.하지만 게임의 규모가 커지고 몬스터가 많이짐에 따라 몬스터별로 스탯을 관리하기 불편해진다.이러한 특성을 고려해 몬스터의 스탯을 관리해보자.구조 설계일단 스탯이라고 하는 구조체를 정의하자.FCreatureStat이라는 구조체를 정의하고 이 구조체에서 우리가 사용하고자 하는 스탯의 정보를 가지고 있자.가령 공격력, 방어력, 스피드 등등을 말이다. 그리고 이를 바로 캐릭터..
지난번엔 하늘에서 떨어지는 애로우 레인 과4발을 연속적으로 발사하는 스트레이프를 만들어 봤다.실제 데미지까지 입히는 것은 추후 몬스터까지 만든 후 제작하겠다. 이번에는 궁극기인 스나이핑과 골든 호크라는 소환수 스킬을 제작해보겠다.Skill 3 - Sniping스나이핑은 말 그대로 저격하는 스킬로 만들것이다. 물론 실제로 저격하는 것은 아니지만 아주 쎈 한 발의 화살을 날린다. 라는 개념으로 만들 것이다.차지 시간이 길지만 그만큼 큰 데미지와 주변에 스플레시 데미지를 입힐 것이다.Sniping ActorPMSniping 이라는 Actor class를 만들고 이를 BP로 상속받아서 사용한다.결국 이 Sniping도 기본공격이나 스트레이프와 같이 화살을 발사하는 것은 동일하기에 override를 해서 구현한다..
총 4개의 스킬 중 2개의 이펙트를 구현해보자.실제 데미지를 입히기 직전까지만 디자인 해보고 그 뒤로는 몬스터를 만든 뒤 제작하겠다.모든 스킬은 메이플의 궁수 스킬을 참고하였다. 일반 공격을 포함한 모든 스킬은 APMProjectile 클래스를 상속받는다.APMProjectile은 스킬의 데미지를 설정하고 각 클래스(스킬)마다 초기화 하는 가상 함수를 가지고 있어, 우리가 사용하기 편하게 설계한다.PMProjectile#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "PMProjectile.generated.h"UCLASS()class PROJECTM_API APMProjectile : public AActor{ G..
언리얼 자체를 많이 다루지 않아 익숙해지고 다루는데 꽤나 오랜 시간이 걸렸다.(지금도 잘 못다룸)이번에는 공격 애니메이션을 몽타주로 설정하고 이를 효과적으로 관리하는 것과화살 투사체를 발사하는 것을 만들어보자.애니메이션 몽타주애니메이션 몽타주는 여러개의 애니메이션을 효과적으로 한번에 관리 할 수 있다.이를 이용해서 여러개의 공격 모션을 설정하고 입력한 값에 따라 모션을 다르게 재생해보자.공격 모션 설정공격은 총 4가지로 구성되어 있다.마우스 왼쪽 클릭을 했을 경우 NormalAttackQ 버튼을 누를 경우 SkillQE 버튼을 누를 경우 SkillER 버튼을 누를 경우 SkillR그에 맞게 이름을 지어주고 각 모션에 할 것을 구분해서 애니메이션 몽타주를 설정해준다.또한 이는 연속적인 모션이 아니라 하나의..
이번엔 캐릭터의 점프와 애니메이션을 제작해보겠다.점프 같은 경우 ACharacter 클래스에 Jump와 StopJumping이라는 함수로 전부 구현되어 있기 때문에 우리가 코드상에서 키 바인딩만 해주면 바로 사용이 가능하다. 점프 애니메이션이전 포스팅에서 만든 Idle/Jog의 GroundLocomotion을 기본 베이스로 이 상태를 유지하다가 공중에 뜨게 된다면 Jump 모션을 진행하고 바닥에 닿을 경우 Landing을 진행해보자.이렇게 LocoPose로 Save 할 것이다.Locomotion의 State Machine은 다음과 같이 구상한다.Idle/Jog는 GroundLocomotion을 Cahce한 값을 바로 건네주기만 하면 된다.상태를 전이하는 것도 간단하다.공중에 있는지 판단하기만 하면 된다...
강의를 통해 배운 내용을 바탕으로 나만의 게임을 만들어보자.게임의 기획은 마치 엘든링과 같은 소울류로 제작할 계획이다. 기본 공격과 스킬들로 적들을 처지하고 최종 보스를 처치하면 엔딩이 나오는 것으로 마무리 할 계획이다.밸런싱의 경우 그때마다 테스트 해보고 정하도록 하자.(기획자가 없기에...)에셋캐릭터 및 배경 같은 경우는 사실상 에셋을 따로 구해와야만 한다. 이 작업부터 진행하기엔 효율이 많이 떨어지고 모델링 부터 다시 배워야하기 때문이다. 에픽게임즈에서 제공하는 기본 에셋 중 맘에 드는것이 있어 이것을 활용하겠다.https://www.fab.com/ko/listings/7d76ddf0-d9ce-4d00-939e-d72793534d01https://www.fab.com/ko/listings/0fb3c..
Mintriever
'분류 전체보기' 카테고리의 글 목록 (2 Page)