마히커에서는 반달을 방지하기 위해 비 로그인 사용자의 편집을 제한하고 있습니다. 기여하시려면 로그인하세요.

RealTrainMod

마인크래프트 세계를 여행하는 히치하이커를 위한 안내서
이동: 둘러보기, 검색
RealTrainMod
개발자 ngt5479
웹사이트 RealTrainMod
현재 최신 버전 1.7.10.21 (5/17)
적용된 버전
 • 밤딸기 서버

1.7.10.21
한국어 번역 적용 해당 없음
위키 내 분류 분류:RealTrainMod


대하여

RealTrainMod는 일본의 모드 개발자 ngt5479이 개발한 철도 시뮬레이터와 유사하게 철도를 운용할 수 있는 플러그인이다. 이 모드에서 사용하는 열차는 바닐라 철길에서 사용이 불가능하며, 바닐라 마인카트도 이 모드의 철길에서 달릴 수 없다.

RTM 모델 만들기

이하 내용은 공식 사이트에서 배포하는 RTM 모델 제작 팩 메뉴얼의 내용을 번역, 수정한 것입니다. 위키문법이 적용되지 않은 원본을 보고 싶으신 분은 아래 링크를 이용해주세요.

시작에 앞서

RTM 모델 작성 팩을 다운로드해 주셔서 감사합니다.

  • 모델 및 텍스쳐의 배포는 자유롭게 해주세요.
  • 상업적 이용은 금지합니다.
  • 모든 책임은 사용자에게 있습니다.

모델 텍스쳐 만들기

RTM은 유저가 작성한 차량 모델이나 텍스쳐를 로드하는 기능이 있습니다. json 형식의 텍스트 파일에 모델과 텍스쳐 정보를 작성하여, 그것을 불러올 열차를 추가합니다. json파일 1개당 1개의 열차로 취급되기 때문에, 모델 파일이 하나라도 여러 텍스쳐를 만든다면 다른 열차로 추가할 수가 있습니다.

모델 만들기

모델은 Techne, Obj, Mqo의 3가지 형식을 가져올 수 있습니다.

Techne로 모델링하기

Techne라는 Minecraft 전용 모델링 소프트에서 만든 모델을 추가할 수 있습니다. 출력한 java파일은 그대로 쓸 수도 없고 컴파일할 필요가 있지만, 이럴 때에 Mod 제작 환경이 필요합니다. 잘 모르겠다고 하시는 분들은 java 파일을 일본 마인크래프트 포럼의 PM으로 보내주시면, 대신 만들어 드리겠습니다. (*역주: 모드 개발자에 대한 이야기)

모델의 사양
  • 차량 바닥 중심의 좌표는(0,0,0)
  • 높이:Y축 방향으로 바닥 위 약 44, 바닥 아래 14(대차의 높이가 18로 되어있기 때문에, 그것을 넘기지 않도록 합니다.)
  • 길이:Z축 방향으로 320 정도
  • 너비:X축 방향으로 46 정도
  • 팬터그래프 맨 위는 Y=-74
  • 16픽셀이 게임 내에서 1블록(1m)입니다. 그러므로, 실제 열차의 사이즈(m)x16으로 만들어 주시면 OK입니다.
  • 대차 모델은 별도로 불러오기 때문에, 대차 부분과 연결기는 필요 없습니다.
java파일의 컴파일
  • Mod 제작환경의 src 디렉토리 내에 assets 디렉토리와 mods 디렉토리를 배치합니다.
  • 이대로라면 모델 파일의 코드에 몇가지 에러가 있으므로, 이것을 수정합니다.
  • 모델 파일은 ModelTrainBase.class를 상속받습니다.
  • 일반적인 Model의 생성자에서 열리는 처리는 모두 init()로 보냅니다.
Obj・Mqo형식으로 모델링하기

3DCG에서 흔히 쓰이는 Obj 형식 또는 모델링 소프트 「Metasequoia」의 데이터 파일인 Mqo 형식으로 모델 파일을 추가 할 수 있습니다. Techne와 달리, 이쪽은 출력한 모델 파일을 그대로 사용합니다.

