1. 이번엔 뭘 할 거냐



(짤은 공지에 있는 공략모음에 등재된 글 중 '메인버스에 관하여' 게시글의 다이소 부분에서 가져왔음)


팩토리오에서 사용되는 각종 잡템들을 별도 생산라인으로 한 곳에 모아놓고 만드는 걸 다이소라고 부른다. 일일이 손으로 만들기는 귀찮고 시간도 많이 걸리기에 미리 조립기로 만들어 놓는 방식인데, 보면 알겠지만 물품 하나에 조립기 하나씩 할당해서 만들 경우 공간을 굉장히 많이 잡아먹는다. 저런 잡템들은 지속적으로 쓰이는 게 아니라 필요할 때만 몇 묶음씩 빼서 쓰이기 때문에 실질적으로 필요한 시간당 생산량은 극히 적지만, 2.0 버전 이전까지는 조립기의 생산 물품을 자동으로 바꿀 방법이 없었기에 어쩔 수 없이 물품 하나 당 조립기 하나를 배분할 수 밖에 없었다.


그러나 DLC와 함께 2.0버전이 업데이트 되면서 각종 생산 건물들의 생산 물품을 조합기들로 설정해서 변경할 수 있게 되었다. 회로 제어를 통해 한 건물에서 여러 물품을 생산할 수 있게 되었다는 거다. 우주 플랫폼 같은 공간 절약이 중요한 곳에서는 이미 많이 쓰이는 방식이고 그 외 다른 곳에서도 회로를 통해 생산 물품을 자동으로 바꿔쓰는 사람도 있을 것이다. 그렇다면 해당 방식을 다이소에 적용시켜보면 어떨까? 필요한 물품의 종류는 많지만 필요한 수량은 적은 상황, 좀 있어보이는 말로 '다품종 소량생산'을 해야하는 다이소에서 한 건물에서 여러 물품을 생산하도록 하면 필요한 공간의 면적을 획기적으로 줄일 수 있지 않을까?



2. 들어가기 전에




밑에 글을 읽기 전에 배경지식 조금만 쌓고 가도록 하자.


회로로 제작법을 설정할 때 여러 제작법이 동시에 입력될 경우, '아이템창에서 가장 왼쪽 위에 있는 아이템'이 우선적으로 설정된다. 그냥 아이템창에 나온 순서대로 설정된다고 생각하면 된다. 위의 예시짤에선 노란투입기/빨간투입기/파란투입기/초록투입기가 동시에 제작신호로 입력되는 중이고 그 중 노란 투입기가 가장 왼쪽에 있기 때문에 조립기에선 노란 투입기가 제작 물품으로 정해진 모습이다.


만약 저 투입기들과 벨트들이 동시에 제작신호로 입력된다면 노란 벨트가 가장 우선적으로 설정될 것이고 투입기/벨트/상자 세 종류가 동시에 입력된다면 상자가 조립기에서 만들어질 것이다. 예시짤에선 '물류'탭에 있는 물품들을 예로 들었는데 만약 다른 탭에 있는 물품을 동시에 제작신호로 입력한다면 그 역시 탭 순서대로 신호가 우선된다. 예를 들어 '전투'탭에 있는 물품(총알 같은 것들)과 '생산'탭에 있는 물품을 동시에 입력한다면 '생산'탭에 있는 물품이 조립기에서 설정된다.




자동화 전선으로 신호를 주는 것도 가능하지만 받는 것도 가능하다. 당연한 소리를 왜 뜬금없이 하냐면 이번 주제에서는 이거 때문에 회로가 뻑날 수도 있기 때문이다. 나는 받을 생각이 없던 신호가 원래 받으려던 신호와 합쳐져 섞여 들어와 생산 과정에서 오류를 일으킬 수 있는데, 신호 채널은 빨간색 초록색 두 개밖에 없으면서 연결해야 할 곳은 수두룩하기 때문에 주의 싶게 따라오지 않으면 신호 합선으로 오류를 겪을 거다. 그럴 때 쓰면 좋은 게 위의 신호기다.


