방출기의 프레임 딜레이

이것도 사실 하위 호환 문제는 아니지만, 얼리 액세스에 존재하는 문제입니다. 이곳에서 언급하는 것이 좋을 것 같네요. 참조에서 물체가 복제되면, 내장된 논리가 실행되어 모든 것이 올바른 상태가 될 때까지 1프레임 정도가 필요하므로 방출기에는 1프레임의 딜레이가 존재합니다.

스위치와 회전하는 날이 하나씩 있다고 생각해 보죠. 스위치는 회전하는 날을 작동시킵니다. 이 기계 도구를 방출기의 대상 참조로 선택하면, 회전하는 날은 방출기의 참조 물체로 여전히 장면 안에 남아있지만, 이제는 동력이 꺼진 상태가 됩니다.

물체를 방출하게 되면, 게임은 말 그대로 참조를 대상으로 복제 작업을 하게 되는 거죠. 그러니 이제는 스위치와 회전하는 날의 사본이 존재하지만 (스위치는 활성화되지 않고) 날은 꺼진 상태인 겁니다.

물체를 방출하는 건 코드가 선을 따라 신호를 보내는 것보다 프레임에서 더 늦게 일어나니까, 방출된 프레임에서 방출된 물체를 잘 보면 한 프레임 동안 멈춰있는 날이 표시되고, 스위치가 선을 따라 신호를 보낸 다음 프레임부터 날이 회전을 시작하게 됩니다. 이런 문제를 (그리고 여러 개의 가젯과 타임라인이 관련된 복잡한 문제를) 피하려면, 물체가 방출된 첫 프레임에는 해당 물체를 보여주지 않는 것이 좋습니다. 그 첫 프레임에는 물리도 적용되지 않고, (트리거 구역/레이캐스트 등의) 논리도 실행되지 않으니까요.

게다가 두 번째 프레임도 잘 보면, 물체가 나타날 때 방출기도 움직이고 있을 경우에는 물체가 방출기의 뒤에 나타나는 바람에 지연이 발생하는 모습도 볼 수 있습니다. 그걸 보정하려면, 방출기가 이 프레임에 물체를 방출했을 위치로 방출된 물체를 옮기면 됩니다! 모든 속도도 그 시점에 맞춰 다시 계산해야죠.

”Wildfire”에서는 사망 시에 캐릭터가 목숨을 두 개 잃게 됩니다. 이건 캐릭터가 방출기에서 부활하는 바람에 생긴 문제입니다. 방출된 캐릭터 안의 논리가 첫 프레임에는 의사소통을 하지 못해 시스템이 또 다시 캐릭터를 죽이는 거죠.

방출된 타임라인: 아직은 커뮤니티 콘텐츠에서 이 문제와 관련된 예제를 찾지 못했지만, 자체적으로 프레임 딜레이의 부작용이라는 것을 확인했습니다. 그리고 방출기 행동 양식을 눈으로 보기 딱 좋은 예제이기도 하죠.

타임라인의 첫 프레임에 위치한 (NOT 게이트와 같은) 가젯은 그 어떤 것도 작동시키지 못합니다.

이런 문제에 봉착했다면, 가장 간단한 해결법은 바로 NOT 게이트를 타임라인에서 빼내, 논리가 활성화되자 마자 논리 이벤트를 작동시키게 만드는 겁니다. 해당 트리거가 펄스만 입력 받는다면, 신호 조작기를 추가해야 할 수도 있습니다.

동그라미 친 정보

Dreams Universe 유저 가이드는 제작 진행 중입니다. 학습 자원 및 기사를 계속 추가할 예정이므로 업데이트를 수시로 확인해주세요.