확장팩 FFF 모음 정리 링크



이번 FFF는 모든 영상이 음향관련이기때문에 움짤로 바꾸진 못하겠고

영상 링크 각각 달아줄테니까 각각 들어가서 들어보셈


불편하면 그냥 구글번역켜서 보던가



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




FFF #396 - 음향 개선 2.0

게시자 Donion, Ian

2024-02-02



안녕하세요,

오늘은 2.0을 위해 노력해온 여러 가지 음향 개선 사항을 살펴보고 들어보겠습니다.




작업 사운드 액센트


엔티티가 활성 상태일 때 내는 소리는 일반적으로 하나의 반복되는 메인 효과음이며, 일부 엔티티는 활성 상태가 되거나 작업을 중지하고 유휴 상태가 될 때 재생되는 효과음이 있을 수 있습니다. 또한 작동하는 효과음을 조금 더 제어하는 데 사용할 수 있는 몇 가지 속성 값과 파라미터가 있습니다. 하지만 항상 작동해야 할 때 하나의 반복되는 효과음으로는 창의적으로 할 수 있는 한계가 있습니다.


요청된 오디오 기능 목록에서 기계의 효과음을 애니메이션에 동기화하는 기능이 매우 중요했습니다. 그래서 생각해낸 것이 사운드 액센트라는 개념입니다. 특정 애니메이션의 특정 프레임에서 재생되는 짧은 효과음입니다. 처음에는 기계에 메인 효과음을 보완하기 위해 두세 개의 사운드 액센트를 추가하는 것으로 충분할 것으로 예상했습니다. 하지만 Ian에게는 다른 생각이 있었습니다.


주조소부터 시작하여 메인 효과음 외에도 애니메이션의 개별 구성 요소와 섹션을 강조하는 12개의 사운드 액센트가 있습니다. 그리고 그는 거기서 멈추지 않고 훨씬 더 복잡한 효과음 세트가 있는 기계를 작업했죠. 나중에 보여드리겠습니다. 이제 주조소로 돌아가 보겠습니다.



https://cdn.factorio.com/assets/blog-sync/fff-396-foundry-normal.mp4


https://cdn.factorio.com/assets/blog-sync/fff-396-foundry-normal-debug.mp4


두번째 영상의 작업 효과음 시각화에서 큰 사각형은 메인 효과음을, 작은 사각형은 개별 사운드 액센트를 나타냅니다.


기계의 효과음을 애니메이션 속도(모듈, 비콘, 저전력)에 맞춰 속도를 높이거나 낮추려고 하면 잘 작동하지 않습니다(특히 속도가 느려질때). 그래서 1.1에서는 이를 거의 사용하지 않고 증기 엔진 효과음와 같은 일부 효과음 속도만 높였습니다. 하지만 특정 애니메이션 프레임에 직접 연결된 짧은 효과음이 많으면 이 문제를 자연스럽게 해결할 수 있습니다.



https://cdn.factorio.com/assets/blog-sync/fff-396-foundry-fast.mp4


https://cdn.factorio.com/assets/blog-sync/fff-396-foundry-slow.mp4


첫번째는 빠른 주조소, 두번째는 매우 느린 주조소입니다.






여러 개의 메인 작업 효과음


이제 하나의 기계에 여러 개의 효과음을 사운드 액센트 형태로 사용할 수 있게 되었으니, 메인 효과음도 여러 개를 사용하면 흥미로운 작업을 할 수 있을까요? 결과적으로 그렇습니다! 효과음 볼륨이나 재생 속도를 기계의 활동 속도에 맞추는 기능인 액티비티 매칭을 다른 트릭과 결합하면 됩니다. 활동 속도는 기계가 어떤 작업을 얼마나 빨리 하고 있는지 보고하는 방식으로, 작동 중일 때는 1.0, 그렇지 않을 때는 0.0으로 보고하는 것처럼 간단할 수도 있고, 차량의 속도일 수도 있고, 좀 더 창의적인 것일 수도 있죠.


차량에 대한 몇 가지 예시를 통해 2.0에서 어떤 기능을 사용할 수 있는지 살펴보겠습니다.


1.1에서는 자동차의 속도가 빨라질수록 더 빠르게 재생되는 하나의 메인 효과음이 있습니다. 이 정도면 충분하지만 더 좋은 방법이 있습니다. 공회전 소리와 주행 소리, 두 가지 소리를 사용하겠습니다. 자동차의 속도가 증가함에 따라 공회전 소리의 볼륨은 완전히 조용해질 때까지 빠르게 감소하고, 동시에 주행 소리의 볼륨은 무음에서 최대 볼륨까지 증가합니다. 어느 순간부터 주행 효과음의 피치도 증가하기 시작하지만, 너무 높아지지 않도록 조절됩니다.


