본문 바로가기

전체 글

언리얼5 코딩표준 코딩 표준이란 게임개발 기업마다 프로젝트에 맞는 코딩 표준이 존재합니다 코딩표준이 사용되는 이유는 개발자들이 협업시 서로 다른 코딩 스타일로 발생되는 이슈또는 저하되는 작업 가독성을 방지하기위해 효율적인 코드의 사용을 권장하게끔 기업에서 지정하는것이 코딩표준을 지키는 이유입니다. 코딩표준의 옳바른 사용법 코딩 표준의 옳바른 사용법은 자신이 작성된 코드와 다른사람이 작성한 코드를 비교하였을 시 단 한사람이 작업한것처럼 보인다면 옳바르게 코딩 표준을 지키고 있는것입니다. 다른 예시로 자신이 사용하는 코드 스타일이 더욱 퍼포먼스가 좋을수있다 해서 기업에서 사용하는 코딩 표준을 지키지않는다면 이는 좋은 코딩습관이 될 수 없습니다. 언리얼 코딩표준 코딩표준이 기업에서 사용되는것과 같이 언리얼 코딩 표준이 존재합니.. 더보기
그래프 알고리즘이란 그래프 알고리즘이란? 추상적인 대상들이 가지고있는 연결관계를 점과 선으로 표현한 방법이 그래프 알고리즘이 사용되는 이유입니다. 그래프의 용어 그래프는 정점(Vertex) 간선(Edag) 이루어져있습니다. 정점(Vertex)은 말 그대로 사물 , 데이터 등의 담고싶은 구성요소들을 의미합니다. 간선(Edag)은 정점(Vertex)들간의 연결관계를 의미합니다. 그래프의 예시 그래프의 예시 이미지와 같이 여러개의 정점들과 정점들을 있는 간선이 존재하면 그래프가 됩니다. 그래프는 우리가 실제로 흔히 볼수있는 구조관계들을 그래프로 비유해볼수있습니다. 지하철 노선간의 관계 SNS의 팔로우 관계 비유한 관계들은 접전과 간선만으로 표현할 수 없는 서로 다른 간선들의 길이가 존재합니다. 이렇게 간선의 길이정보가 필요한경우.. 더보기
3 스텟 구현 + 공격력 AttackSystem 공격 이벤트를 서비스하는 엑터 타입 클래스 콤보 공격 구현 초기 기획과 동일하게 몽타주 노티파이 커스텀 이벤트를 활용하여 구현완료 몬스터 충돌 구현 raycast와 Apply Damage 함수 활용 구현완료 적 Hit 시 다수의 raycast Hit 이벤트가 발생하여 0.2초간의 간격으로 Hit를 다시 호출 가능하게끔 제한했다. 스텟 스텟은 모든 유닛이 상속받을 부모 클래스 baseCharacter에서 접근가능 공격력 변수 정수형 attack Hit 이벤트 호출시 baseCahracter에서 참조하여 AttackSystem 함수에 호출된다. 체력 변수 정수형 maxHp 캐릭터의 최대 체력, 추후 체력바 UI의 정규화의 기준값을 위해 필요하여 추가함. 정수형 curHp 캐릭터의 현제.. 더보기
1_2 이동(Locomotion) + 레벨디자인 레벨 디자인 리소스 전부 퀵셀 브릿지 작업 애니메이션 작업중 이슈 언리얼 도큐먼트를 보면 공격 애니메이션 루트모션 활성화시 몽타주 재생에서 플레이어가 자연스럽게 전진 하는모습을 확인할수있지만 내 경우에는 공격 애니메이션에 모션이 있음에도 루트 모션 활성화시 다리 애니메이션이 어색하고 전진하지 않으며 재자리에서 애니메이션이 진행중이었다 모션 워핑을 활용하여 문제를 해결하려 시도했지만 직진은 하지만 매우 어색했다. 문제 파악 내 전사 스켈레톤의 구조는 pelvis가 최상위 루트로 되어있었다. 믹사모 모델들도 최상위 소켓이 root가 아닌 다른 이름으로 되어있으면 정상적인 루프모션 활성화가 동장되지않는것으로 보인다. 루트모션 활성화시 어색했다는것을 확인했다. 해결 방법 내 전사 스켈레톤의 최상위 pelvis .. 더보기
1_1 이동(Locomotion) + 애니메이션 구현 이동 구현 입력 이벤트 언리얼 5.2에 지원하는 향상된 입력 기능을 활용하여 입력 이벤트를 받아 구현진행 구현간 이슈 및 수정사항 애니메이션 리타겟팅 내가 준비한 전사 애니메이션은 발도 애니메이션이 없어 믹사모에서 지원하는 Draw 에니메이션을 사용하였으나 전사 스켈레톤의 구조와 믹사모 스켈레톤의 구조가 달라 bone crash 이슈 발생 문제 해결 전사 IK릭, 믹사모 IK릭을 , 왼팔,오른팔,머리,왼다리,오른다리,root 6개의 구조 기준으로 리타게터를 생성 믹사모는 모델은 TPos기준 전사는 APos 기준이라 별도의 좌표 수정 Montage Animation Slot 이동중 발도 몽타주 재생 시 다리가 움직이지않음 문제 해결 발도 애니메이션 상체 하체 분리, 블랜딩을 활용하여 Player의 Velo.. 더보기
언리얼5.2 몬스터헌터 기획 구현 리스트 이동(Locomotion) + 애니메이션 구현 걷기 MoveDirection: Forward,Back,Left,Right 뛰기 MoveDirection: Forward,Back,Left,Right 벽 타기 MoveDirection: Up,Down,Left,Right 빠른 벽타기 MoveDirection: Up,Down,Left,Right 죽음 체력 0이하의 경우 발생 숨쉬기 특정 이벤트 상태가 없을 경우 발생 발도 숨쉬기 모드에서 공격 버튼 클릭시 발생 공격 검 좌 마우스 클릭 시 공격 공격은 최대 3단계 콤보 공격 가능 이동 불가능 우 마우스 클릭 시 몬스터 락온 스텟(몬스터 공용 사용) 체력 체력이 0이하 소진될 시 게임 오버 기본 공격력 -7 ~ +7의 범위 내 적에게 데미지를 입한다... 더보기
링크드 리스트를 왜 알아야하는가 인사글 안녕하세요 Aron입니다. 이전 C++에서 구현한 가변배열에서 이어서 이번시간에서도 링크드 리스트를 왜 알아야하고 어떻게 구현하는지를 글로 작성해보려합니다 인사글인 만큼 솔직하게 글을 써보자면 C++에서 저는 리스트를 쓰기 싫습니다. 데이터 중간 삽입이 가능하다는점 이전글에 설명 드렸던것처럼 요소값이 많으면 벡터는 비효율적인면을 이해하고있으면서도 C++ List 이터레이터는 데이터 컨테이닝 기능이 C#의 List에 비하면 너무 불편하게만 느껴집니다. 하지만, 이터레이터의 기능을 한번쯤은 이해하는편이 좋습니다. 다른 언어 모두 이터레이터를 사용하고 부르는 방식이나 이름이 달라졌을뿐 반복자는 어디에서는 존재하기에 이번 글에서 간단하게 리스트와 반복기도 같이 구현해볼생각입니다. 개요 링크드 리스트(li.. 더보기
동적배열 왜 반드시 알아야하는가 이전 알고리즘을 반드시 알아야하는 이유에 대해 짧에 글을 남겨봤습니다 오늘은 실제로 동적배열을 구현해보는 글을 써보려합니다. 우리가 동적배열을 알고리즘에서 필수로 알아야하는이유 가변 배열은 자료구조 중에서도 가장 기본적이면서도 강력한 구조 중 하나입니다. 알고리즘은 데이터를 효과적으로 저장하고 관리하는 데에 핵심이기 때문에, 가변 배열은 이를 위한 기본 요소로 자주 사용됩니다. 이번글을 모두 읽으신다면 여러분은 배열 가변배열 리스트중 무엇을 기능에 맞게 사용해야하는지 선택하실수있습니다. 동적배열이란? 동적 배열은 크기를 동적으로 조절할 수 있는 배열로, 프로그램 실행 중에 메모리 공간을 유연하게 할당 및 해제할 수 있는 자료구조입니다. 주로 동적 배열은 배열의 기본적인 특성을 가지면서도, 크기 조절이 필.. 더보기