저 별표는 와일드카드라고 한다. 빨간색 별표는 '모두', 초록색 별표는 '아무거나', 노란색 별표는 '각각'이라고 하는데 어떤 뜻이고 어떻게 쓰이는 지 설명하려면 이 글 전체 분량이 절반 가까이 늘어날 것 같고 이번 주제와는 별 상관이 없는 내용이니 여기선 설명을 생략하겠다. 다른 사람이 정리한 글 있으니 궁금한 사람은 여기로 가봐라


https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=87544&exception_mode=recommend&page=1

[기초 주의] 가상신호(모두,아무거나,각각) 알아보기[시리즈] [공략 주의] · [장문 주의] 만화로 보는 열차신호 공략 · [기초 주의] 가상신호(모두,아무거나,각각) 알아보기 투입기나 껐다켰다 하는 회로만 쓰다가 여러 신호를 받아서 비교하고 내보내는 등 복잡해지기gall.dcinside.com



간략하게 설명하면 저 노란색 별표는 '입력된 모든 신호'라고 이해하면 된다. 저렇게 (노란색 별표 * 1 = 노란색 별표)로 설정해 놓으면 입력된 신호를 그대로 출력해주는 일방통행 전선이 된다. 즉, 신호를 주기만 하고 받지는 않기 때문에 합선의 위험이 크게 줄어든다. 만약 이 글을 따라해보려는 사람이 있고 따라했는데 원인모를 합선이 계속 발생해서 회로는 작동 안하고 빡쳐서 뒤질 것 같다면 합선이 의심되는 곳에 저 일방통행 전선을 추가해봐라. 그렇게 하면 해결이 될 수도 있고 안 될 수도 있고 그러게 잘 따라오지 그랬냐 왜 한 눈 팔다가 합선 일으키고 그러냐 쯧쯧.



3. 압축형 다이소 만들기




일단 다른 아이템들은 저런 식으로 설정하면 된다. 각 물품들을 원하는 만큼 만들도록 설정하고 조립기에 연결해주면 끝이다. 더 손 볼 것도 없고 추가할 것도 없고 재료만 넣어주면 원하는 만큼 만들어 질 거다.



문제가 되는 물품들은 이런 애들이다. 출력물이 다시 재료로 쓰이는 애들. 예를 들어 노란 투입기 같은 경우 빨간 투입기와 파란 투입기의 재료로 쓰이고 파란 투입기는 다시 대용량 투입기의 재료로 쓰인다. 투입기 말고도 이런 식으로 다이소로 제작해야 하는 물건이면서 동시에 재료로 쓰이는 애들이 몇 개 있다. 이런 애들도 조립기 하나만으로 만들어보자.



우선 위와 같은 형태로 투입기와 상자를 배치해준다. 만들어진 물품이 오른쪽 아래로 빠져나가고 다시 오른쪽 위 상자로 옮겨진 뒤 조립기에 넣어지는 구조다.



수량 비교기를 설치한 뒤 각 투입기들을 원하는 만큼 만들도록 설정해준다. 이번 글에서는 각각 50개씩만 만들게 설정했다. 수량 비교기 위에 투입기들 설치해놓은 건 각 수량 비교기가 어떤 투입기들을 설정했는지 보기 좋으라고 깔아놓은 거고 성능에는 아무런 영향을 주지 않는다. 실제 만들 때는 생략해도 된다.


이렇게만 해놓고 작동시키면



처음 노란 투입기까지는 잘 만들지만, 빨간 투입기부터는 평생 만들어지지 않는다.


노란 투입기가 50개까지 만들어진 뒤 빨간 투입기를 만들기 위해 상자에서 노란 투입기를 꺼낸 순간, 노란 투입기가 50개보다 부족하다고 판단하여 빨간 투입기 제작이 취소되고, 취소되면서 조립기 안의 내용물을 다 꺼내니 다시 노란 투입기가 충분하다고 인식해서 빨간 투입기를 만들려고 하고, 위 과정이 영원히 반복된다. 이를 방지하려면 상자 안에 있는 물건 말고 '투입기가 들고 있는 물품'과 '조립기 안에 들어간 물품'까지 모두 인식시켜야 한다.



상자 사이의 투입기들도 모두 자동화 전선으로 연결한 뒤 '손 내용물 읽기'를 체크하고 '유지'로 바꿔준다. 조립기도 자동화 전선으로 연결하고 '내용물 읽기'와 '제작중인 내용물 포함'에 체크해준다. 이렇게 하면 투입기가 들고 있는 물건과 조립기 안에 들어간 물건을 모두 인식할 수 있게 된다.