모델의 사양
  • 공통 사양
    • 실물과 똑같은 치수로 만들어주세요
    • 차량 바닥의 중심 좌표는(0,0,0)
    • 바닥 밑은 0.9m 정도(대차의 높이가 1.125m 로 되어있기 때문에, 그것을 넘지 않도록)
    • 팬터그래프 맨 위는 바닥에서 부터 4.625m
    • 대차 모델은 별도로 불러오기 때문에, 대차 부분과 연결기는 필요 없습니다.
    • 폴리곤은 삼각 또는 네모나게 할 필요가 있습니다.(다각형 폴리곤에는 대응하지 않습니다.)
    • 폴리곤 수 제한은 딱히 없지만, 많아지면 무겁게 됩니다.(당연하게도)
    • 창문 등을 반투명하게 하는 경우에는 안쪽을 완전히 투명하게 하지 않으면 철로와 다른 Entity가 차 안에서 보이지 않게 됩니다.
  • Obj의 사양
    • .mat파일을 Obj와 같은 장소에 넣으면 재질을 적용할 수 있습니다.
  • Mqo의 사양
    • Mqo를 사용할 경우,반드시 모든 면에 재질 설정 및 UV 매핑을 하세요. 한 곳이라도 빠트린다면 충돌합니다.

버튼용 텍스쳐 만들기

/minecraft/assets/minecraft/textures/train/kiha600/button_kiha600.png를 참고로 하여, 모델 선택 화면의 버튼용 텍스쳐를 그립시다.

  • 파일명은 「button_모델명.png」, 크기는 256x256(표시되는 부분은 왼쪽 160x32).
  • 게임 내에서의 표시는 다음과 같이 됩니다.

RTM select.png

음원 만들기

음원 추가는 선택사항입니다.

음원의 사양
  • 형식은 OGG입니다.
  • 비트레이트 지정은 따로 하지 않았습니다.
  • 주행음은 루프시에 자연스럽게 연결되도록 편집해 주세요.
  • 파일 이름은 「rtm_」을 접두사로 해주세요.
  • 파일 경로는 「/assets/sound_xxx/sounds」 입니다. (「xxx」는 임의의 문자열이고, 다른 모델팩에 덮어쓰지 않습니다)
  • 「/assets/sound_xxx/sounds.json」 에 음원 파일의 위치 등을 써둘 필요가 있습니다.
  • 음원 지정은 모델의 json 파일에 해주세요.
json 서식
  • 「testA.ogg」, 「testB.ogg」 라는 사운드를 「/assets/sound_xxx/sounds/train」 에 둔 경우의 「/assets/sound_xxx/sounds.json」 의 내용
{
  "train.testA": {
    "category": "neutral",
    "sounds": [
      "train/testA"
    ]
  },
  "train.testB": {
    "category": "neutral",
    "sounds": [
      "train/testB"
    ]
  }
}
열차 모델의 json 내에서 지정하는 방법
  • 위의 예에서 「testA.ogg」 로 지정하고 싶다면 "sound_xxx:train.testA" 라는 식으로 씁니다.

json 파일에 관하여

/mods/RTM/train/ModelTrain_kiha600.json을 참고로 하여, json 파일을 써봅시다.

json 파일 작성하기

ModelTrain_kiha600.json이나 ModelTrain_223h.json을 참고하세요. (잘 모르겠으면 복붙하고 일부를 다시 작성하시면 됩니다.)

  • Json에 새로운 항목을 추가한 경우에는 「,」(쉼표)를 잊어버리거나 「[ ]」(괄호)를 닫는 것을 잊어버리지 않게 주의하세요. Json 서식이 틀렸다면 그 열차는 불러올 수 없습니다.
  • 작성할 때 비 라틴 문자는 쓰지 마세요.
시작에 앞서
  • 이하의 작업은 반드시 해주세요
  • "trainName" 항목에는 다른 json과 겹치지 않는 이름을 써주세요(제작자 이름을 쓰면 좋을지도. 예:223h_ngt)
  • "trainModel2" 항목에서 모델의 설정을 합니다.
  • "buttonTexture" 항목에 버튼용 텍스쳐의 경로를 씁니다.
  • 이후의 항목은 임의로 합니다.
각 항목 해설

Json 문법을 미리 알아두면 좋습니다.

