확장팩 FFF 모음 정리 링크





https://www.factorio.com/blog/post/fff-419



FFF #419 - 디스플레이 패널 & 투입기 수정 사항

게시자 Earendel, Klonan, Twinsen

2024-07-12




안녕하세요,

이번 주의 FFF에 오신 것을 환영합니다.


표지판이나 게시판은 비디오 게임에서 흔히 볼 수 있는 나무 상자나 폭발물 통에 버금가는 흔한 오브젝트입니다. 플레이어와 소통할 수 있는 깔끔하고 이해하기 쉬운 방법으로, 팩토리오에서 오랫동안 보고 싶었던 것이었습니다...




디스플레이 패널 - 디자인 Earndel


새 디스플레이 엔티티의 전체 기능은 아래에서 자세히 설명하겠습니다. 디자인을 하는 입장에선 원하는 아이콘(아이템, 레시피, 가상 신호)을 표시할 수 있는 엔티티라는 것만 알면 됩니다.


제가 처음 본 버전은 Klonan이 추가한 푯말이었습니다. 멋진 임시 이미지였고, 디스플레이 엔티티의 일반적인 개념인 푯말을 고려할 만한 것이었습니다. 이론적으로는 푯말이 효과적일 수 있지만 다음과 같은 몇 가지 단점이 있습니다:


1. 푯말은 주로 2D 구조이므로 높이가 높고 평평하지만 깊이가 크지 않습니다. 푯말의 지지대가 타일 중앙에 있으면 키가 큰 엔티티로서 디스플레이 영역이 엔티티가 차지하는 타일 바깥으로 밀려나게 됩니다.

2. 푯말이 앞으로 이동하여 디스플레이가 엔티티 타일 안에 더 많이 유지되도록 하면 대부분 2D 구조이므로 뒤에 있는 타일의 대부분이 비어 있는 것처럼 보이고 다른 물건과 나란히 놓으면 이상하게 보입니다.

3. 디스플레이 표면은 수직 직사각형으로 끝나지만 디스플레이에 표시되는 아이콘은 GUI 또는 지면이나 운송 벨트 같은 수평면에서 볼 수 있도록 디자인된 아이콘입니다. 이렇게 하면 모든 아이콘이 더 어색해 보이고 팩토리오의 명백한 위에서 보는 카메라 투영과 충돌하게 됩니다.





어떤 버전의 푯말이라도 제대로 작동하려면 삼각형 지지대에 기대어 바닥에 놓인 임시 도로 표지판처럼 만들어야 할 것입니다. 더 큰 문제는 이 두 가지 옵션 중 어느 것도 미학적으로 적합하지 않다는 것입니다.





첫 번째 디자인 - 디스플레이 판


제가 처음 디자인한 것은 이러한 많은 문제를 해결할 수 있는 간단한 목업이었습니다. 넓고 울퉁불퉁하며 대부분 가로로 된 디스플레이 표면으로, 우리가 가진 아이콘과 더 자연스럽게 어울릴 수 있는 것이었습니다. 오래된 산업 박물관이나 전쟁 기념관에서 볼 수 있는 금속으로 된 전시 명판과 비슷합니다. 다음 문제는 아이콘이 표면에 그려지면 카메라 방향 때문에 실제로 세로 축이 약간 찌그러진다는 것입니다. 이를 방지하기 위해 표면을 약간 앞으로 기울여 카메라를 향하도록 했습니다. 많은 디스플레이 판이 서 있는 플레이어의 예상 머리 위치 쪽으로 기울어져 있기 때문에 이것이 합리적으로 보였습니다.


마지막으로 아이콘은 짙은 회색 배경에서 가장 선명하고 보기 좋게 보이는 경향이 있으므로 이 역시 추가했습니다. 여기까지가 제가 생각해낸 아이디어의 전부입니다. 제대로 된 디자인이 아니었고 일반적인 4배 해상도의 컨셉 아트도 아니었죠. 그럼에도 불구하고 표지판보다 더 잘 어울렸기 때문에 몇 달 동안 게임에 적용되었습니다. 심지어 몇 개의 FFF에 몰래 들어가기도 했습니다.








두 번째 디자인 - 더 많은 회로


