Open simeddk opened 1 year ago
주간목표 프로젝트 생성, StongAction 구현, 무기에 영향을 주는 공격력, 공격속도 등을 가진 AttachmentStatusComponent 개발, 장착하는 Rune 시스템 구현
결과 프로젝트 생성: https://github.com/skacjstk/CinderGuy Rune 시스템 외 전부 구현 StrongAction: https://blog.naver.com/skacjstk0818/223021040344 AttachmentStatusComponent: https://blog.naver.com/skacjstk0818/223021055514
고찰 CreateDefaultSubobject 때문에 삽질을 했다. Construction 시점에서만 쓸수있는데 CHelpers로 구현해놓으니 까먹었다. 어쨋든 NewObject<>() 로 해결. 확실히 미리 설계하고 개발하니까 실수가 줄긴 했는데 아예 없는건 아니구나
준비를 위한 준비가 많다. 당장 Rune 시스템을 구현하기 위해서 AttachmentStatusComponent를 개발하고 이 Rune을 담는 Inventory 시스템을 개발하고 Inventory 시스템을 개발하면 그걸 담고 옮기는 UI를 개발 하면 이제 Rune 시스템이 연계된다. 음.....으음.....준비를 위한 준비를 위한 준비
주간목표
결과
고찰
BP에서는 데미지를 받는 함수가 Any, Point, Radial 각각 3개로 나뉘어져 바로 사용할 수 있지만, C++은 Actor의 TakeDamage 함수를 override해서 사용자가 새로 정의해야한다.
여러가지 방법이 있겠지만 일단 아는 선에서 만들어본 방법으로는 TakeDamage의 파라미터중 DamageEvent의 ID값으로 분기를 태우는 형식으로 시도를 했다. ID값은 Point, Radial이 있고 값을 아무것도 주지않으면 Any로 적용되는거 같이 보인다(확실하진않음)
ID값은 데미지를 주는부분, 즉 Apply함수에서 결정한대로 받는부분(TakeDamage)에서는 자동으로 분기가 태워진다 RPG는 범위형 피해를 줘야하기때문에 ApplyRadial로 만들었다. ApplyRadial은 신기하게도 또 2개의 함수로 나뉘는데 하나는 범위내 동등한 피해, 다른 하나는 범위 내에서 외곽으로 갈수록 감소되는 피해로 나뉜다 (물론 함수내부를 들여다보면 결국 ApplyRadialDamage에서 ApplyRadialDamageWithFalloff를 호출해서 사용하므로 사실 똑같은 1개의 함수를 사용한다)
현재 미완성된 부분은 Enemy가 연속적으로 피해를 입을 경우 특정 순간부터 피해를 입지않는데 Apply 함수는 호출이 계속 되지만 TakeDamage쪽이 호출이 전혀 되지않는다. 이떄문에 TakeDamage내에 임시로 만들었던 AddImpulse 함수도 전혀 동작을 하질않는다
주간목표
구현결과 : 프로토타입 동영상
결과에 대한 평가
주간 목표 -프로토타입 구현을 위한 AI와 소환
3.고찰 빠르게 만들다 보니 디테일하게 신경 못쓴 부분이 보여 다듬어야 할 것들이 보임 BP에 비해 그래도 코드 재활용이 많아진 거 같아 나쁘지 않음
cpp프로젝트 생성 https://github.com/silberstar/MyCPP_Project
기술 문서는 완성했는데 메일로 보내야하는건지 몰라서 일단 가지고 있습니다
떨어지는 체력.. 올라오지 않는 댓글들.. 다음 생을 기약하는 취업..
잊지 마십시오.. 기회는 준비된 자에게만 찾아 옵니다. 아래 내용을 댓글에 달기 거시기하다면 개인 포스팅이나 영상의 링크를 걸어도 됨
주간 목표 -> ex) Wizard 타입의 적 작업 완성 -> ex) 캐릭터 피격 및 사망 이벤트 처리 완성 -> ex) 호스트 및 조인 메뉴 레이아웃 완성
구현 결과 -> ex) 날뛰는 Wizard 타입의 적 스샷 -> ex) 월드아웃라이너에서 확인되는 메모리 해제 이벤트들 -> ex) 끝내주는 위젯 디자인
결과에 대한 평가 -> ex) 왜 독립형 게임에서 세션 연결이 안될까? 방화벽 문제일까 vpn 문제일까 -> ex) 피격 시 무기 변경이 꼬이는 경우가 있나?
제출자
권정훈
김건웅
김주연
남석원
서상원
유재우
윤대영
이규원
이해용
장현덕
최윤혁