{
  "trainName": "223h",・・・모델명(他と被らないように)
  "trainType": "EC",・・・차량의 종류(EC:전차, DC:기관차, CC:콘테이너 차, TC:탱크 차)

  이하 항목 4개는 삭제했습니다.
  "trainModel": "ModelTrain_223h.class",
  "bogieModel": "ModelBogie.class",
  "trainTexture": "textures/train/223h/223h.png",
  "bogieTexture": "textures/train/bogie.png",

  "trainModel2": {・・・차체 모델 설정. 해당 항목에서 해설
      "modelFile": "ModelTrain_223h.class",
      "textures": [["default", "textures/train/223/223h.png", "Light"]]
  },
  "bogieModel2": {・・・대차 모델 설정, 쓰는 방법은 ↑와 동일
      "modelFile": "ModelBogie.class",
      "textures": [["default", "textures/train/bogie.png"]]
  },

  "buttonTexture": "textures/train/223h/button_223h.png",・・・선택 화면의 텍스쳐 파일
  "rollsignTexture": "textures/train/223h/rollsign_223h.png",・・・행선판의 텍스쳐 파일. 행선판에 대해서는 해당 항목에서 해설
  "rollsignNames": ["S-Rapid_Aboshi", "S-Rapid_Tsuruga", "S-Rapid_", "S-Rapid_", "S-Rapid_", "S-Rapid_", "Rapid_Kyoto", "Rapid_Himeji",
    "Rapid_", "Rapid_", "None", "None", "None", "None", "None", "None"],
  "rollsigns": [
    {
      "uv": [0.0, 0.28125, 0.0, 1.0],
      "pos": [[[0.3125, 2.625, 10.25], [0.3125, 2.375, 10.25], [-0.3125, 2.375, 10.25], [-0.3125, 2.625, 10.25]],
        [[1.5, 2.6875, -3.1875], [1.5, 2.4375, -3.1875], [1.5, 2.4375, -2.5625], [1.5, 2.6875, -2.5625]],
        [[-1.5, 2.6875, 3.1875], [-1.5, 2.4375, 3.1875], [-1.5, 2.4375, 2.5625], [-1.5, 2.6875, 2.5625]]],
      "doAnimation": true
    },
    {
      "uv": [0.65625, 1.0, 0.0, 1.0],
      "pos": [[[1.1875, 2.5625, 10.25], [1.1875, 2.375, 10.25], [0.5, 2.375, 10.25], [0.5, 2.5625, 10.25]]],
      "doAnimation": false
    },
    {
      "uv": [0.28125, 0.65625, 0.0, 1.0],
      "pos": [[[1.5, 2.6875, -4.125], [1.5, 2.4375, -4.125], [1.5, 2.4375, -3.375], [1.5, 2.6875, -3.375]],
        [[-1.5, 2.6875, 4.125], [-1.5, 2.4375, 4.125], [-1.5, 2.4375, 3.375], [-1.5, 2.6875, 3.375]]],
      "doAnimation": false
    }
  ],

  "sound_Stop": "",・・・정차중 소리
  "sound_S_A": "train.rtm_223_go-mid",・・・ 발차→가속 사운드
  "sound_Acceleration": "train.rtm_223_mid",・・・가속시의 사운드
  "sound_Deceleration": "train.rtm_223_mid",・・・감속시의 사운드
  "sound_D_S": "train.rtm_223_mid-stop",・・・ 감속→정차 사운드
  "sound_Horn": "train.rtm_223mh",・・・경적
  "sound_BrakeRelease": "train.rtm_223_release",・・・브레이크 완화음
  "sound_Announcement": [["KankuRapid", "rtm:train.rtm_223_kankuRapid"], ["Test", "test:train.test"]],・・・차내 방송 [name, sound]

  "soundScriptPath": "scripts/sound_223.js",・・・상기의 소리 항목 대신 JavaScript로 소리를 세세하게 제어할 수 있습니다. (7)에서 해설.

  "seatPos": [[12, 0, 90, 1], [12, 0, 70, 1], [12, 0, 50, 1], [12, 0, 30, 1],・・・좌석 위치 좌표는 1/16m를 1로 작성 [x, y, z, seat_type]
        [12, 0, -140, 1], [12, 0, -90, 1], [12, 0, -70, 1], [12, 0, -50, 1], [12, 0, -30, 1],・・・seat_type 0:없음(충돌 판정만) 1:모델 표시 있음 2:모델 표시 없음
        [-12, 0, 90, 1], [-12, 0, 70, 1], [-12, 0, 50, 1], [-12, 0, 30, 1],
        [-12, 0, -140, 1], [-12, 0, -90, 1], [-12, 0, -70, 1], [-12, 0, -50, 1], [-12, 0, -30, 1]],
  "playerPos": [[0.8, 0.25, 9.187], [-0.8, 0.25, -9.187]],・・・운전석 위치
  "bogiePos": [[0.0, 0.0, 7.125], [0.0, 0.0, -7.125]],・・・대차의 위치

  "maxSpeed": [0.40, 0.84, 1.08, 1.39, 1.67],・・・놋치별 속도 상한(1~5단)
  "renderLight": true,
  "rolling": 0.4,・・・커브에서 기울기 상태(0.0~1.0)
  "accelerateion" : 0.001736,・・・가속시( = N km/h/s x 0.0006944)
  "doCulling": "false",・・・단면표시(Obj와 Mqo 에서는 true 가 가벼워진다)
  "notDisplayCab": false・・・운전대를 화면에 표시하지 않음
}
모델 설정

