팩토리오에는 많은 공장들이 있다
유체도 사용하고, 유체가 아닌 것들도 사용한다.
팩토리오를 오래 한 사람이라면 아마 아는 사람이 꽤 있을거같은데
증기가 발생하는 건물은 레시피에 따라 증기의 색깔이 바뀐다
대표적으로는 화학공장이 있다
화학공장에서 석유가스 - 경유 - 중유 순으로 고체연료를 제작하는 모습
개인적으로는 여태까지 이걸 알고 있었지만 '신기하네' 라고만 생각하고 크게 신경은 안썼다
왜냐하면
3d그래픽으로 디자인하고 그걸 프레임으로 각각 캡쳐했기 때문이다
즉 화학공장의 가동을 표현할 때는 그냥 저 24장을 반복해서 재생시키는것에 불과하다는 뜻이다
건물의 생산속도가 올라가면 그냥 배율만 줄 뿐이다. 물론 최대재생속도도 존재한다
최근에 모딩을 시작했는데, 재활용 관련 코드를 공부하던 중 좀 이상한게 눈에 띄었다
바로 이부분인데, 나도 아직 완벽하게 파악하진 못했다...
일단 내가 해석한게 맞으면 재활용하려는 개체의 원본에 유체가 있을 경우, 그 유체의 색을 따온다는 것이다
그리고 그걸 3차, 4차 색상에 적용시킨다
이게 신기해서 바로 확인해본 결과
위에서부터 순서대로 경유-석유가스-중유
실제로 재료마다 색이 다르게 나온다는것을 알았다
경유 배럴은 원 재료가 경유+빈 배럴 이므로, 원본의 재료에 유체가 있고, 그 색을 따와서 경유의 색깔이 나온다
위에서부터 슈퍼캐퍼시터 (전해질), 핵융합 연료전지 (암모니아), 차가운 플루오루케톤, 뜨거운 플루오루케톤
생각해보면 당연한 논리였다
유체가 한두개도 아닌데 그 유체마다 연기를 따로 만들수도 없고
만약 그렇게 했더라면 유체를 새로 만드는 모드 제작자들은 그 유체에 맞는 색을 모든 건물의 연기마다 새로 만들었어야 했다
이렇게 색깔놀이를 하던 중 한가지를 더 발견했다
레시피를 참고해서 건물의 3차 4차 색깔을 정하는 기능은
재활용기의 기능이 아니라 '재활용 레시피' 자체에 있다
재활용기에서 준비한 3차 4차 색깔이 레시피의 색에 따라 보이는게 아닌
재활용 레시피가 건물의 3차 4차 색깔에 영향을 준다는 것이다
전자와 후자가 무슨 차이가 있냐 라고 생각할 수 있다
전자의 형태로 실제 코딩이 되어있었다면
레시피를 확인 - 그 색에 맞는 연기를 재생 (글 윗부분에 화학공장의 그림처럼)하기 위해 각 색에 맞는 연기를 그림 파일로 가지고 있어야한다
그래야 그걸 재생시킬테니까
그런데 후자는 레시피에서 3차, 4차 색에 대한 정보를 갖고 있고
건물은 그냥 회색 연기를 재생할 뿐이고, 레시피에 존재하는 3차, 4차 색이 회색 연기에 영향을 준다
- 레시피 안에 색에 대한 정보 존재 -> 건물이 색에 대한 정보 참조 -
재활용기가 아니더라도 3차 4차의 영향을 받는 건물이라면 그 건물의 색도 바꾼다고 볼 수 있다
화학공장의 외형 + 재활용기로 만든 임시 건물, 재활용 레시피에 따라 다른 색이 나오는 모습
극저온 공장의 외형 + 재활용기로 만든 임시 건물, 극저온 공장도 마찬가지다
제작진이 모드 개발자들의 편의와 최적화를 위해 얼마나 힘써왔는지 보이는 모습이다
완전히 새로운 건물을 만든다고 할때, 색을 내고싶을땐 회색으로 만들고 레시피 색에서 참조만 하면 된다
유체가 아닌 물건에도 영향을 받게 하고싶으면, 아까 코드부분의 fluid를 다른걸로 바꾸면 된다
1차, 2차 색에도 영향을 주고싶으면 result_crafting_tint.tertiary 의 tetrtiary(3차)를 primary(1차)나 secondary(2차)로 바꿔주면 된다
색을 조절하고싶으면 식 또는 값만 바꾸면 된다
이미지 하나 + 코드 몇줄로 수많은 바리에이션을 구현해냄과 동시에 디테일까지 챙긴 모습이다
개발진들은.... 대체 뭘까.....
캬 므찌다ㅋㅋㅋㅋㅋㅋ
편의성도 있을텐데 최적화 문제도 있을거임 전에 개발자QnA한거 보니까 VRAM 사용량을 극한까지 아끼려고 하던데 (우주플랫폼에서 행성 배경이 안나오는 이유) 색깔별로 스프라이트를 다만드는거보다는 저렇게 코드로 연기에 색을 입히면 연기나는 애니메이션 스프라이트를 회색 한가지만 쓰면 되니까 많이 절약되겠지
사실 저렇게 안만들면 게임이 못버티고 터지거나 회사에서 쫓겨나거나 둘중 하나임ㅋㅋ - dc App
바챔도 보여줘
저거는 옛날 비트맵 시절부터 팔레트 스왑이라는 이름으로 내려온거긴 함... 스타크래프트의 경우도 팀색깔 부분은 저런식으로 칠함
게이야 혹시 개발자 해볼 생각 없노? - dc App
팔레트 스왑은 항상있지만 글에서 처럼 코드상으로 유체를 판별하지 않고 하드코딩하는 개발진이 훨 많을듯
생각보다 기본적인 코딩임
바이오 챔버도 속에서 뭘 만드느냐에 따라 수조 색이 변하더라 재밌다고 생각했음