탱크는 트랙에 대한 별도의 효과음와 함께 동일한 처리를 받았습니다.


https://cdn.factorio.com/assets/blog-sync/fff-396-car-tank.mp4


물론 기차도 빠질 수 없겠죠. 여기에는 기차가 고가 레일 위에 있을 때의 다른 소리도 포함됩니다.





https://cdn.factorio.com/assets/blog-sync/fff-396-train.mp4






추가 기계 소리


이전 영상에서 자동차가 다른 타일이나 자원을 밟고 지나갈 때 나는 소리나 화물차 문에서 나는 소리가 달랐던 것을 기억하시나요? 이러한 소리는 작동 효과음으로는 잘 작동하지 않으므로 다른 접근 방식이 필요했습니다.


각 엔티티의 업데이트에 특수 로직을 추가하여 추가 효과음을 처리할 수 있으며, 과거에는 포탑의 회전 효과음을 업데이트 로직에 추가하는 등 일부 엔티티에 대해 그렇게 했습니다. 추가 효과음 로직이 있는 엔티티의 수가 매우 적은 경우에는 괜찮지만, 채굴 드릴이나 로봇처럼 수가 많은 엔티티에 효과음을 추가하려고 하면 비효율적인 문제가 발생합니다.


저희는 이 시스템을 정말 원했고, 그래서 추가 효과음이라는 새로운 시스템이 탄생했습니다. 이미 많은 기존 및 신규 엔티티가 이 시스템을 활용하고 있는데, 그 중 하나인 대형 채굴 드릴을 살펴보겠습니다(지난번 FFF에는 임시 효과음만 있었습니다).


https://cdn.factorio.com/assets/blog-sync/fff-396-colossal-mining-drill.mp4





주변 환경음


1.0 개발 당시에는 구현할 수 없었던 아이디어가 많았습니다. 그 중 하나는 하나의 바람 소리가 아닌 보다 몰입감 있는 앰비언트 시스템을 만드는 것이었습니다. 저는 바람 시스템을 고안했는데, 아주 기본적인 바람 트랙을 확대하면 다른 바람 트랙이 재생되고, 축소하면 더 흥미로운 바람 트랙이 재생되는(둘 사이에 크로스 페이드가 있는) 방식이었습니다. 이 아이디어는 불카누스에서 멀리 떨어진 화산 소리를 다양한 길이의 일시정지로 낮은 높이로 들을 수 있는 것과 같이 지속적인 환경음을 만드는 아이디어로 발전했습니다.


하지만 플레이어의 위치에 따라 좀 더 구체적인 주변 소리를 추가하는 것은 어떨까요? 맵은 수작업이 아닌 알고리즘에 의해 자동생성된 것이기 때문에 일반적인 게임 업계의 접근 방식인 앰비언트 트리거 박스나 미리 칠해진 지역을 사용할 수 없었습니다. 그래서 특정 조건에 따라 타일과 엔티티에 소리를 추가하는 아이디어를 떠올렸습니다.


이 기술이 자리를 잡자 저는 물 근처에 잔잔한 물소리, 나무에 나뭇잎 바스락거리는 소리와 같은 효과음을 추가하기 시작했습니다. 그러다가 나무에 있는 적대적이지 않은 작은 외계 새처럼 눈에 보이지 않는 생물이 플레이어가 특정 임계값 이상의 나무 반경 내에 있을 때만 재생되도록 할 수 있다는 것을 깨달았습니다. 또한 각 효과음 사이에는 무작위로 일시 정지되는 기능도 있습니다. 이 아이디어를 발전시켜 시간이나 카메라의 줌 레벨에 따라 재생 여부를 지정할 수 있습니다.


https://cdn.factorio.com/assets/blog-sync/fff-396-ambient.mp4


다음에 숲에 불을 지를 때는 누군가의 집이었을 수도 있다는 사실을 기억하세요.






기타 효과음 개선 사항


아이템 효과음


1.0을 출시했을 때 Kovarex는 게임에서 아이템별 인벤토리 효과음이 있었으면 좋겠다고 말했습니다. 당시에는 아이템을 이동할 때 나는 소리가 하나뿐이었는데, 괜찮았지만 조금 지루할 수도 있고 특별한 피드백을 주지 못했습니다. 그는 전선을 연결하고 끊을 때 나는 소리와 비슷하게 만들어야 한다고 설명했고, 그 말을 듣고 무슨 뜻인지 이해할 수 있었죠.