모델 파일과 텍스쳐 정보를 이 항목에 작성합니다.

  "trainModel2": {
      "modelFile": "ModelTrain_223h.class",・・・모델 파일의 경로
      "textures": [["default", "textures/train/223/223h.png", "Light"]]・・・재질별 텍스쳐의 경로 & 기타 설정
  },
  • 초심자용 해설

"textures"에 대하여, 「재질이 뭐죠?」 라는 분은

"textures": [["default", "텍스쳐의 경로"]]

이것만 작성해도 괜찮습니다.

  • 상급자용 해설

Mqo와 Obj에서 복수의 재질을 사용하는 경우, 재질마다 텍스쳐와 묘사 옵션을 설정할 수 있습니다.

      "textures": [
          ["재질명1", "텍스쳐의 경로1", "옵션"],
          ["재질명2", "텍스쳐의 경로2", "옵션"]
      ]

옵션 항목에서는 투과 처리나 밝기 처리를 지정할 수 있습니다. 아무것도 할 필요가 없다면 이 항목은 필요 없습니다.

      "textures": [["재질명", "텍스쳐의 경로", "Light"]]・・・밝게(라이트 점등. 라이트용 텍스쳐에 대해서는 (4)에서)
      "textures": [["재질명", "텍스쳐의 경로", "AlphaBlend"]]・・・투과(반투명)
      "textures": [["재질명", "텍스쳐의 경로"]]・・・何もしない
  • 재질마다 텍스쳐를 쓰지 않는다면, 재질명을 "default"로 해주세요.
  • Java형식의 경우, 재질의 개념이 없기 때문에 "default"로 해주세요.
라이트 점등

위에서 라이트 점등을 설정한 경우, 반드시 라이트용 텍스쳐가 필요합니다.(없다면 이상하게 보입니다.) 파일 구성은 다음과 같습니다.

  • hoge.png : 일반 텍스쳐(라이트 부분은 투명하게)
  • hoge_light0.png : 소등시의 텍스쳐(라이트 이외에는 투명하게)
  • hoge_light1.png : 전조등 점등시의 텍스쳐(후미등 등 빛나지 않는 부분은 모두 투명하게)
  • hoge_light2.png : 미등 점등시의 텍스쳐(전조등 등 빛나지 않는 부분은 모두 투명하게)

이들 4개의 파일을 같은 곳에 두세요.

행선판 설정