지금 위의 사진에서 뭔가 문제가 있다는 생각이 든다면 눈썰미 좋게 잘 찾아낸 거다. 못 찾아낸 사람들은 위 회로대로 작동시켰을 때 어떤 일이 일어나는 지 확인해보자.



노란 투입기가 50개 이상 만들어졌는데도 빨간 투입기로 넘어가지 않고 계속해서 노란 투입기만 생산하는 모습이다. 왜 이렇게 되었냐하면 저기 표시해놓은 부분에서 상자 안에 있는 '노란 투입기'라는 신호가 조립기에 섞여 들어갔기 때문이다. 현재는 '노란 투입기 91개'라는 신호가 조립기에 들어가고 있는데, 갯수에 상관 없이 1개든 50개든 100개든 '노란 투입기'라는 신호가 섞여 들어가면 위에서 말했듯 노란 투입기가 입력신호에서 우선 순위를 가지기 때문에 노란 투입기만 생산하게 되는 것이다. 신호가 섞이지 않도록 다른 색 전선을 사용해주면 해결이 된다.



이런 식으로 초록색 선으로 신호를 받고 빨간색 선으로 신호를 보내면 신호가 섞일 일 없이 주고받는 게 가능해진다. 앞으로도 선 색깔을 다르게 쓰는 경우 이렇게 섞이는 거 방지하려고 그러는 거라 이해하면 된다. 신호 합선 문제도 해결했으니 다시 결과를 보자.



그래 뭐... 만들어지긴 하는데... 아직도 뭔가 좀 아닌 것 같다. 재료를 왕창 때려박았다가 제작법을 바꾸면서 때려박은 재료들 빼내고, 다시 바뀐 제작법에 필요한 재료를 왕창 때려박았다가 제작법이 바뀌니 다시 빼내는 모습이다. 만드는 시간보다 재료들 빼내는 시간이 더 긴 거 같다.


아무래도 조정이 더 필요해보인다. 저런 식으로 만들면 시간도 오래 걸리고 재료도 실제로 필요한 분량보다 더 많은 양이 투입되니 낭비도 심해진다. 저렇게 왕창 때려넣는 방식이 아니라 정확하게 딱 1개 만들 수 있는 만큼만 넣도록 만들면 재료도 시간도 아낄 수 있을 것 같다.



상자 옆에 조립기를 하나 더 추가한 뒤 여기선 '재료 읽기' 항목에 체크를 해준다. 저 항목은 '이 물품을 만드는데 필요한 재료들'을 출력해주는 항목이다. 이렇게 하면 각 제작법에서 어떤 재료들이 얼마나 들어가는 지 바뀌는 제작법에 따라 실시간으로 정확하게 설정해준다. 빨간색 선으로 연결했다는 거 잘 보자.


나도 저렇게 조립기 하나 더 설치하는 게 보기 짜쳐서 저런 거 말고 그냥 회로로 만들어보려고 했는데 진짜 시발 온갖 방법을 머리 쥐어뜯어가며 시도해봐도 '그냥 조립기 하나 더 설치하는 게 훨씬 낫다'라는 결론만 나오더라. 조립기가 3X3 총 9칸 차지하는데 회로로 만들려고 하면 10칸은 기본으로 넘어가고 각종 설정들도 더럽게 복잡해진다. 저렇게 조립기 하나 더 설치하는 게 공간도 성능도 더 좋다. 진짜다 시발. 날 믿어라. 진짜다.



기존 조립기에서는 '작동 여부 읽기'라는 항목을 체크해준다. 이렇게 하면 재료들이 모두 들어가서 조립기가 작동 중일 때 A라는 신호를 발생시킨다.



기존 조립기 아래쪽에 산술 연산기를 추가해 준 뒤 사진처럼 설정해준다. 빨간색 선으로 연결했다. 주의할 점은 그냥 1 이 아니라 -1을 곱해준다는 거다. 이렇게 하면 조립기 안에 '이미 투입된 물품들'이 음수가 되서 다른 회로와 합쳤을 때 자동으로 뺄셈이 된다.



