남의 블루프린트 읽는공부
게임 템플릿
우선 나는 템플릿을 받아서 버그를 수정해 사용하려고한다. 게임 템플릿이란 게임 개발 시 기본적인 구조와 기능을 제공하는 미리 만들어진 프레임 워크나 샘플 프로젝트를 의미한다.
그래서 내가 분석할 템플릿은
https://www.fab.com/listings/1516c689-17c3-4299-9589-f4bb4b3faca8
이거다.
캐릭터
캐릭터 펼쳐보기
보기만 해도 어지럽다... 어디서부터 시작해야될 지 모르겠다.
그렇다면 어떻게 봐야할까?
순서대로
처음에는 좀 적은 노드를 가진 구역부터 중간부터 봤었는데 뭔가 빙글빙글 돌다가 뭐가 뭔지도 모르고 시작했던곳으로 돌아오거나 했다.
이러다가는 답도없을거같아 더는 뒤로 갈수없는 BeginPlay부터 시작하도록 해야겠다.
BeginPlay
Event BeginPlay에서 SetUp으로 간다. 옆에있는 Self는 어디서왔는지 잘은 모르겠다. 일단은 내 캐릭터라고 생각하고 넘어가도록 하자. 그럼 SetUp이 뭔지 한번 가보도록하자
SetUp
캐릭터가 생성되고 Delay를 조금 준 후 내 위젯 컴포넌트에 HUD를 캐스팅을 하고 뭔가를 막 초기화하고 한다. 이것들을 하나씩 눌러보다보면 알수 없는것들이 많지만 옆으로 이동해 다른곳으로 가는것을 확인할 수 있다.그 중 2번째 StartMain Timeline이라는 것을 타고 들어가보도록 하자
여기로 들어오는데 또 타고 가다보면
Tick 함수를 만나고 여기 도중에
다시 여기로 돌아온다. 그래서 여기를 보면 카메라와 캐릭터의 상태를 초기화해주며 체크해주는 부분이다. 이러면 끝
이것들을 정리하다보면
정리
규칙
- BP_Fighter에 있는 이벤트로 이동 시
- 이벤트 명(그룹 코멘트) ex) StartUp(BeginPlay)
이벤트 그래프
- Start
- 시작 및 초기화
- EventBeginPlay
- ***StartUp(BeginPlay)***으로 이동
- Attch Abillites
- BPC_Abillity의 이벤트 그래프 “Set Abilities*”*로 이동
- UpDateCamera
- BP_camera의 “UpDate Camera”로 이동(플레이어의 캐릭터에 맞는 카메라 포커싱)
- EventBeginPlay
- 시작 및 초기화
- StartUp (BeginPlay)
- UI와 플레이어 번호 초기화
- Get User Widget Object → Cast To HUD_PlayerName
- 캐릭터에 붙어있는 WidgetComponent에서 실제 HUD위젯을 가져온다.
- Get User Widget Object → Cast To HUD_PlayerName
- 외형 설정 및 타임라인 시작
- Func Set Up
- Func Set Costume
- ***Start Main Timeline(Start Main Timeline)***로 이동
- 상태설정 및 분기처리
- Set Last HIt(마지막 타격 초기화)
- Func Attach Shield
- Set State Server(게임 상태 초기화)
- Func Set Movement State
- 유저인지 CPU인지 판단 후 CPU면 AI(이벤트)실행
- UI와 플레이어 번호 초기화
- AI
- AI 상태 업데이트
- Update
- BPC_AI의 “Update”로 이동(대충 분기처리 비헤이비어 트리의 BP버전)
- Update
- AI 상태 업데이트
- Main Timeline
- Tick함수 제어
- Tick Functions
- ***Tick(Tick)***으로 이동
- Tick Functions
- 메인 이펙트
- BPC_FX_component의 “FX Main Loop”로 이동
- Tick함수 제어
- Tick
- 상태체크
- Pacing Check
- Func Sprint Check
- Smash Detection
- Func Locations
- Func Flashing
- Func Walk/Run
- Main Tick
- BPC_Abillity의 “MainTick”
- Func S
- 상태체크
결론 - 나의 공부법
정말 나의 수준이 낮기때문에 도중부터 보면 도저히 이해할수없고 그냥 뭘 하고있는지도 모르겠다. 그러니 알 수 있는것들로 중요 키워드들만 짚으며 시작하는 처음부분인 BeginPlay부터 흐름을 한번 따라가보며 글로 정리를 해보고 기억안날때마다 Ctrl + F로 찾아서 보며 공부하자. 천리깃도 한걸음부터!