행선판 추가는 조금 까다롭습니다. 다음은 Json에서 행선판에 관여하는 항목만 꺼낸 것입니다.

  "rollsignNames": ["S-Rapid_Aboshi", "S-Rapid_Tsuruga", "S-Rapid_", "S-Rapid_", "S-Rapid_", "S-Rapid_", "Rapid_Kyoto", "Rapid_Himeji",
    "Rapid_", "Rapid_", "None", "None", "None", "None", "None", "None"],・・・①
  "rollsigns": [
    {
      "uv": [0.0, 0.28125, 0.0, 1.0],・・・②
      "pos": [[[0.3125, 2.625, 10.25], [0.3125, 2.375, 10.25], [-0.3125, 2.375, 10.25], [-0.3125, 2.625, 10.25]],
        [[1.5, 2.6875, -3.1875], [1.5, 2.4375, -3.1875], [1.5, 2.4375, -2.5625], [1.5, 2.6875, -2.5625]],
        [[-1.5, 2.6875, 3.1875], [-1.5, 2.4375, 3.1875], [-1.5, 2.4375, 2.5625], [-1.5, 2.6875, 2.5625]]],・・・③
      "doAnimation": true・・・④
    },
    {
      "uv": [0.65625, 1.0, 0.0, 1.0],
      "pos": [[[1.1875, 2.5625, 10.25], [1.1875, 2.375, 10.25], [0.5, 2.375, 10.25], [0.5, 2.5625, 10.25]]],
      "doAnimation": false
    },
    {
      "uv": [0.28125, 0.65625, 0.0, 1.0],
      "pos": [[[1.5, 2.6875, -4.125], [1.5, 2.4375, -4.125], [1.5, 2.4375, -3.375], [1.5, 2.6875, -3.375]],
        [[-1.5, 2.6875, 4.125], [-1.5, 2.4375, 4.125], [-1.5, 2.4375, 3.375], [-1.5, 2.6875, 3.375]]],
      "doAnimation": false
    }
  ],

우선 행선판의 이름(행선&종별)을 설정합니다. 설정은 ①의 항목에서 합니다. 이름은 아무렇게나 하셔도 상관 없습니다. 전각 문자는 사용하지 마시고, 반각 숫자만 사용하여 주십시오. 참고로, 위의 예에서는 "종별_행선지" 라고 쓰고 있습니다.

다음으로 행선판의 위치, 크기 등을 설정합니다. ②는 텍스쳐의 어느 부분을 할당할지 설정합니다. 텍스쳐의 위에서의 위치는 옆을 U, 세로가 V로 좌표를 나타내어 왼쪽 위가(0.0, 0.0)、오른쪽 아래가(1.0, 1.0)으로 됩니다. Json 내에서는[U 의 최소치, U의 최대치, V의 최소치, V의 최대치] 라는 식으로 씁니다. 아래의 예는 [0.0, 0.3, 0.0, 1.0] 입니다. ③에서는 차량의 행선판의 위치를 설정합니다. 행선판의 네 귀퉁이의 좌표를 쓰고[[오른쪽 위의 x,y,z좌표],[오른쪽 아래],[왼쪽 아래],[왼쪽 위]] 라는식으로 나타냅니다. 아래의 예는[[[a1], [a2], [a3], [a4]], [[b1], [b2], [b3], [b4]]] 입니다.(예에서는 각 점의 x,y,z 수치는 생략했습니다.) 좌표의 단위는 미터로 하고 있습니다. ④에서는 행선판을 회전시킬지 설정합니다. LED 방식인 경우 false로 해주세요.

RTM rollsign.png

연기 설정

위의 「각 항목의 해설」에서는 쓰지 않았지만, 기관차 등에서 연기를 내고 싶은 경우에는 이하의 항목을 추가해주세요.

 "smoke": [[-1.0, 3.0, 9.0, "explode", 1, 2]]・・・[x, y, z, 파티클명, 양1, 양2, 속도]

x, y, z, : 연기를 내는 위치입니다. 차체 중앙을 기준으로 한 상대 좌표입니다.

  • 파티클명 : バニラのパーティクルのどれかを指定できます。名前はマイクラのWikiとかに載ってます。
  • 양1 : 정차시 연기의 양.
  • 양2 : 주행시 연기의 양.
  • 속도 : 연기의 XZ방향의 속도. 설정하지 않으면 기본값으로 적용됩니다.
음원 제어

상급자 전용입니다. 표준 음원 설정을 사용하지 않고 JavaScript를 쓰고, 속도마다 음원을 바꾸거나 할 수 있습니다.

  • 이 기능을 사용할 경우, "sound_Stop"에서"sound_D_S"까지의 주행음 항목은 필요 없습니다.
"soundScriptPath": "scripts/sound_223.js",・・・음원 제어에 사용할 파일의 JS 경로

이하에서는 JavaScript의 사용법에 대해 해설합니다. JavaScript의 기본적인 문법은 각자 알아봅시다.

  • JavaScript의 내용 ↓
