Files
BallisticsDocs/Documentation/JSON_Import_Export_Tool.md
2025-07-03 02:41:49 -07:00

4.1 KiB

EasyBallistics JSON Import/Export Tool

Overview

The EasyBallistics JSON Import/Export Tool allows you to import and export bullet properties and material response configurations as JSON files. This is useful for:

  • Sharing ballistic configurations between projects
  • Backing up and versioning ballistic data
  • Batch editing configurations outside of Unreal Engine
  • Integration with external ballistics calculators

Accessing the Tool

  1. In the Unreal Engine editor, go to Window > Ballistics JSON Import/Export
  2. This will open the JSON Import/Export tool window

Features

Bullet Properties Export/Import

Export: Creates a JSON file with all mathematical bullet properties including:

  • Basic properties (grain weight, diameter, length, bullet type, material)
  • Ballistic coefficients (G1/G7)
  • Penetration properties (hardness, energy thresholds, expansion)

Import: Loads bullet properties from a JSON file and can create new bullet property assets

Material Response Export/Import

Export: Creates a JSON file with material response settings including:

  • Artistic properties (penetration, ricochet settings)
  • Spalling properties (fragment generation)
  • Mathematical material properties (density, hardness, strength values)

Import: Loads material response configurations from JSON files

JSON Format Examples

Bullet Properties JSON Structure

{
  "GrainWeight": 55.0,
  "DiameterInches": 0.224,
  "LengthInches": 0.825,
  "BulletType": 0,
  "BulletMaterial": 3,
  "BallisticCoefficientG1": 0.151,
  "BallisticCoefficientG7": 0.076,
  "UseG7Model": false,
  "SectionalDensity": 0.0,
  "BulletHardness": 15.0,
  "PenetrationEnergyThreshold": 58.0,
  "ExpansionVelocityThreshold": 1800.0,
  "MaxExpansionMultiplier": 1.5
}

Material Response JSON Structure

{
  "PenTraceType": 0,
  "NeverPenetrate": false,
  "PenetrationDepthMultiplier": 1.0,
  "PenetrationNormalization": 0.0,
  "PenetrationNormalizationGrazing": 0.0,
  "PenetrationEntryAngleSpread": 0.0,
  "PenetrationExitAngleSpread": 0.0,
  "NeverRicochet": false,
  "RicochetProbabilityMultiplier": 1.0,
  "RicochetRestitution": 0.5,
  "RicochetRestitutionInfluence": 0.0,
  "RicochetFriction": 0.5,
  "RicochetFrictionInfluence": 0.0,
  "RicochetSpread": 0.0,
  "EnableSpalling": false,
  "SpallVelocityThreshold": 50000.0,
  "SpallFragmentCount": 3,
  "SpallSpreadAngle": 45.0,
  "SpallVelocityMultiplier": 0.3,
  "SpallMassMultiplier": 0.1,
  "UseMathematicalProperties": false,
  "MathematicalProperties": {
    "DensityGPerCm3": 7.85,
    "MaterialHardness": 200.0,
    "TensileStrengthMPa": 400.0,
    "YieldStrengthMPa": 250.0,
    "ElasticModulusGPa": 200.0,
    "BallisticLimitVelocity": 2000.0,
    "PerforationCoefficient": 1.0,
    "EnergyAbsorptionCoefficient": 0.7,
    "EnableMathematicalSpalling": false,
    "SpallStrengthMPa": 150.0,
    "CriticalStressFactor": 2.5,
    "FragmentVelocityEfficiency": 0.25,
    "AverageFragmentMassRatio": 0.08,
    "FragmentSizeExponent": -1.6,
    "MaxFragmentDensity": 50.0
  }
}

Enum Values Reference

BulletType

  • 0: Full Metal Jacket
  • 1: Hollow Point
  • 2: Soft Point
  • 3: Armor Piercing
  • 4: Armor Piercing Incendiary
  • 5: Tracer
  • 6: Match Grade
  • 7: Frangible
  • 8: Lead Round Nose
  • 9: Wadcutter
  • 10: Semi-Wadcutter
  • 11: Custom

BulletMaterial

  • 0: Lead
  • 1: Lead-Antimony
  • 2: Copper
  • 3: Copper Jacket
  • 4: Brass
  • 5: Steel
  • 6: Tungsten
  • 7: Bismuth
  • 8: Zinc
  • 9: Custom

PenTraceType

  • 0: Back Trace
  • 1: By Component
  • 2: Double Sided Geometry

Usage Tips

  1. Backup Before Import: Always backup your existing assets before importing new configurations
  2. Validation: The tool performs basic validation but always test imported configurations in your project
  3. Version Control: Include JSON files in your version control system for configuration tracking
  4. Batch Operations: You can modify multiple configurations by editing JSON files in bulk

Technical Notes

  • The tool uses Unreal Engine's JSON parsing system for reliability
  • All numeric values maintain their original precision
  • Boolean and enum values are preserved exactly
  • The tool supports the complete EasyBallistics property set