전체 글330 19. 스킬 쿨타임 표시 & 대쉬 Smoke 구현 스킬 쿨타임 표시 - 스킬 쿨타임을 표시를 내가 의도했던 대로 구현했다. - 내가 의도한 것은 스킬을 사용하면 스킬 박스가 어두워지며, 쿨타임이 지나는 동안 스킬 박스의 가운데를 기준으로 시계방향으로 점점 밝은 영역을 넓혀나가며, 쿨타임이 끝나면 하얘지는 (롤에서 사용하는 것과 비슷한데 가운데 숫자가 없는) 방식이다. - 이를 구현하기 위해 셰이더 코드를 작성했는데, 1. 상수 버퍼에 현재 쿨타임이 몇 %인지를 받아온 후, 그 %를 라디안으로 변환해준다. 2. uv좌표계의 가운데 점(0.5, 0.5)를 원점으로 잡기 위해 넘어온 uv좌표에 (0.5, 0.5)를 빼준다. 3. 그리고 모든 uv좌표를 중심에서 향하는 벡터로 취급해서 내가 기준으로 세운 벡터와 각도를 계산한 후, 그 각도가 1번에서 구한 각도.. 2023. 4. 3. 11. 플레이어 애니메이션 추가 애니메이션 추가 - 애니메이션은 맨 처음 C++의 AnimInstance를 생성하는 것부터 시작했다. - 애니메이션 클래스는 이전에 만든 AShooterCharacter를 소유하고, 캐릭터의 속도, 공중에 있는지, 이동중인지를 검사해서, 해당 값을 상태값으로 가지고 있다 그리고 이 변수들을 Blueprint에서 사용할 수 있도록 Property를 설정해 준 다음에 그 값들을 애니메이션의 전이 Rule에 활용했다. - 만들어진 C++ 애니메이션 클래스를 통해 Blueprint 애니메이션을 만들고, 해당 애니메이션을 통해 FSM을 제작하는 실습을 했다. - 간단히 플레이어 Idle -> JogStart -> Run -> JogStop 등의 기본 상태들에 대한 전이를 테스트했고, 내가 만든 상태 머신과 언리얼.. 2023. 4. 1. 18. Skill 클래스 구조화 / Skill State 구현 Skill 클래스 구조 작성 - Skill은 스컬이 사용하는 스킬이다. - 스킬은 기본 캐릭터를 제외하고 모두 2개 이상의 스킬 종류를 가지며, 그 중 2개를 랜덤으로 보유한다. - 따라서 스킬은 스컬 클래스에 포함되는 요소라고 볼 수 있다. - 현재 내가 생각하는 구조는 플레이어 클래스에서 2개의 스컬을 가지며, 플레이어가 업데이트를 해준다. - 스컬 클래스는 렌더링되는 부분(스프라이트, 애니메이션)과 각각 스컬이 가지는 고유 스킬을 보유하게 된다. - 나머지 Collider, RigidBody, Physical에 관한 것들은 플레이어 클래스가 통틀어서 관리한다. SkillState 구현 - SkillState는 스킬 키가 눌렸을 때 조건 검사를 해서 그 조건들이 모두 참이라면 플래그에 의해 다른 상태.. 2023. 4. 1. 10. 마우스 회전 / 플레이어 Mesh 추가 마우스 회전 - 마우스를 움직이면 움직이는 방향대로 회전하게끔 하는 기능 - 일반적으로 3D 게임에서 당연하게 받아들이는 기능이지만 직접 만들어보니 좀 느낌이 다르다 - 나중에 3D 포폴을 만들게 되면 이런 기능을 직접 구현해야 할텐데 이 내용들을 참고하면 도움이 될 것 같다. - 키보드 입력과 동일하게 BindAxis에서 내용을 처리했다. PlayerInputComponent->BindAxis("Turn", this, &APawn::AddControllerYawInput); PlayerInputComponent->BindAxis("LookUp", this, &APawn::AddControllerPitchInput); - 또 재밌는건 이 기능들은 Pawn에서 제공하는 기능들이고 거기서 파생된 Charac.. 2023. 3. 31. 이전 1 ··· 34 35 36 37 38 39 40 ··· 83 다음