function onUpdate(){・・・Tick마다 onUpdate()메소드가 호출됩니다.
    var speed = su.getSpeed();・・・su는 음성 제어를 담당하는 객체입니다. su.getSpeed()로 현재 속도를 가져옵니다.
    var maxSp = 120;
    var notch = su.getNotch();・・・현재의 놋치를 가져옵니다.
    
    if(notch == 0)
    {
        su.stopSound('rtm', 'train.223_s0');・・・지정된 음원을 정지합니다. 인수는('도메인(=sounds.json의 디렉토리)', '음원명')입니다.
        su.stopSound('rtm', 'train.223_s1');
        su.stopSound('rtm', 'train.223_s2');
    }
    else
    {
        if(speed > 0.0)
        {
            su.stopSound('rtm', 'train.223_air');

            if(speed < 20.0)
            {
                var vol = 1.0;
                if(speed < 5.0)
                {
                    vol = speed / 5.0;
                }
                else if(speed > 10.0)
                {
                    vol = (20.0 - speed) / 10.0;
                }
                su.playSound('rtm', 'train.223_s0', vol, 1.0);・・・음원을 재생합니다. 인수는('도메인', '음원명', 음량, 피치)입니다.
            }
            else
            {
                su.stopSound('rtm', 'train.223_s0');
            }

            var pitch = 1.0;
        
            if(speed >= 8.0)
            {
                var vol = 1.0;
                if(speed < 12.0)
                {
                    vol = (speed - 8.0) / 4.0;
                }
                pitch = (speed - 8.0) / (maxSp - 8.0) + 0.8;
                su.playSound('rtm', 'train.223_s1', vol, pitch);
            }
            else
            {
                su.stopSound('rtm', 'train.223_s1');
            }

            var inTunnel = su.inTunnel();・・・터널 내에 있는(윗부분이 불투명 블록으로 덮여 있음) 경우, true가 됩니다.

            if(speed >= 12.0)
            {
                pitch = (speed - 12.0) / (maxSp - 12.0) + 0.9;
                su.playSound('rtm', 'train.223_s2', 2.0, pitch);
                
                var vol = (speed - 12.0) / (maxSp - 12.0);
                if(inTunnel)
                {
                    su.stopSound('rtm', 'train.223_run');
                    su.playSound('rtm', 'train.223_run_tunnel', vol, 1.0);
                }
                else
                {
                    su.stopSound('rtm', 'train.223_run_tunnel');
                    su.playSound('rtm', 'train.223_run', vol, 1.0);
                }
            }
            else
            {
                su.stopSound('rtm', 'train.223_s2');
                su.stopSound('rtm', 'train.223_run_tunnel');
                su.stopSound('rtm', 'train.223_run');
            }
        }
        else
        {
            su.stopSound('rtm', 'train.223_s0');
            su.playSound('rtm', 'train.223_air', 1.0, 1.0);
        }
    }
}

su.playSound()는 이미 재생된 음원의 음량이나 피치를 바꾸는 데에도 사용합니다.

업데이트 알림 기능

게임에 접속했을 때 사용자에게 모델 팩의 갱신을 통지할 수 있습니다.

pack.json 작성

src 디렉토리 내의 pack.json을 참고로 하여 json 파일을 작성합니다. 모델 팩 내의 주소는 다음 항목에서 설명하겠습니다.

{
  "name":"TestHoge",・・・Mod명
  "homepage":"",・・・홈페이지 URL(현 단계에선 딱히 필요없음)
  "updateURL":"https://dl.dropboxusercontent.com/s/4dxg83j6rocd0ls/version.txt",・・・업데이트용 텍스트 URL. 이하 해설
  "version":"1.7.10.1"・・・버전
}
업데이트용 텍스트

최진 버전 확인을 위한 텍스트 파일입니다. 여기에 적힌 버전과 감지된 모델 팩 버전이 다른 경우, 통지를 합니다.

TestHoge:1.7.10.1・・・「모델 팩 이름:버전」과 같은 식으로 씁니다.
TestHogehoge:1.7.10.4・・・여러 모델 팩을 작성하는 경우엔 줄 바꿈을 해주세요.
텍스트 파일 업로드

위에서 작성한 텍스트 파일을 어딘가에 업로드 해둡시다. 브라우저에서 그 URL을 입력했을 때, 직접 표시가 되면 문제 없습니다. (DropBox 등을 사용하면 좋습니다. OneDrive 에서는 파일을 직접 표시할 수 없는 것 같으니 쓰지 마세요.)