제대로 된 디자인을 할 때가 되었을 때 몇 가지 요구 사항이 변경되었습니다. 더 이상 단순한 정적 디스플레이가 아니라 아이콘 등을 변경할 수 있는 회로 연결이 필요했습니다. 또한 나중에 모든 조합기, 전원 스위치, 프로그래밍 스피커와 함께 회로 네트워크 시스템의 일부로 잠금 해제되었습니다. 따라서 새로운 디스플레이 엔티티는 해당 기술 수준의 일부처럼 보여야합니다.


새로운 디자인은 회로 조합기 스타일의 베이스를 기반으로 합니다. 모든 조합기가 다르기 때문에 디스플레이의 베이스도 "같지만 다른" 방식으로 일관성을 유지합니다.





디스플레이 표면 자체는 CRT(음극선관)를 사용했습니다. 이런 종류의 곡면 디스플레이 표면은 기술 트리의 해당 부분의 미학에 이상적입니다. 이런 종류의 화면은 일반적으로 앞쪽으로 기울어져 있지만, 오래된 NASA의 디스플레이를 보면 상당수가 위쪽으로 상당히 기울어져 있습니다. 아마도 앉거나 서 있는 자세에서도 잘 보이도록 하기 위한 것으로 보입니다. 앞서 언급한 이유 때문에 디스플레이 표면이 카메라를 향하는 45도 각도에 가까울수록 아이콘에 가장 적합합니다. CRT 화면은 약 40도까지 각도가 기울어져 있어 화면을 거의 마주보고 있지만 여전히 위에서 흥미로운 세부 사항을 볼 수 있습니다.





첫 번째 방안은 방향에 따라 형태를 바꾸지 않고 전체 구조가 회전하는 것을 기반으로 했습니다. 이렇게 하면 개체의 방향에 따라 화면이 움직여 개체의 모양이 더 일관되게 유지되지만, 아이콘과 텍스트가 왼쪽이나 오른쪽으로 이동하여 변경해야 하는 것은 좋지 않았습니다.


두 번째 방안은 모든 회전에서 화면을 일정하게 유지합니다. 즉, 회전할 때마다 구조의 모양이 달라지고 회로 연결 지점을 적절한 위치에 유지하는 것이 약간 어려웠지만 잘 해결되었습니다.





회전이 불가능하도록 고정할 수도 있었지만, 게임에서 디스플레이에 초점을 맞춘 몇 안 되는 엔티티 중 하나이고 전선이 아이콘을 덮는 것은 원치 않기 때문에 회전 가능한 회로 연결이 매우 중요했습니다. 엔티티를 회전하여 회로 연결 위치를 변경하면 화면을 깔끔하게 유지하는 데 도움이 됩니다. 더 큰 회로 네트워크 덩어리의 일부로 회전하더라도 모두 함께 회전하므로 전선이 엉키는 것을 방지할 수 있습니다. (또한 회로 조합기에도 4개의 회전이 있기 때문에 디스플레이 패널에만 1개만 있다면 이상할 것입니다).


이 디자인은 꽤 새롭기 때문에 최종 디자인이라고 부르기 전에 더 많은 테스트가 필요합니다. 아직 3D 모델은 없으며, 이 버전이 만족스럽다고 판단되면 만들어질 것입니다.






디스플레이 패널 - 기능 Klonan


가장 핵심적이고 단순한 디스플레이 패널은 플레이어에게 메시지를 표시하는 방법이기 때문에 자연스럽게 첫 번째 기능이 되었습니다.



메시지 표시하기


디스플레이 패널 GUI에서 플레이어는 표시할 메시지를 입력할 수 있습니다. 기본적으로 메시지는 플레이어가 디스플레이 패널을 마우스로 가리킬 때만 표시됩니다.







하지만 때로는 정보가 항상 표시되기를 원하기 때문에 텍스트를 alt 모드에서 항상 표시하도록 설정하는 옵션을 추가했습니다.





짧은 메시지의 경우 괜찮지만, 플레이어 화면에 항상 전체 문단을 스팸문자 마냥 표시할 수는 없습니다. 그래서 텍스트의 첫 줄만 표시하고 마우스를 올려야만 전체 메시지가 표시되도록 만들었습니다.













아이콘 표시


