1) Replay_Record
https://www.youtube.com/watch?v=7MDmRpVkr1o&list=PLi9ggwioqRlZx7uO9HE3C1G3VLlJ9uKEF&index=6
https://github.com/RehaStudio/Replay-System/blob/master/REplay%20sistem/Assets/ReplayRecord.cs
캐릭터의 움직임과 애니메이션 구성
프레임을 사용하면 모션과 애니메이션을 연속적으로 재생 가능
프레임들을 메모리에 저장하고 다시 재생
Frameler 캐릭터의 위치 회전, 크기 조정 및 애니메이션을 저장
비효율적인 방법? 더 좋은 방법은 키를 입력을 감지하고 사전 등에 저장
그러면 올바른 프레임에 있을 때 움직임을 재생 할 수 있음 -> 많은 공간을 절약하고 더 정확
: 동의. 하지만 애니메이터 동기화는 매 프레임마다 데이터를 수집하는 것이 필수.
최적화를 위해 x 프레임마다 변환을 수집하고 각 프레임마다 애니메이터 데이터를 수집하여 실제로 정확하도록 함.
이 방법을 사용하여 재생 중에 항목을 인스턴스화하느데 문제가 있음. 입력을 수집하는 것은 좋지만 인스턴스 메서드에 대한 더 자세한 정보를 실제로 전달할 수 없기에 약간의 오류가 발생. 예를 들면 인스턴스화 된 GameObject가 재생 중에 마우스 방향으로 이동하도록 지시할 수 없음.
중력, 마찰 등의 값이 활성화되어 있지만 이러한 값은 항상 캐릭터의 위치와 회전에 영향을 미침
우리가 저장해야하는 값
Position
Rotation
Scale
Animation > animation record
총알. 수류탄이 있는 총게임은 사용하지 않음. 경기 리플레이
GameObject는 자체 기록을 갖게 됨 모든 프레임을 저장
애니메이션은 어떻게 저장? 애니메이션은 전환선으로 연결되어야 함
각 프레임에 매개변수를 기록하면 애니메이션 저장 가능
우리의 문제 : IK를 움직이게 된다면? 그 위치를 다 저장해야 할 텐데
enum (play, pause, record) 열거형으로 구성을 사용하여 모드 전환을 조정
추가 ? 재생, 일시중지, 종료, 확대/축소, 카메라 변경 및 회전
Play-Pause
Time.timeScale = 1; play 0 : pause
Camera 변경 List<>
사용자가 카메라를 제공하고 순서대로 변경
v 버튼을 클릭할 때마다 변경 -> 카메라를 직접 움직여서 변경해야 함
0.1.2 / 0.camera active
zoom camera (z, x 버튼)
active camera
field of view (카메라 시야 값)
카메라 회전에는 eularangle 사용
오류 : 카메라가 원하지 않을 때 카메라가 z축으로 회전하고 비정상적인 회전 발생
슬라이더는 재생 길이에 대한 정보를 제공 재생의 최대길이는 사용자에게 알려줌
슬라이더 최대값 = 녹화 길이
목표 : 한명의 플레이를 녹화하면 재생 되고 계속 플레이할 수 있게 만들어야 함.
2) https://github.com/JosepLleal/Replay-System-Tool
GitHub - JosepLleal/Replay-System-Tool: Development of a replay system for my final degree project
Development of a replay system for my final degree project - GitHub - JosepLleal/Replay-System-Tool: Development of a replay system for my final degree project
github.com
ACE Replay는 간단한 상태 기반 재생 시스템
ACE Replay 시스템은 변환, 애니메이션, 오디오 및 입자의 기록과 인스턴스화되고 삭제된 개체의 처리만 지원합니다.
사용자는 재생 기간, 보간 최적화 사용 여부, 기록 간격 등을 사용자 정의
- 시스템을 빠르고 쉽게 통합하기 위한 스크립트 및 프리팹입니다.
- 별도의 프로그래밍 없이, 스크립트를 원하는 개체에 드래그 앤 드롭하여 녹화할 내용을 쉽게 지정할 수 있습니다.
- 시스템 작동 방식과 유틸리티를 보여주는 예시 장면입니다.
- 변환, 애니메이션, 입자 및 오디오 녹음.
- 기록된 객체의 인스턴스화 및 삭제를 지원합니다.
- 보간 덕분에 재생의 부드러움을 잃지 않고 낮은 프레임 속도로 녹화하도록 최적화되었습니다.
- 즉시 재생을 제어하는 간단한 UI입니다.
- 플라이 어라운드 리플레이 카메라를 사용하여 다양한 카메라 각도에서 리플레이를 볼 수 있습니다. 리플레이는 게임플레이 카메라를 포함한 기존 장면 카메라에서도 볼 수 있습니다.
- x0.25, x0.5, x1, x2, x4 등 다양한 속도로 재생을 지원합니다.
- 프레임별 재생 및 역방향 재생을 지원합니다.
- 시간여행 기계공으로 과거로 여행을 떠나보세요.
- 필요에 따라 확장할 수 있는 완전 C# 주석 처리된 코드입니다.
3) https://www.kodeco.com/7728186-creating-a-replay-system-in-unity
Creating a Replay System in Unity
A replay system is a great way to let players relive their best (or worst) moments of gameplay, improve their strategy, and more! In this tutorial, you’ll build a simple state-based replay system and learn about how replay systems work.
www.kodeco.com
4) 고스트 플레이어
https://www.youtube.com/watch?v=c5G2jv7YCxM&list=PLi9ggwioqRlZx7uO9HE3C1G3VLlJ9uKEF&index=12&t=107s https://youtu.be/AD2W5EXex5Q?si=6jkccG9gwyvk90b8
'유니티' 카테고리의 다른 글
Doxygen (0) | 2023.09.26 |
---|---|
Replay 시스템 2 (0) | 2023.09.11 |
[유니티] 흔들리는 로프 구현 (0) | 2023.08.31 |
[유니티] BezierCurve (0) | 2023.08.31 |
[유니티] Scripting Define Symbol 스크립트로 제어하기 (0) | 2023.08.29 |