모델 팩 구성

hoge.zip+-/mods/RTM/train/ModelTrain_hoge.class☆
           |              |
           |              +-/ModelTrain_hoge.json◎
           |
           +-/assets+-/minecraft+-/textures/train/hoge+-/hoge.png☆★◇
           |             |           |                                     |
           |             |           |                                     +-/button_hoge.png☆★◇
           |             |           |                                     |
           |             |           |                                     +-/rollsign_hoge.png☆★◇
           |             |           |
           |             |           +-/models/ModelTrain_hoge.obj★
           |             |
           |             +-/sound_hogehoge+-/sounds/train/rtm_hoge_stop.ogg□
           |                                       |
           |                                       +-/sounds.json□
           +-/pack.json■
  • ◎:필수
  • ☆:모델(Java형식)추가시에 필요
  • ★:모델(Obj・Mqo형식)추가시에 필요
  • ◇:텍스쳐만 추가할 때 필요
  • □:음성을 추가할 때 필요
  • ■:업데이트를 통지하고 싶을 때 필요
  • ZIP파일의 바로 아래에 mods 디렉토리와 assets 디렉토리(와 pack.json)가 오게 하십시오.
  • RTM은 멀티플레이시 서버에서 모델 팩을 다운로드하는 옵션이 있습니다. 이때, 파일 이름 앞에 "ModelPack_"이 붙은 것만 클라이언트로 다운로드 됩니다. 그러므로, 모델 팩을 공개할 때에는 이렇게 파일 이름을 붙이는 것을 추천합니다.

간판 텍스쳐 만들기

「간판」 블록에는 텍스쳐를 새로 추가할 수 있습니다. 추가하려면 그림 파일과 json 파일이 필요합니다.

텍스쳐 만들기

  • 특별한 방법은 없습니다.
  • 애니메이션화 하고 싶다면 아래 방향으로 그림을 이어가세요.

json 작성

  • 파일명은 "SignBoard_xxx.json"으로 합시다.(xxx는 임의)
{
	"texture": xxx",・・・텍스쳐 파일명(확장자 없음)
	"backTexture": 2,・・・0:뒷면 동일, 1:앞뒤 다름, 2:뒷면 텍스쳐 없음(측면과 같은 색)
	"height": 0.75,・・・높이(Minecraft 에서)
	"width": 2.25,・・・폭
	"depth":0.375,・・・깊이
	"frame": 1,・・・애니메이션 프레임 수(애니메이션이 아니면 1)
	"animationCycle": 1,・・・애니메이션 간격
	"color" : 0・・・측면 색
		"lightValue": -15・・・밝기(0~15:통상, -15~-1:RS 켜지면 밝아짐, -16:무작위 점멸)
}

복사용
{
	"texture": "",
	"backTexture": 2,
	"height": ,
	"width": ,
	"depth": ,
	"frame": 1,
	"animationCycle": 1,
	"color": 0,
		"lightValue": 15
}
높이에 관해서

마인크래프트의 통상적인 1블록의 크기로, 간판은 텍스쳐를 입히는 개념이기 때문에 이것보다 큰 크기여도 표시하는데에 문제는 없습니다. 이 수치는 비율 참고용으로 사용해주세요.

  • 1 - 16픽셀
  • 0.75 - 12픽셀
  • 0.5 - 8픽셀
  • 0.25 - 4픽셀

텍스쳐 팩 만들기

xxx.zip/assets/minecraft/textures/signboard+-/xxx.png
                                                               |
                                                              +-/SignBoard_xxx.json
           /mods/RTM

철도 표지 만들기

'철도 표지' 블록은 텍스쳐를 추가할 수 있습니다. 추가하기 위해서는 그림 파일이 필요합니다.

텍스쳐 만들기

  • 파일명은 「rrs_」를 접두사로 사용해주세요.
  • 그 밖에 필요한건 딱히 없습니다.

텍스쳐 팩 만들기

xxx.zip/assets/minecraft/textures/rrs/rrs_xxx.png

신호기 만들기

「신호기」블록에도 모델을 추가할 수 있습니다. 추가하는 데에는 모델 파일(.obj or .mqo)과 텍스쳐 파일, json 파일이 필요합니다.

텍스쳐 만들기

  • 텍스쳐는 본체용과 라이트용 두가지가 필요합니다.