다음으로 아이콘을 표시할 수 있도록 설정하는 것이 자연스러웠습니다. 아이콘을 선택하면 엔티티에 아이콘이 그려지기 때문에 설명이 필요 없습니다.

디스플레이 패널의 활용도를 한 단계 높여주는 '맵에 표시' 옵션을 통해 한 단계 더 나아간 것만 빼면 말입니다.







지도에서 아이콘을 클릭하면 패널이 열리고 쉽게 편집할 수 있습니다.


이는 사용자 지정 태그 시스템과 매우 유사하지만 공장의 일부를 추가하거나 제거할 때 수동으로 관리할 필요가 없습니다. 물론 kovarex는 새로운 매개변수화된 청사진과 함께 작동하도록 만들었으므로 범용 디자인을 만들어 찍으면 디스플레이 패널에 올바른 아이콘이 완벽하게 정렬되어 있습니다.








회로망에 연결하기


디스플레이 패널을 회로망에 연결하면 여러 가지 문제가 생깁니다. 처음에는 회로망으로 텍스트를 입력하는 것이 쉽지 않았고, 어떻게 해야 할지 몰랐습니다.


그래서 간단한 시스템을 사용하기로 결정했습니다:


- 각각 고유한 조건이 있는 메시지 목록을 지정합니다.

- 목록은 위에서 아래로 평가됩니다(드래그하여 재정렬할 수 있음).

- 조건을 통과한 첫 번째 메시지가 표시됩니다.





또한 '모든 신호'를 아이콘 설정에 와일드카드로 사용할 수 있는 기능을 추가하여 동적 회로 조합기 표시를 만들 수 있도록 했습니다.





조합기 덩어리가 모든 분쇄기에 대한 레시피를 선택하면 디스플레이 패널에 현재 출력이 표시됩니다.


저희는 사무실 랜 파티에서 디스플레이 패널을 꽤 많이 사용했는데, 커뮤니케이션이 중요한 멀티플레이어에서 매우 유용했습니다.

디스플레이 패널은 기본 게임 2.0 업데이트의 일환으로 무료로 제공될 예정입니다.







투입기 집어들기 수정 - Twinsen


새로나온 가장 빠른 운송 벨트를 가지고 플레이할 때 종종 문제가 발견되었습니다. 어떤 상황에서는 가장 빠른 투입기조차도 벨트에서 아이템을 집어 올릴 수 없었습니다. 거의 다 닿았지만 놓치는 경우가 많았습니다. 게임에서 항상 있었던 비슷한 문제는 화력 투입기가 고속 운송 벨트에서 아이템을 안정적으로 집어 올리지 못하는 문제였는데, 개인적으로 게임플레이에 도움이 되지 않고 짜증나는 문제였습니다.




녹색 지하 운송 벨트에서 빠른 투입기가 잡을 수 없습니다.

0.5배속입니다.






고속 운송 벨트에서 화력 투입기가 잡을 수 없습니다.

0.5배속입니다.



특히 화력 투입기 예시에서 슬로우 모션으로 보면 손이 아이템에 잘 닿는 것처럼 보이므로 충분히 가까우면 그냥 집어들어야 합니다. 간단한 스냅을 구현하면 두 가지 문제를 모두 해결할 수 있습니다. 하지만 문제는 그렇게 간단하지 않았습니다.


투입기에는 다음과 같은 두 가지 독립적인 이동 속도가 있습니다:


회전 속도 - 팔이 베이스에서 회전하는 속도입니다.

확장 속도 - 손이 확장 및 축소되는 속도입니다.


디버깅 결과, 확장 속도가 너무 느려서 팔은 올바른 각도로 회전하지만 손이 올바른 길이에 도달하는 데 시간이 오래 걸리는 것으로 나타났습니다. 그래서 투입기의 이 값을 증가시킨 것이 도움이 되었습니다. 또한 투입기 로직도 개선하여 아이템이 충분히 가까워지면 투입기가 아이템에 더 잘 스냅되도록 했습니다.






이번 변경으로 두 가지 문제가 모두 해결되었습니다. 이제 투입기가 더 일관성 있게 작동하고 실망스러운 실패가 줄어들었으며 운송 벨트에서 가져올 때 약간의 버프도 제공됩니다.


항상 그렇듯이 평소와 같은 장소에서 생각을 표시하세요.