시행착오를 거치면서 어떤 효과음을 그룹화할 수 있는지(예: 작고 큰 금속성 아이템), 어떤 효과음은 독특해야 하는지 알아냈습니다. 어떤 아이템은 어떤 소리가 나야 하는지 파악하기 어려웠기 때문에 다른 효과음보다 더 많은 반복이 필요했습니다. 결국 속도 모듈의 효과음은 무엇일까요? 이 특별한 경우에는 추상적이어야 했기 때문에 결국 신디사이저 효과음을 사용했습니다.


https://cdn.factorio.com/assets/blog-sync/fff-396-item-sounds.mp4





고급 볼륨 제어


주변 소리의 볼륨을 좀 더 잘 제어할 수 있다는 언급이 있었습니다. 이 작업이 완료되면 Ian은 다른 효과음에도 사용할 수 있는지 묻기 시작했습니다. 저는 안 될 이유가 없다고 생각해서 이 모든 파라미터를 고급 볼륨 제어 속성에 통합했습니다. 덕분에 깔끔한 작업을 할 수 있었습니다.


거리에 따른 감쇠는 기본 선형에서 보다 자연스러운 느낌의 지수 곡선으로 변경할 수 있습니다. 로그, 코사인 또는 S-커브 또는 감쇠를 전혀 하지 않는 옵션도 있습니다. 비슷한 방식으로 줌 레벨에 따라 효과음이 감쇠하는 방식을 변경할 수 있습니다. 특정 효과음이 밤에만 재생되도록 어둠 임계값을 지정할 수도 있습니다. 이 툴박스의 마지막 도구는 동적 효과음 모디파이어입니다. 이를 통해 특정 게임 상황에 맞게 효과음 레벨을 변경할 수 있습니다. 메뉴 시뮬레이션이나 팁과 요령, 차량을 운전하거나 기차가 고가 레일 위에 있을 때만 적용되는 동적 볼륨 모디파이어가 있을 수 있습니다.




효과음 집계


특정 상황에서는 동시에 재생하고자 하는 효과음이 많을 수 있습니다. 많은 적을 상대하는 전투가 일반적인 상황이고, 적과 포탑이 동시에 공격하면 많은 효과음이 발생합니다. 주어진 시간에 재생할 수 있는 효과음 수에 엄격한 제한이 없다면 금방 소음의 벽으로 변할 수 있습니다.


효과음 애그리게이션은 이러한 문제를 해결하는 한 가지 방법으로, 한 효과음이 여러 번 재생될 때 특정 한도를 초과하는 인스턴스를 정지하거나 볼륨을 줄일 수 있습니다. 이 시스템은 이미 1.1에 있었지만 특정 시나리오에서 소수의 효과음에만 사용할 수 있었습니다. 2.0에서는 대부분의 효과음에서 사용할 수 있도록 시스템이 크게 개선되었고 조정할 효과음에 대한 제어 기능이 추가되었습니다. 이러한 변경으로 이제 문제가 되는 시나리오의 효과음 스케이프가 통제됩니다.





효과음 우선순위


효과음이 너무 많으면 GUI 효과나 특정 플레이어 액션과 같이 더 중요한 효과음을 위한 리소스가 부족할 수 있다는 문제가 있었습니다. 이에 대한 확실한 해결책은 효과음에 우선순위 시스템을 도입하는 것이었고, 실제로 그렇게 했습니다. 우선 건물 짓기와 같은 많은 플레이어 액션에 우선순위를 더 높게 부여하고, 다소 거친 소리는 우선순위를 낮췄습니다.



테스트


저희는 테스트를 좋아합니다. 다양한 효과음 관련 문제와 기능에 대한 작업을 시작하자마자 오디오 테스트 스위트를 구축하기 시작했습니다. 소리가 제대로 재생되는지 확인하는 등 최소한의 기본적인 오디오 기능을 테스트할 수 있는 간단한 프레임워크를 만드는 것부터 시작했습니다. 시간이 지나면서 기존 기능과 다양한 버그 수정은 물론 새로운 기능(및 새로운 버그 수정)을 다루면서 테스트 스위트는 성장해 나갔고, 그 범위도 넓어졌습니다.


이러한 테스트 스위트는 오디오 시스템의 여러 부분을 재설계하거나 확장할 때 매우 유용했으며, 성가신 버그가 다시 침투하지 못하도록 하는 데 큰 도움이 되었습니다.



음악


팩토리오: 우주 시대 DLC의 새로운 음악에 대해 듣고 싶으신 분들도 많으시겠지만, 그 내용은 추후 FFF를 위해 남겨두고 있으니 계속 지켜봐 주세요!




추가 효과음의 커스텀 로직을 제외한 모든 신규 또는 개선된 기능은 프로토타입으로 제공되며, 모더는 저희가 사용하는 것과 동일한 방식으로 사용할 수 있습니다.


항상 그렇듯이, 평소와 같은 장소에서 자신의 생각을 말해주세요.