Технически корпусной пулемет можно включить в игре. Потребовалось всего 10 минут, чтобы сделать эффект

Технически хорошая новость: корпусной пулемет в игре есть, нужно лишь внести небольшие изменения, чтобы включить его, а модель War Thunder уже включает в себя этот узел стрельбы.

Но есть еще некоторые проблемы. Угол расположения пулемета на корпусе нельзя поворачивать. Узел привязки к огневому действию пулемета на корпус отсутствует, но пуля может быть выпущена из правильного положения. Это требует некоторой тонкой настройки со стороны команды разработчиков.

Я думаю, что это относительно легко реализовать технически, возможно, нужно только изменить некоторые модели и добавить код для управления углом пулемета.

Я открыл корпусной пулемет в кабине и выстрелил.

path/to/yourmod/entities.blk

t_34_1941_hull_mg_03_7_62mm_dt{
  _extends:t="tankgun_7_62mm_dt"
  gun__shootNodeName:t="bone_mg_body"

  "gun__shellsAmmo:array"{
    ammo:i=1449
    ammo:i=1449
  }
}

ussr_t_34_1941_driver_cockpit{
  _override:b=yes
  "cockpit__slitIsGun:list<b>"{
    slit:b=yes
  }
}

base_t_34_1941{
  _override:b=yes

  "turret_gun_flash_fx__flashNodes:shared:array"{
    node:t="emtr_gun_flame"
    node:t="emtr_mg_flame_01"
    node:t="emtr_fire_small_dmg_02"
  }

  "turret_gun_flash_fx__flashFx:shared:array"{
    fx:t="muzzle_ground_80mm"
    fx:t="muzzle_ground_8mm"
    fx:t="muzzle_ground_8mm"
  }

  "turret_gun_flash_fx__flashFxScale:shared:array"{
    scale:r=1.0
    scale:r=1.0
    scale:r=1.0
  }

  "turret_control__emitterNodes:shared:array"{
    node:t="bone_gun_barrel"
    node:t="bone_mg_gun_twin"
    node:t="bone_mg_body"
  }

  "turret_control__animVars:shared:array"{

    "vars:object"{
      curYawParamName:t="turret_01_yaw"
      curPitchParamName:t="gun_01_pitch"
      aimActiveParamName:t="aim_01_active"
      paramYawSpeed:t="turret_01_yaw_speed"
      paramYawSpeedMul:t="turret_01_yaw_mul"
      paramYawAccel:t="turret_01_yaw_accel"
      paramMinYawAngle:t="turret_01_min_yaw_angle"
      paramMaxYawAngle:t="turret_01_max_yaw_angle"
      paramMinPitchAngle:t="turret_01_min_pitch_angle"
      paramMaxPitchAngle:t="turret_01_max_pitch_angle"
      paramPitchSpeed:t="gun_01_pitch_speed"
      paramPitchSpeedMul:t="gun_01_pitch_mul"
      paramPitchAccel:t="gun_01_pitch_accel"
      wishYawParamName:t="gun_01_aim:targetYaw"
      wishPitchParamName:t="gun_01_aim:targetPitch"
      gunRecoilParamName:t="gun_01_recoil"
    }

    "vars:object"{
      curYawParamName:t="turret_02_yaw"
      curPitchParamName:t="gun_02_pitch"
    }

    "vars:object"{
      curYawParamName:t="turret_03_yaw"
      curPitchParamName:t="gun_03_pitch"
    }
  }

  "turret_control__turretInfo:shared:array"{

    "turretInfo:object"{
      turretName:t="turret_01"
      gun:t="t_34_1941_turret_01_76mm_f34+turret_with_several_types_of_shells+main_turret"
      barrelDm:t="gun_barrel"
      breechDm:t="cannon_breech"
      verDriveDm:t="drive_turret_v"
      horDriveDm:t="drive_turret_h"
      salt:i=1
    }

    "turretInfo:object"{
      turretName:t="turret_02"
      gun:t="t_34_1941_turret_02_7_62mm_dt"
      barrelDm:t="gun_barrel_01"
      salt:i=1
    }

    "turretInfo:object"{
      turretName:t="turret_03"
      gun:t="t_34_1941_hull_mg_03_7_62mm_dt"
      barrelDm:t="gun_barrel_01"
      salt:i=1
    }
  }
}


ussr_t_34_1941_common{
  _override:b=yes

  "vehicle_seats__seats:shared:array"{

    "seats:object"{
      name:t="main_gunner"
      locName:t="vehicle_seats/gunner"
      attachNode:t="gunner"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="gunner"
      cameraNodeName:t="bone_camera_gunner"
      cockpitTemplate:t="ussr_t_34_1941_gunner_cockpit"

      "turretNames:array"{
        turret:t="turret_01"
        turret:t="turret_02"
      }
    }

    "seats:object"{
      name:t="driver"
      locName:t="vehicle_seats/driver"
      seatOwnsEntityControl:b=yes
      attachNode:t="driver"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.25, 0.0]]
      seatComponent:t="isGunner"
      nextSeat:t="main_gunner"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="driver"
      cameraNodeName:t="bone_camera_driver"
      cockpitTemplate:t="ussr_t_34_1941_driver_cockpit"

      "turretNames:array"{
        turret:t="turret_03"
      }
    }

    "seats:object"{
      name:t="commander"
      attachNode:t="loader"
      shouldHideOwner:b=yes
      maxPosWithOpenHatch:r=1.2
      locName:t="vehicle_seats/commander"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.15, -0.5, 0.15]]
      seatComponent:t="isDriver"
      receiveDamageFromDMPart:t="loader"
      cockpitTemplate:t="ussr_t_34_1941_commander_cockpit"
      hatchRotationAxis:p3=1.4, 0.0, 0.0

      "hatchNodes:array"{
        node:t="hatch_01"
      }

      "loaderTurretNames:array"{
        turret:t="turret_01"
      }
    }

    "seats:object"{
      locName:t="vehicle_seats/radioman"
      attachNode:t="machine_gunner"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isPassenger"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="machine_gunner"
    }
  }

  "vehicle_seats__canAcquireControls:shared:object"{

    "driver:object"{
      movement:b=yes
      turrets:b=yes
      camera:b=yes
    }

    "main_gunner:object"{
      movement:b=yes
      turrets:b=yes
      camera:b=yes
    }

    "extra_gunner:object"{
      movement:b=yes
      turrets:b=yes
      camera:b=yes
    }

    "machinegunner:object"{
      movement:b=yes
      turrets:b=yes
    }

    "commander:object"{
      movement:b=yes
      turrets:b=yes
      camera:b=yes
    }

    "loader:object"{
      movement:b=yes
      turrets:b=yes
      camera:b=yes
    }
  }
}
24 лайка

попробуй добавить

  turret__pitchSpeed:r=35.0
  turret__limit:p4=-22.0, 22.0, -22.0, 22.0

UPD: я как сейчас ни пробовал, не получается, как только не пробовал
так что да, придётся ждать разработчиков…

3 лайка

Машина зверь! Форумный нагибатор. Разраб на пол ставки.
Короче, топ.
Я те по секрету скажу, ты ток никому не рассказывай…(ты там это, код игры потихоньку адаптируй, движок улиточный где-то надыбай, и делай энлистед для народа…).
Ну, а так продолжай в том же духе! Жаль что ты не разраб, поразбирать твои темы и игра процентов на 20 больше контентом обрастет.

2 лайка

хорошо было бы, если бы игрок мог управлять корпусным пулемётом во время игры за мехвода, а во время переключения в башню он уходил под контроль бота

1 лайк