【日本語訳】WeaponMechanics銃の作り方

12月 23, 2023

https://cjcrafter.gitbook.io/weaponmechanics/

内容間違ている可能性もあります。
詳しくはWikiをご覧ください

武器の名前設定

武器の名前の設定

武器名は必ず設定してください。

武器の名前:

武器のタイトルには、a->z、A->Z、0->9、アンダースコア _ 以外の文字は使えません。
ピリオドやダッシュ等は使えないです。

Info:

  Info:
    Weapon_Item: <Item Serializer>
    Weapon_Info_Display: # scroll down for more information
    Dual_Wield: # scroll down for more information
    Weapon_Get_Mechanics: <Mechanics>
    Weapon_Equip_Mechanics: <Mechanics>
    Weapon_Equip_Delay: <ticks>
    Weapon_Holster_Mechanics: <Mechanics>
    Cancel:
      Block_Interactions: <true/false>
      Item_Interactions: <true/false>
      Break_Blocks: <true/false>
      Drop_Item: <true/false>
      Swap_Hands: <true/false>
      Arm_Swing_Animation: <true/false>

Weapon_Item

武器として使うアイテムを設定します。

例:金のクワ …

Weapon_Info_Display:

武器の情報を設定します

    Weapon_Info_Display:
      Action_Bar:
        Message: "<gold>AK-47<firearm_state> <gray>«<gold><ammo_left><gray>»<gold><reload>"

Dual_Wield

武器の二刀流はデフォルトでは常に無効になっています。もし両手で同時に射撃できるようにしたい場合は設定します。

Weapon_Get_Mechanics

コマンド(/wm give)で武器を取得する際に発生するメカニクス。

基本設定不要です。(多分!)

Weapon_Equip_Mechanics

手持ちの武器を装備するときに発動するメカニクスを設定します。

基本設定不要です。(多分!)

Weapon_Equip_Delay

武器を装備してから射撃可能になるまでの時間(ティック単位)。

Weapon_Holster_Mechanics

武器を構える(手から離す)ときに発動するメカニクス。

基本設定不要です。(多分!)

Cancel:

Block_Interactions

  • ドアや宝箱などを開けるのをキャンセルします。

Item_Interactions

  • 土を耕す、丸太を切るなどの作業をキャンセルします。

Break_Blocks

  • ブロック破壊をキャンセルします。

Drop_Item

  • 銃を構えたまま落とす操作をキャンセルします。

Swap_Hands

  • メインハンドとオフハンドの持ち替えを解除します(Fキーでの切り替え)。

Arm_Swing_Animation

  • 他のプレイヤーの腕振りアニメーションをキャンセルします (パンチアニメーションと同様)。

このように設定するのがおすすめ!

Cancel:
  Drop_Item: true
  Swap_Hands: true
  Arm_Swing_Animation: true

