굳돌의 블로그
[마인크래프트 Create 모드 공략] 2. 동력의 생성, 전달, 제어, 측정 본문
목차
동력의 생성
Create 모드에서는 다양한 방식으로 동력을 생성하는데요, 이에 대해서 Ponder Index를 참고하시면 좋습니다. 다만, 수동으로 돌리는 경우, 다른 모드에서 추가하는 동력원 (아래 스크린샷에서는 마지막 블록이 해당합니다), 크리에이티브 전용 모터를 제외하면 Water Wheel (큰 버전과 작은 버전), Windmill Bearing (풍력발전), Steam Engine (증기기관)으로 총 3가지가 존재합니다. 예전에는 더 있었지만, 많이 정리되었습니다. 자세한 수치들은 게임 내에서 확인할 수 있지만, 한 눈에 확인하고 싶으신 분들을 위해 이 글에도 따로 챕터를 만들어두었습니다. 여기서는 Stress Capacity의 단위로 SU를 사용하는 데요, Stress Unit의 약자입니다.
(Large) Water Wheel
특히 이 중에서 Water wheel은 극초반부, 그리고 각종 작은 장치를 돌리는 등 곳곳에 이용됩니다. 큰 버전 작은 버전 둘 다 물의 흐름이 위아래로든 (소울 샌드나 마그마블럭에 의해 만들어진 거품 기둥 포함), 수평으로든 만들어지기만 하면 굴러갑니다. 당연하겠지만, 서로 반대 방향으로 흐르는 물의 흐름이 존재한다면, 작동하지 않습니다. 예전에는 흐름의 수가 늘어나는 만큼 효율이 늘어났지만, 지금은 그렇지는 않습니다. 참고로 흐르기만 하면 물이 아니여도 됩니다!
이걸 직렬이나 병렬로 극단적으로 이어서 큰 동력을 만들어 볼 수도 있겠습니다. 왼쪽처럼 수직으로 남는 공간을 활용해서 Water Wheel 탑을 쌓아서 수직축으로 돌게 할 수도 있겠고, 바다 등에서는 수평으로 설치한 뒤 마그마블록을 활용해서 돌리는 방법도 있습니다. 대신 렉 걸리는 건 알아서 잘 대처하시길 바랍니다...
참고로 목재 블록을 들고 Water Wheel에 우클릭하면 해당 목재 블록 재질로 바꿀 수 있습니다.
마그마블록이나 소울샌드가 만들어내는 거품 기둥에 대해 팁 하나 남겨보자면, 거품 기둥이 생기려면 흐르는 물 블록이 아닌 물블록이여야 합니다. F3를 누르고 물 블록을 바라보면 이를 확인할 수 있는데요, minecraft:flowing_water라고 되어 있으면 흐르는 블록입니다. 이를 그냥 물 블록(양동이로 물을 풀 수 있는 상태)으로 만들려면 물 양동이를 부어도 되겠지만, 켈프(Kelp)를 심어서 바꾸는 법도 있겠습니다.
Wrench에 대해 제대로 언급을 안 한 것 같아 잠깐 하고 넘어가자면, Wrench 는 (1) 우클릭으로 방향을 바꾸거나 (방향이 반대로 바뀌거나, 클릭한 방향을 축으로 회전됨 (2) Shift+우클릭으로 기계블록을 아이템화하거나 (3) Chassis 등에서 범위를 조절할 수 있습니다. Wrench 아이템 툴팁 혹은 각 장치마다 Wrench와 상호작용할 수 있다면 어떻게든 설명이 있을테니 참고하시면 됩니다.
Windmill Bearing
Windmill Bearing은 풍력발전에 쓰입니다. 설명을 드리기엔 보시다시피 고글만 끼면 안 돌아가는 이유 등을 자세히 설명해주기도 하고, Ponder Index로도 설명을 볼 수 있기 때문에 놓치기 쉬운 점이나 잡담이나 조금 남기고 가겠습니다. 자세한 수치는 따로 챕터에 모아두었으니 참고 바랍니다.
먼저 sail-like block에는 양털과 Sail이 포함되며 방향은 어떻게 하든 상관없습니다. 최소 8개를 연결해야 합니다. Sail block은 염료로 우클릭하여 염색이 가능하며, 우클릭 더블클릭을 하면 넓은 영역이 칠해집니다.
참고로 동력원은 회전 방향만 같으면 속력이 다른 것 끼리 연결한다고 터지진 않습니다. 겉으로 보이는 속도는 물론 바뀌기는 하는데요, Windmill은 원래 돌던 속력대로 움직입니다.
Chassis로도 물론 연결할 수 있는데, 범위를 잘못 설정하면 아래와 같은 참사가 벌어집니다. 멈추면 원래 위치로 갑니다. Chassis나 움직이는 플랫폼에 관련해서는 따로 글로 정리할 예정입니다.
돌아가는 블록들은 엔티티 취급이기에 겹쳐서 설치하는 것도 가능합니다. 이렇게 하면 엄청난 동력을 얻을 수 있지만, 규모가 커지면 렉은 감수하셔야 합니다.
Steam Engine
Steam Engine은 Ponder Index로 설치하는 방법이 잘 설명되어 있기 때문에 수치적인 부분 + 놓치기 쉬운 부분만 짚고 넘어가겠습니다.
펌프 설치 방향은 Shift 키를 누르면서 설치하면 바라보는 방향으로 흐르도록 설치되고, 아니면 다가오는 방향으로 흐르도록 설치됩니다. 원래는 옆의 기어를 어떻게 돌리냐에 따라 흐르는 방향이 바뀌었지만, 고려하기 복잡한지라 방향 고정이 된 것 같네요. 렌치로 방향은 바꿀 수 있습니다.
하나의 탱크마다 가능한 최대 출력은 탱크의 사이즈와 물 투입량, 그리고 열 공급에 따라 결정됩니다. 사이즈는 보통 1×1×N 에서 3×3×N으로 고정이고, 물은 쉽게 투입할 수 있다 보니 보통 열 공급량이 최대 가용 출력의 병목이 됩니다.
자세한 수식은 요약 부분에 정리되어 있습니다. 보시면 식이 복잡할 텐데요, 회전속력 등의 값이 굉장히 애매한 값으로 나오는 걸 막으려다 보니 그렇게 되지 않았나 싶습니다. (예를 들어, 효율이 1일 때는 최대속력인 64 RPM으로 돌아가지만, 조금만 낮아져도 최대 48 RPM이 됩니다. 애매하게 50 RPM 나오면 기어 등으로 변환하기 까다롭기에 그렇게 설정했다고 보입니다.)
동력의 전달 및 제어
동력의 전달 및 제어에 대해서는 Ponder Index의 Kinetic Blocks 부분을 참고하시면 됩니다.
추가: 버전 6에서는 Chain Conveyor도 추가되었습니다.
Create 모드의 동력 전달은 직관적인 편입니다. 축으로 연결되어 있으면 연결되어 돌아가고, 기어가 맞물리는 것 같으면 맞물려 돌아갑니다. 위 블록들이 아니더라도 동력을 사용하는 기계 중에서 톱니바퀴가 들어가 있으면 그 부분도 기어로 활용할 수 있습니다.
동력이 전달되는 부분은 특별히 코멘트할 내용이 많지는 않습니다만, 놓치기 쉬운 부분이나 어떻게 조합해서 사용하면 좋은지 정리드리겠습니다.
Shaft와 Cogwheel은 생긴 그대로 작동합니다. 보기에 거추장스러우시다면 Casing을 들고 우클릭하면 씌워집니다. 참고로 케이싱 텍스쳐는 Gearbox도 연결되지만, Portable Interface라던지 다른 장치에 들어있는 케이싱 텍스쳐는 연결되지 않습니다. Belt도 중간에 케이싱을 받침대처럼 끼워 넣을 수 있으며, 중간에 Shaft를 추가 삽입할 수도 있습니다. Belt를 연장하고 싶다면 벨트 아이템을 들고 벨트 끝을 우클릭하면 됩니다. 끝에 연결된 Shaft도 알아서 옮겨집니다.
벨트는 예전에는 Stress Impact가 있었지만 현재는 없습니다. 벨트는 세로로 세워 연결할 수도 있으며 (단, 세로 대각선은 불가능) 염색도 가능합니다. 벨트를 이용한 아이템 운송은 다른 글에서 다룰 예정입니다.
동력의 제어 부분은 따로 요약표 챕터를 만들어 두었습니다. 여기서는 놓치기 쉬운 부분만 몇 개 정리해 보겠습니다.
Encased Chain Drive는 중간에 회전축 방향을 90도 틀 수 있는 벨트 느낌으로 동력을 전달합니다. 따로 Stress 값은 없으며 중간에 틀어진 부분의 회전 방향은 다른 부분과 부호(+/-)가 동일합니다. 회전방향의 부호는 x, y, z 축이 증가하는 방향으로 오른쪽 엄지손가락을 내밀었을 때 주먹진 손이 감기는 방향이 +이며, 반대는 -입니다.
Gearbox는 아래와 같이 기어를 연결한 것처럼 방향을 전환해 줍니다. 좁은 공간에서 회전 방향을 반전시켜야 하거나 할 때 자주 쓰입니다. 렌치로 회전시켜서 수평/수직을 전환할 수 있습니다.
Chain Gearshift는 레드스톤 신호를 주어 연결된 Encased Chain Drive의 속력을 제어하는 장치입니다. 연결된 Encased Chain Drive의 각 부분마다 회전속력이 다를 수 있다는 말은 다르게 말하면 Encased Chain Drive의 각 부분에 속력을 다르게 주어도 터지지 않는다는 말이 됩니다. 이를 이용하면 속력이 다른 동력원을 자유롭게 연결할 수 있습니다. (회전방향은 같아야 함)
간단한 작동원리는 Ponder Index에 있습니다만, 이는 레드스톤 신호를 끄고 켰을 때와 같은 간단한 상황의 이야기이고, 약한 레드스톤 신호를 Analog Lever 등으로 주었을 때의 공식은 요약표에 정리해 두었습니다.
(추가) 버전 6에서 추가된 Chain Conveyor입니다. 벨트 대신 체인을 이용하는 느낌이라고 보시면 됩니다. 수평방향으로 연결되며, 너무 높지만 않으면 높이 좌표가 달라도 연결이 가능합니다. 하나의 Chain Conveyor에 네 쌍의 체인까지 연결이 가능하며, 구체적인 설정은 Config에서 변경 가능합니다.
아이템 운송 편에서 좀 더 다룰 것 같긴 합니다만, 버전 6에 추가된 상자를 달 수도 있고, 렌치를 들고 우클릭해서 탈 수도 있습니다. 갈림길에서는 현재 보고 있는 방향으로 이동합니다. 여러 체인들을 렌치로 빠르게 우클릭해 이동하다보면 타잔이 된 것 같은 기분을 느끼실 수 있습니다.
동력의 측정
동력의 측정은 Stressometer (Stress/부하 측정)와 Speedometer(회전 속도 측정)를 이용합니다. 고글을 낀 경우 자세한 정보가 나오지만, 그렇지 않은 경우 블록에 표시되는 게이지(바늘 부분이 돌아갑니다..!)와 비교기를 통해 출력되는 신호를 가지고 대략 어느 정도인지 확인할 수 있습니다.
출력되는 신호는 스트레스의 경우 (네트워크 전체의 스트레스) / (네트워크 최대 스트레스 용량)에 비례합니다. (소수점을 없애기 위해서 값을 올려줍니다)
회전 속도의 경우 medium (기본 30 RPM), fast (기본 100 RPM), max (기본 256 RPM)으로 나눠서 세 지점이 0.45, 0.75, 1.125가 되도록 선형적으로 근사하에 값을 얻은 뒤, 이 값에 14를 곱하고 값을 0과 15 사이로 제한시킨 뒤, 값을 올려서 값을 얻습니다.
1 PRM의 경우 1/30*0.45*14 = 0.21이므로 올려서 레드스톤 신호가 1이고, 60 RPM은 ((60–30)/(100–30)×(0.75–0.45) + 0.45) ×14 = 8.1이므로 9가 출력되며, 204 RPM은 [(204–100)/(256–100)×(1.125–0.75) + 0.75] × 14 = 14 이므로, 14만큼의 신호가 출력됩니다.
사실 동력을 측정하기보단 상황에 맞춰 Clutch나 Gearshift 등으로 동력을 제어하는 게 더 간단하기 때문에 그 부분을 더 많이 이용하게 되실 거라 생각합니다만, 자세히 정리해 둔 곳이 별로 없는 것 같아 다시 정리해 봤습니다.
동력의 생성 - 요약표
구분 | 회전 속력 | 기본 Stress Capacity | 비고 |
Water Wheel | 8 RPM | 256 SU (Stress Unit) | |
Large Water Wheel | 4 RPM | 512 SU | |
Windmill Bearing | 1-16 RPM | 512 SU / RPM | Sailable block이 8개 추가될 때마다 1 RPM 증가 |
Steam Engine | IF eff < 1, 16 x [1 + min{2, floor(4 x eff)}] RPM IF eff = 1, 64 (64 RPM MAX) |
Passive mode) 1024 x eff/ 4 SU / RPM Active mode) 1024 x eff / (1 + min{2, floor(4 x eff)}) SU / RPM |
eff : efficiency 보일러 탱크의 최대 Stress Capacity식과 efficiency 계산식은 아래 정리해 둠 |
Hand Crank | 8 RPM | 256 SU | 노력만 잘 하면 순간적으로 세 개도 동시에 운용가능 (768 SU) |
Copper Valve Handle | 8 RPM | 256 SU | 특정 각도로 회전 후 멈출 수 있음 (움직이는 플랫폼으로 건축할 때 유용할 듯?) |
* 하나의 Tank에서 Steam Engine을 연결해 얻을 수 있는 최대 Stress Capacity:
** level : 고글을 썼을 때 확인할 수 있음. 물 공급 레벨 (조금만 신경 쓰면 꽉 채워짐), 사이즈 (min(18, # Boiler Tank/4), 열 공급 레벨 (연결된 모닥불 혹은 블레이즈 버너의 열 레벨의 총합 -- 꺼졌을 때 혹은 모닥불일 때 0, 켜졌을 때 1, Super Heating 중일 때 2) 중 최소를 택함
(사이즈 조건을 충족하려면 2×2×18 혹은 3×3×8로만 연결해도 충분함. 열을 최대로 공급하려면 3×3으로 쌓았을 때 모두 Super heating이어야 함.)
** efficiency :
- passive 모드에서 1 / (8 × 연결된 엔진 수)
- active 모드에서 0 ≤ max{ (actual heat) / (연결된 엔진 수), 1} ≤ 1
- actual heat은 열 공급, 보일러 크기, 물 공급 레벨 중 최소
** 만약 열공급이 0보다 크다면 active, 0이라면 passive. 연결된 블레이즈 버너나 모닥불이 없다면 열공급은 -1로 설정되어 꺼짐.
동력의 제어 - 요약표
역할 | 비고 | |
Clutch | 레드스톤 신호 감지시 연결된 축의 동력 전달 중단 | |
Gearshift | 레드스톤 신호 감지시 연결된 축의 동력 방향 반전 | |
Adjustable Chain Gearshift | 레드스톤 신호에 따라 연결된 Encased Chain Drive와 Adjustable Chain Gearshift 속력 조절 | 속력 미세 조정 가능 |
Sequenced Gearshift | 특정 조건 발생시 특정 루틴에 따라 기어 속력, 방향 등을 조절할 수 있음 | |
Rotation Speed Controller | 설정해둔 속력으로 회전 속력 변환 | 간단한 속력 변환 (2배, 4배)등은 큰 기어와 작은 기어를 조합하는 것이 경제적 멈추지만 않으면 입력 회전 속력에 무관하게 작동 |
** Adjustable Chain Gearshift 관련 수식
(신호가 없으면 1, 신호가 최대면 2)
동력이 공급되는 쪽의 Adjustable Chain Gearshift의 modifier를 곱한 회전속력만큼 연결된 Encased Chain Drive와 Adjustable Chain Gearshift에 공급됨. 동력을 받는 쪽에도 신호가 주어진다면, 반대로 modifier만큼 나눠서 생각하면 됨.
만약 끄고 키는 신호만 고려한다면 더 간단함. 동력을 입력받는 Adjustable Chain Gearshift에 신호를 켜면 나머지는 2배의 속력으로 움직임. 만약에 여기에 신호가 켜져 있는 Adjustable Chain Gearshift를 연결한다면 2배 증가된 값에서 2배만큼 줄어들기에 원래 속력으로 움직임.
동력이 여러 곳으로 공급된다면 가장 큰 값을 따름.
QUIZ
1번. 기어가 다음과 같이 연결되어 있을 때, 위쪽의 모자이크된 부분의 숫자를 예측하시오. (단, Creative Motor의 속력은 4의 배수 RPM이며, 비교기와 연결된 블록들은 모두 speedometer임. 해당 그림에서는 동력 전달과 관련해서 크고 작은 기어와 Shaft, 그리고 millstone만 사용되었음.)
2번. 아래 Steam Boiler는 3x3으로 배열되어 있다. 보일러의 Stress Capacity가 다음과 같을 때, 보일러 밑면에 위치한 블레이즈 버너들의 가능한 상태의 조합을 하나 이상 제시하시오. (단, 물과 사이즈는 열 공급에 비해 충분하며, 보일러 밑에는 총 9개의 블레이즈 버너가 설치되어 있다)
3번. 어떤 공정을 돌리는 데에 15.24 RPM으로 돌아가는 벨트가 필요하다고 한다. 이를 Adjustable Chain Gearshift로 해결한다고 했을 때, 아래 두 아날로그 레버가 작동하는 신호의 세기를 각각 구하시오. 주어진 Creative Motor는 16 RPM으로 돌아가고 있다.
1번 풀이:
기어들을 잘 보면 속력이 입력된 회전속력의 4배가 나와야 하는 것을 알 수 있습니다. 잘 안 보이는 부분이 있긴 하지만, 어쨌든 비교기 신호가 켜져 있음을 통해 돌아가고 있다는 건 확실합니다. 일단 30 RPM일 때 신호가 6.3을 올린 7이 나와야 하므로, 신호가 4가 나온다는 말은 30 RPM이하라는 말입니다. ceil(x/30*0.45*15)=ceil(0.225 x)=4를 만족하는 4의 배수는 16 하나뿐이므로, Creative Motor의 회전속력은 16 RPM입니다. 따라서 가려진 부분은 64 RPM을 측정하고 있어야 하고, [(64-30)*(0.75-0.45)/(100-30)+0.45]*15=8.93으로, 소수점 첫째 자리에서 올림 하면 9입니다. 따라서 가려진 부분의 숫자는 9입니다.
2번 풀이:
물과 사이즈 효과를 무시해도 되므로, 147456 = efficiency*16*max{LEVEL,1}*1024입니다. 따라서 efficiency*max{LEVEL,1}=9입니다. 만약 LEVEL이 1이라면 efficiency가 9라는 말인데 이건 불가능하고, 따라서 열 레벨은 9가 됩니다. 열 레벨 9를 달성하려면 예를 들어 모두 일반 Heating인 상태가 가장 간단하겠네요. 위 스크린샷은 Super Heating 4개에 일반 Heating 1개로 두고 나머지는 꺼져있는 상태로 만들어서 찍긴 했습니다.
효율이 1이므로 당연히 엔진은 최고 속력인 64 RPM으로 돌아가는 중일 겁니다.
3번 풀이:
modifier 2개의 비율만 생각하면 됩니다. modifier_IN/modifier_OUT = 15.24/16 = 0.9525입니다. modifier는 1과 2 사이의 값으로 1/16의 배수입니다. 계산을 편리하게 하기 위해 16*modifier_X 값을 M_X라고 둬봅시다. 그러면 M_X는 16과 32 사이의 정수로, M_IN/M_OUT = 0.9525입니다. 이제부터 약간의 노가다가 들어가는데요, 0.9525는 분수로 표현하자면 20.00/21에 가깝습니다. 반대로 신호를 역산하면 입력부 신호는 3, 출력부 신호는 4가 됩니다.
Reference
- 예전에 올린 Create 0.3.2 '동력의 제어 및 측정' 공략글(https://stdcraft.tistory.com/entry/MinecraftCreate-032-3-%EB%8F%99%EB%A0%A5%EC%9D%98-%EC%A0%9C%EC%96%B4-%EB%B0%8F-%EC%B8%A1%EC%A0%95)
- 예전에 올린 Create 0.3.2 '동력의 생성과 전달' 공략글 (https://stdcraft.tistory.com/entry/MinecraftCreate-032-2-%EB%8F%99%EB%A0%A5%EC%9D%98-%EC%83%9D%EC%84%B1%EA%B3%BC-%EC%A0%84%EB%8B%AC-%EC%A0%9C%EC%96%B4)
- 예전에 올린 Create 0.5.0 '동력의 생성' 공략글 (https://stdcraft.tistory.com/entry/%EB%A7%88%EC%9D%B8%ED%81%AC%EB%9E%98%ED%94%84%ED%8A%B8-%EB%AA%A8%EB%93%9CCreate-050-2-%EB%8F%99%EB%A0%A5%EC%9D%98-%EC%83%9D%EC%84%B1)
- Create 모드 소스코드 중 SteamEngineBlockEntity.java (https://github.com/Creators-of-Create/Create/blob/ae185b875a6da0b81c1ef146c01a09504a636b6a/src/main/java/com/simibubi/create/content/kinetics/steamEngine/SteamEngineBlockEntity.java)
- Create 모드 소스코드 중 BoilerData.java (https://github.com/Creators-of-Create/Create/blob/mc1.20.1/dev/src/main/java/com/simibubi/create/content/fluids/tank/BoilerData.java)
- Create 모드 소스코드 중 PoweredShaftBlockEntity.java (https://github.com/Creators-of-Create/Create/blob/ae185b875a6da0b81c1ef146c01a09504a636b6a/src/main/java/com/simibubi/create/content/kinetics/steamEngine/PoweredShaftBlockEntity.java)
'MINECRAFT > Create 모드' 카테고리의 다른 글
[마인크래프트 Create 모드 공략] 4. 아이템 운송 및 저장 (기본편) (0) | 2025.02.16 |
---|---|
[마인크래프트 Create 모드 공략] 3. 고정된 기계장치들 (0) | 2025.02.16 |
[마인크래프트 Create 모드 공략] 1. Create 모드 기본기 쌓기 + 건축 관련 (0) | 2025.02.10 |
[마인크래프트 Create 모드 공략] 0. Create 모드 소개 (0) | 2025.02.09 |