json 작성

  • 파일 이름은 "ModelSignal_xxx.json"으로 해주세요.(xxx는 임의)
{
  "signalName": "4colorB",・・・이름. 중복되지 않도록
  "signalModel": "ModelSignal_4color.mqo",・・・모델 파일
  "signalTexture": "textures/signal/colorSignal.png",・・・본체용 텍스쳐 파일
  "lightTexture": "textures/signal/colorSignal_5cB.png",・・・라이트용 텍스쳐 파일
  "buttonTexture": "textures/signal/button_4cB.png",・・・선택 화면의 버튼용 텍스쳐 파일
  "modelPartsFixture": {
      "objects": ["pole", "body2"],・・・고정 도구의 파츠(모델링 시 각 객체의 이름)
      "pos": [0.0, 0.0, 0.0]
  },
  "modelPartsBody": {
      "objects": ["body", "light1", "light2", "light3", "light4"],・・・본체 파츠(라이트 부분 포함)
      "pos": [0.0, 0.0, 0.425]・・・본체 파츠의 회전축의 중심
  },
    "lights": [
        "S(1) I(0) P(light3)",・・・라이트의 상세 설정
        "S(3) I(0) P(light2)",・・・S는 점등하는 신호의 강도
        "S(4) I(0) P(light1 light4)",・・・P는 점등시키는 라이트의 파츠 이름(복수인 경우 공백으로 구분)
        "S(5) I(0) P(light1)"
        ],
    "rotateBody": true・・・본체를 회전할지 여부(RTM에서는 색등 신호에서 true, 중계 신호에서는 false로 하고 있다)
}

모델 팩 만들기

xxx.zip/assets/minecraft/models/xxx.obj
                                 |          |
                                 |          +-/json/ModelSignal_xxx.json
                                 +-/textures/signal/xxx.png
                                                          |
                                                          +-/xxx_light.png

화기 만들기

아이템 「40cm포」에도 모델을 추가할 수 있습니다. 추가하려면 모델 파일(.obj or .mqo)과 텍스쳐 파일, json 파일이 필요합니다.

텍스쳐 파일 작성

ぬう

json 작성

  • 파일명은 "ModelFirearm_xxx.json"으로 해주세요. (xxx는 임의)
{
  "firearmName": "127mmArtillery",・・・모델명(중복되지 않도록)
  "firearmModel": "ModelFirearm_127mmArtillery.obj",・・・모델 파일
  "firearmTexture": "textures/firearm/127mmArtillery.png",・・・텍스쳐 파일
  "buttonTexture": "textures/firearm/button_127mmArtillery.png",・・・선택 화면의 버튼용 텍스쳐 파일
  "modelPartsN": {
      "objects": ["base"],・・・회전하지 않는 파츠
      "pos": [0.0, 0.0, 0.0]
  },
  "modelPartsY": {
      "objects": ["body"],・・・Y축 회전하는 파츠
      "pos": [0.0, 0.5, 0.0]・・・회전축 위치
  },
  "modelPartsX": {
      "objects": ["shaft"],・・・X축 회전하는 파츠
      "pos": [0.0, 3.0, -0.25]
  },
    "modelPartsBarrel": {
      "objects": ["barrel", "barrel2"],・・・포신 파츠
      "pos": [0.0, 3.0, -0.25]
  },
  "muzzlePos": [0.0, 3.0, 7.0],・・・포구의 위치
    "playerPos": [0.0, 0.5, 0.0],・・・앉았을 때의 플레이어 위치
    "yaw": [180.0, -180.0],・・・선회각의 최대, 최소치
    "pitch": [80.0, -5.0],・・・양부각의 최대, 최소치
  "rotationSpeedY": 1.0,・・・선회 속도(1.0일때 마우스 움직임에 동조)
  "rotationSpeedX": 1.0,・・・상하 속도
    "recoil": 0.8,・・반동의 크기
    "ammoType": 0,
    "fpvMode": true・・・앉을 때 조준기 표시 여부
}

모델 팩 작성

xxx.zip/assets/minecraft/models/xxx.obj
                                 |          |
                                 |          +-/json/ModelFirearm_xxx.json
                                 +-/textures/firearm/xxx.png
                                                            |
                                                            +-/xxx_light.png

개발자 연락처