산술 연산기를 하나 더 추가하고 새로 추가한 재료 설정용 조립기와 방금 만든 음수 일방 통행기 둘을 연결한다. 전선 색깔을 유의하자. 이렇게 하면 (만드는데 필요한 재료 - 이미 투입된 재료 = 더 넣어야 하는 재료)라는 식이 나온다. 음수로 나온 재료들은 자동으로 걸러지니 걱정하지 말자.



마지막 단계다. 여기까지 읽느라 수고했다. 방금 만든 일방 통행기를 '조립기에 재료를 넣는 투입기'에 연결하고 위와 같이 설정한다. A=0때만 작동하게 했으니 조립기가 물품을 조립 중일 때는 추가로 물품을 넣지 않고 기다리다 다 만든 이후에만 재료를 넣는다. 필터 설정을 체크했다면 일방 통행기에서 받는 신호 중 양수인 물품, 즉 아직 더 필요한 물품만 넣게 되고 필요한 만큼 넣으면 더 넣지 않는다. 묶음 크기는 하나만 넣도록 했으니 여러 개 넣다 필요 수량보다 과하게 넣을 일도 없다.


이 때 상자에서 투입하는 투입기는 필터설정을 체크하지 않는다. 상자랑 회로로 연결된 투입기라 필터 설정해도 원하는 대로 작동되지 않을 가능성이 있으니 그냥 저 투입기는 필터를 생략한다.


자, 이제 정말로 결과를 보자.



좋다. 과투입되는 재료도 없고 시간도 아까보다 훨씬 빨라졌다.


(으아아아아아 64배소오오오오옥)



아주 좋다. 원하던 물품이 정확히 원하던 만큼 만들어졌다. 과투입된 재료들이 빠져나오지도 않고 제작시간은 좀 걸리긴 한데 가끔씩만 쓰일 다이소용 물품들이라는 걸 감안하면 충분히 빠르게 만들어졌다. 이 정도면 성공적인 다이소 압축이라고 할 수 있을 것 같다.



4. 뇌절




투입기 말고도 이것저것 방금 만든 압축 다이소로 만들어봤다. 만들어진 순서대로 수량이 증가하도록 설정했다. 한 번에 두 개씩 만들어지는 물품들이 있어서 약간 넘어간 것들이 있긴 한데 어쨌든 중요한 건 특정 수량만 되는 게 아니라 만드는 사람이 원하는 수량만큼 만들어지도록 설정할 수 있다는 점을 보여주는 거였으니 저 정도 기열찐빠는 넘어가줘도 될 것 같다.


만약 저 물품들을 조립기 하나하나 배정해서 만든다고 한다면 필요한 면적이 어마어마할 것이다. 조립기뿐만 아니라 재료들을 운반해주는 벨트들도 하나하나 배정해줘야 할테니까 말이다. 그러나 압축 방식으로 만들면 조립기 단 두 개(와 좀 많은 수량 비교기)만으로 저 수많은 물품들을 다 만들어 낼 수 있었다. 공간압축을 어마어마하게 해서 다이소를 완성했다.



5. 마치며



일요일 안에 다 작성해서 올리는 걸 목표로 했는데 벌써 새벽 한 시다. 아 내일은 왜 월요일이지. 슬프다.


이번 글에서는 모든 물품을 다 조금씩만 만들었기 때문에 상자 하나로도 충분했지만 실제 게임에서 해당 방식으로 물품을 만들면 상자 하나로는 좀 모자랄 수도 있다. 그럴 땐 상자랑 상자 가운데에 있는 투입기에 제외 필터를 설정해서 좀 많이 만들어야 하는 물품은 아래 상자에, 소량만 만들어도 되는 물품은 위쪽 상자에 보관하도록 하면 저 압축 다이소 한 세트만으로도 필요한 모든 물품을 생산해낼 수 있을 것이다.


뭔가 더 주저리주저리 적고 싶은데 졸려서 뒷목이 뻐근한 게 머리가 안 돌아가서 더 적을 게 안 떠오른다. 그냥 여기서 마치는 게 나을 것 같다. 내가 적은 글이 니들이 즐거운 게임하는데 도움이 됐으면 좋겠다. 다들 즐거운 팩토리오하고, 좀 늦었지만, 새해 복 많이 받아라.