Shootの設定

  Shoot:
    Trigger: <Trigger>
    Projectile_Speed: <speed>
    Projectiles_Per_Shot: <amount>
    Selective_Fire:
      Trigger: <Trigger>
      Default: <SINGLE/BURST/AUTO>
      Mechanics: <MechanicsSerializer>
    Delay_Between_Shots: <ticks>
    Fully_Automatic_Shots_Per_Second: <amount>
    Burst:
      Shots_Per_Burst: <amount>
      Ticks_Between_Each_Shot: <ticks>
    Consume_Item_On_Shoot: <true/false>
    Destroy_When_Empty: <true/false>
    Ammo_Per_Shot: <amount>
    Reset_Fall_Distance: <true/false>
    Spread:
      Spread_Image:
        Name: <path>
        Field_Of_View_Width: <degrees> 
        Field_Of_View_Height: <degrees> 
      Base_Spread: <base spread>
      Modify_Spread_When:
        Zooming: <amount> or <amount>%
        Sneaking: <amount> or <amount>%
        Standing: <amount> or <amount>%
        Walking: <amount> or <amount>%
        Riding: <amount> or <amount>%
        Sprinting: <amount> or <amount>%
        Dual_Wielding: <amount> or <amount>%
        Swimming: <amount> or <amount>%
        In_Midair: <amount> or <amount>%
        Gliding: <amount> or <amount>%
      Changing_Spread:
        Starting_Amount: <amount>
        Reset_Time: <ticks>
        Increase_Change_When:
          Always: <amount> or <amount>%
          Zooming: <amount> or <amount>%
          Sneaking: <amount> or <amount>%
          Standing: <amount> or <amount>%
          Walking: <amount> or <amount>%
          Riding: <amount> or <amount>%
          Sprinting: <amount> or <amount>%
          Dual_Wielding: <amount> or <amount>%
          Swimming: <amount> or <amount>%
          In_Midair: <amount> or <amount>%
          Gliding: <amount> or <amount>%
        Bounds:
          Reset_After_Reaching_Bound: <true/false>
          Minimum: <minimum spread>
          Maximum: <maximum spread>
    Recoil:
      Push_Time: <push time in millis>
      Recover_Time: <recover time in millis>
      Horizontal:
        - <horizontal recoil>
        - <etc.>
      Vertical:
        - <vertical recoil>
        - <etc.>
      Recoil_Pattern:
        Repeat_Pattern: <true/false>
        List:
          - <horizontal recoil>-<vertical recoil>-<chance to skip>%
          - <etc.>
      Modify_Recoil_When:
        Zooming: <amount> or <amount>%
        Sneaking: <amount> or <amount>%
        Standing: <amount> or <amount>%
        Walking: <amount> or <amount>%
        Riding: <amount> or <amount>%
        Sprinting: <amount> or <amount>%
        Dual_Wielding: <amount> or <amount>%
        Swimming: <amount> or <amount>%
        In_Midair: <amount> or <amount>%
        Gliding: <amount> or <amount>%
    Mechanics: <Mechanics>

Trigger

おそらく設定不要です。

よくわかりません

Projectile_Speed(玉のスピード)

Projectile_Speed: 設定したいスピード

玉のスピードを設定するものです。
100程度がおすすめです。

Projectiles_Per_Shot(一発ごとに発射する弾の数)

Projectiles_Per_Shot: 一度に発射する玉の数。

一発ごとに発射する弾の数。主にショットガンに使用されます。

Selective_Fire

シングル、バースト、フルオートを切り替えられます。

Trigger: Mechanics:は設定不要です

Delay_Between_Shots(発射間隔)

    Delay_Between_Shots: 発射間隔

銃の発射間隔が設定出来ます。
セミオートの銃の場合のみ設定します。

Fully_Automatic_Shots_Per_Second

フルーオートの場合の発射間隔です。

Burst

    Burst:
      Shots_Per_Burst: 一回に何発発射するか
      Ticks_Between_Each_Shot:  発射間隔

Consume_Item_On_Shoot: <true/false>

Consume_Item_On_Shoot: <true/false>

発砲後に武器を削除するにはtrueを入力します。

Destroy_When_Empty

Reset_Fall_Distance: <true/false>

マガジンが0になったときに武器を削除する場合はtrueを入力します。

Ammo_Per_Shot

一発あたりに消費する弾薬の量。

Reset_Fall_Distance

射撃後に落下距離をリセットして、エンティティが落下ダメージを受けないようにします。ジェットパックやロケットブーストに適しています。

Falseでいいと思う

Spread

Spread_Image

      Spread_Image:
        Name: <path>
        Field_Of_View_Width: <degrees> 
        Field_Of_View_Height: <degrees>

Spread_Imageは、サーバー内の「plugins -> WeaponMechanics -> spread_patterns」フォルダにある.pngファイルです。この機能を他のSpreadの設定と一緒に使って、Spreadをリアルに再現することができます。

  • Name(名前): 画像ファイルの名前(例: “circle.png")。
  • Field_Of_View_Width(視野角の幅): 画像の最大角度。例えば、これを45.0にすると、画像の端のピクセルは45度の角度になります。デフォルトは45.0です。
  • Field_Of_View_Height(視野角の高さ): Field_Of_View_Widthと同じ考え方ですが、垂直の角度に関係します。

正直意味不明でした。基本設定不要と思います。

Base_Spread: <base spread>

銃に適用される拡散を設定します。垂直および水平の両方に適用されます。

Modify_Spread_When

プレイヤーの行動に基づいて拡散の量を修正します。

  • Zooming(ズーミング) -> 武器をスコープしているとき
  • Sneaking(しゃがみ) -> プレイヤーがシフトキーを押しているとき
  • Standing(立っている) -> 射手が動いていないとき
  • Walking(歩いている) -> 射手が移動しているとき
  • Riding(乗っている) -> 射手がエンティティに乗っているとき
  • Sprinting(スプリント中) -> プレイヤーがスプリントしているとき
  • Dual_Wielding(デュアルウィールド) -> 射手が両手に武器を持っているとき
  • Swimming(泳いでいる) -> 射手が水中にいるとき
  • In_Midair(空中にいる) -> 射手が空中にいるとき
  • Gliding(滑空中) -> 射手がelytraを使って滑空しているとき
  Modify_Spread_When:
    Zooming: -5  # Increase accuracy when scoped
    Sneaking: -2
    Walking: 1.5
    Riding: 3.0
    Sprinting: 2.5
    Swimming: 1.5
    In_Midair: 4
    Gliding: 5

Changing_Spread

連続した各ショットの後で拡散を変更します。これにより、連打すれば銃が不正確になるように設定できます。

  • Starting_Amount(開始量): ベースの変更量。最初のショットを正確にしたい場合は0を使用します。
  • Reset_Time(リセット時間): スプレッドをStarting_Amountにリセットするためにかかる時間(ティック単位)。
  • Increase_Change_When(変更の増加条件): さっきのやつと同じです

Bounds

  • Minimum(最小): 許可される最小拡散値。
  • Maximum(最大): 許可される最大拡散値。

Reset_After_Reach_Bounds

  • trueを使用すると、Starting_Amountにリセットされます。
  • falseを使用すると、連打するプレイヤーに対して拡散が高いままになります。

Recoilの設定

Recoil:
  Push_Time: <push time in millis>
  Recover_Time: <recover time in millis>
  Horizontal:
    - <horizontal recoil>
    - <etc.>
  Vertical:
    - <vertical recoil>
    - <etc.>
  Recoil_Pattern:
    Repeat_Pattern: <true/false>
    List:
      - <horizontal recoil>-<vertical recoil>-<chance to skip>%
      - <etc.>

Push_Time: <push time in millis>

Push_Time: <push time in millis>

反動が最大の大きさに達するまでの時間(ミリ秒単位)。
即座に最大のリコイルにする場合は0を使用します(オートマチックライフルに推奨)。

Recover_Time: <recover time in millis>

Recover_Time: <recover time in millis>

プレーヤーのスタート時のヨー/ピッチに戻るまでの時間(ミリ秒)。

Horizontal:

  Horizontal:
    - <horizontal recoil>
    - <etc.>

水平方向の反動の設定
複数設定した場合はランダムに選ばれます。

左=負の数、右=正の数。値が<10が推奨されます。

Vertical:

  Vertical:
    - <vertical recoil>
    - <etc.>

縦方向の反動設定。

先ほどの設定と同じ感じです。

Recoil_Pattern:

リコイルのパターンが細かく設定出来ます。
面倒なので設定しなくでいいでしょう。

      Recoil_Pattern:
        Repeat_Pattern: <true/false>
        List:
          - <horizontal recoil>-<vertical recoil>-<chance to skip>%
          - <etc.>

スコープ設定

  Scope:
    Trigger: <Trigger>
    Night_Vision: <true/false>
    Zoom_Amount: <1-10>
    Mechanics: <Mechanics>
    Shoot_Delay_After_Scope: <ticks>

    Zoom_Stacking:
      Stacks: 
        - <1-10>
        - <1-10>
        - <etc.>
      Mechanics: <Mechanics>

Trigger: <Trigger>とMechanics: <Mechanics>は設定不要?

Night_Vision

覗いているときに暗視効果を与えるか

zoom_Amount:

拡大する倍率。小数も設定可

Zoom_Stacking:

段階的にズームが出来るようになります。

        - <2>
        - <5>
        - <7>

のように設定します。

Mechanics: <Mechanics>は設定多分不要です。

Projectile:

  Projectile: <path to another Projectile>
    Projectile_Settings:
      Type: <ProjectileType>  # an entity type, or "invisible"
      Gravity: <gravity>
      Minimum:
        Speed: <minimum speed of projectile>
        Remove_Projectile_On_Speed_Reached: <true/false>
      Maximum:
        Speed: <maximum speed of projectile>
        Remove_Projectile_On_Speed_Reached: <true/false>
      Drag:
        Base: <multiplier>
        In_Water: <multiplier>
        When_Raining_Or_Snowing: <multiplier>
      Disable_Entity_Collisions: <true/false>
      Maximum_Alive_Ticks: <ticks>
      Maximum_Travel_Distance: <distance>
      Size: <projectile size>

Projectile_Settings:

Type:

発射物はどのエンティティに見えるかを定義します。これは矢、雪玉、火の玉、エンドドラゴン、または希望する任意のエンティティタイプのように見えることがあります。発射物を非表示にするには、このオプションに「invisible」を使用します

雪→snowball
矢→arrow
火→fireball

Gravity: <gravity>

意味不明だったので翻訳です。すいません。

これは垂直加速度を定義しています。正の数は時間と共に投射物を下に落とし、負の数は時間と共に投射物を上に浮かび上がらせます。数字はブロック/秒^2単位です。バニラのMinecraftではここに10が使われています。地球の重力は約9.8で、月の重力は約1.62です。0を使用すると、投射物はまっすぐに「浮かび上がります」。

Minimum:

Speed: <minimum speed of projectile>

球の最小速度?

Remove_Projectile

最小速度に達したときに球をを削除するかどうか。 true = 最小速度に達したときに球は削除されます。

Speed:

Speed: <maximum speed of projectile>

球の最高速度

Remove_Projectile_On_Speed_Reached: <true/false>

最大速度に達したときに球を削除するかどうか。

Drag:

これを使用すると、毎ティックごとに発射物の速度を数で乗算できます。発射物を減速させる場合、0.0から1.0の間の数値を使用します。。1.0の場合速度が一定に保たれ、1.0より大きい数値を使用すると時間とともに速度が増加します。

Base
速度を毎ティックごとに乗算する量です。

In_Water
水中 発射物が液体にいるときに速度を乗算する量です。

When_Raining_Or_Snowing
雨が降っているか雪が降っているとき 雨が降っているか雪が降っているときに速度を乗算する量です。

Disable_Entity_Collisions

これをtrueに設定すると、球はエンティティと衝突しなくなります。

Maximum_Alive_Ticks

球が生存できる最大時間をティック単位で定義します。 デフォルトは600で、30秒に相当します。

Maximum_Travel_Distance

この弾が削除される前に進むことができる最大距離を定義します。

Size


ヒット検出に使用される弾のサイズを定義します。このサイズは各方向に追加されます。つまり、0.5はサイズが1x1x1と同じです。

デフォルトは0.1です。例えば、バニラでは矢や雪玉のこの値は0.3に設定されています。

Reload設定

  Reload:
    Trigger: <Trigger>
    Magazine_Size: <amount>
    Ammo_Per_Reload: <amount>
    Unload_Ammo_On_Reload: <true/false>
    Reload_Duration: <ticks>
    Shoot_Delay_After_Reload: <ticks>
    Start_Mechanics: <Mechanics>
    Finish_Mechanics: <Mechanics>
    Ammo: 
      Out_Of_Ammo_Mechanics: <Mechanics>
      Ammo_Switch_Trigger: <Trigger>
      Ammo_Switch_Mechanics: 
      Ammos:
        - <ammo1>
        - <ammo2>

Trigger: <Trigger>

Trigger: <Trigger>

基本設定不要です。(多分)

Magazine_Size: <amount>

Magazine_Size: <amount>

装弾数の設定です。

Ammo_Per_Reload: <amount>

弾丸を個別にリロードする設定です。

個別にリロードをする必要がなければ設定不要です。

Unload_Ammo_On_Reload: <true/false>

再装填の際に武器から残っている弾薬を取り出して、設定されていればそれをプレイヤーに返すかどうかの設定です。

Reload_Duration: <ticks>

リロードにかかる時間 (ティック単位)

Shoot_Delay_After_Reload: <ticks>

リロード後、銃が発砲できるようになるまでの時間 (ティック単位)。

Start_Mechanics: <Mechanics>

武器のリロードが開始されるときにトリガーを設定。基本設定不要です。(多分

Finish_Mechanics: <Mechanics>

武器のリロードが完了したときのトリガーを設定。基本設定不要です。(多分

Ammo:

Out_Of_Ammo_Mechanics: <Mechanics>

射撃しようとしたが武器が空だったときのトリガーを設定。基本設定不要です。(多分

Ammo_Switch_Trigger: <Trigger>

基本設定不要です。(多分

ダメージ設定

  Damage:
    Base_Damage: <amount>
    Base_Explosion_Damage: <amount>
    Fire_Ticks: <ticks>
    Enable_Owner_Immunity: <true/false>
    Ignore_Teams: <true/false>
    Armor_Damage: <Integer>
    Mechanics: <Mechanics>
    Head:
      Bonus_Damage: <amount>
      Mechanics: <Mechanics>
    Body:
      Bonus_Damage: <amount>
      Mechanics: <Mechanics>
    Arms:
      Bonus_Damage: <amount>
      Mechanics: <Mechanics>
    Legs:
      Bonus_Damage: <amount>
      Mechanics: <Mechanics>
    Feet:
      Bonus_Damage: <amount>
      Mechanics: <Mechanics>
    Backstab:
      Bonus_Damage: <amount>
      Mechanics: <Mechanics>
    Critical_Hit:
      Chance: <1-100>
      Bonus_Damage: <amount>
      Mechanics: <Mechanics>
    Kill:
      Mechanics: <Mechanics>
    Dropoff:
    - <travel distance> <damage amount>

Base_Damage: <amount>

基礎ダメージの設定です。

Base_Explosion_Damage: <amount>

爆発で与えるダメージの量

Fire_Ticks: <ticks>

被弾したエンティティが燃える時間

Fire_Ticks: 100の場合5秒間燃えます。

Enable_Owner_Immunity: <true/false>

trueの場合発射した人が、自分の玉でダメージを受けないようになります。

Ignore_Teams

フレンドリーファイアを有効にするには Ignore_Teams: true を使います。

Armor_Damage: <Integer>

装備に与えるダメージを設定します。

1か2がおすすめです。

Mechanics: <Mechanics>

多分設定不要です。

部位の設定

    Head:
      Bonus_Damage: <amount>
      Mechanics: <Mechanics>
    Body:
      Bonus_Damage: <amount>
      Mechanics: <Mechanics>
    Arms:
      Bonus_Damage: <amount>
      Mechanics: <Mechanics>
    Legs:
      Bonus_Damage: <amount>
      Mechanics: <Mechanics>
    Feet:
      Bonus_Damage: <amount>
      Mechanics: <Mechanics>
    Backstab:
      Bonus_Damage: <amount>
      Mechanics: <Mechanics>
    Critical_Hit:
      Chance: <1-100>
      Bonus_Damage: <amount>
      Mechanics: <Mechanics>
    Kill:
      Mechanics: <Mechanics>

Bonus_Damageは追加のダメージを設定します。
Backstabは背後からのキルです。

Critical_HitのChanceは確率(1~100)
Bonus_Damageは追加するダメージです。

Mechanicsについては、

Dropoff

弾丸の移動距離によってダメージがどの程度増減するかを設定します。

damage amountではダメージ量を設定します
ダメージ増加は+減少は-です。

Firearm_Action

  Firearm_Action:
    Type: <FirearmType>
    Firearm_Action_Frequency: <use every x amount of shots>
    Open:
      Time: <ticks>
      Mechanics: <Mechanics>
    Close:
      Time: <ticks>
      Mechanics: <Mechanics>

Type

武器のタイプを設定します。

  • SLIDE
  • REVOLVER
  • PUMP
  • LEVER

の4種類です。

SLIDEが一般的な銃の設定です。

Firearm_Action_Frequency

銃器アクションの使用頻度を定義します。
射撃後の現在の弾薬量がFirearm_Action_Frequencyで割り切れる場合、銃器アクションが発動すします。

例えば、Firearm_Action_Frequency: 2の場合、武器を撃ち、マガジンの弾薬残量が18になると銃器アクションが発動します。。弾薬の残量が9の場合、銃器アクションは発動しないです。

Open:

Time: <ticks>

武器を開くのにかかる時間 (ティック単位)です。

Mechanics: <Mechanics>

は設定不要?

Close

Time: <ticks>

武器を閉じるのにかかる時間 (ティック単位)です。

Mechanics: <Mechanics>

は設定不要?