diff --git a/examples/omi_physics_body/gltf/ball_pit.gltf b/examples/omi_physics_body/gltf/ball_pit.gltf new file mode 100644 index 0000000..4827f40 --- /dev/null +++ b/examples/omi_physics_body/gltf/ball_pit.gltf @@ -0,0 +1,992 @@ +{ + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [4, 0.05, 4], + "min": [-4, -0.05, -4], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [1, 0, 1, 1], + "min": [-1, -0.000015, -1, 1], + "normalized": false, + "type": "VEC4" + }, + { + "bufferView": 2, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [1, 1, 1], + "min": [-1, -1, -1], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 3, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [1, 1], + "min": [0, 0], + "normalized": false, + "type": "VEC2" + }, + { + "bufferView": 4, + "byteOffset": 0, + "componentType": 5125, + "count": 36, + "max": [23], + "min": [0], + "normalized": false, + "type": "SCALAR" + }, + { + "bufferView": 5, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [0.05, 0.5, 4], + "min": [-0.05, -0.5, -4], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 6, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [1, 0, 1, 1], + "min": [-1, -0.000015, -1, 1], + "normalized": false, + "type": "VEC4" + }, + { + "bufferView": 7, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [1, 1, 1], + "min": [-1, -1, -1], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 8, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [1, 1], + "min": [0, 0], + "normalized": false, + "type": "VEC2" + }, + { + "bufferView": 9, + "byteOffset": 0, + "componentType": 5125, + "count": 36, + "max": [23], + "min": [0], + "normalized": false, + "type": "SCALAR" + }, + { + "bufferView": 10, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [0.05, 0.5, 4], + "min": [-0.05, -0.5, -4], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 11, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [1, 0, 1, 1], + "min": [-1, -0.000015, -1, 1], + "normalized": false, + "type": "VEC4" + }, + { + "bufferView": 12, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [1, 1, 1], + "min": [-1, -1, -1], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 13, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [1, 1], + "min": [0, 0], + "normalized": false, + "type": "VEC2" + }, + { + "bufferView": 14, + "byteOffset": 0, + "componentType": 5125, + "count": 36, + "max": [23], + "min": [0], + "normalized": false, + "type": "SCALAR" + }, + { + "bufferView": 15, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [4, 0.5, 0.05], + "min": [-4, -0.5, -0.05], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 16, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [1, 0, 1, 1], + "min": [-1, -0.000015, -1, 1], + "normalized": false, + "type": "VEC4" + }, + { + "bufferView": 17, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [1, 1, 1], + "min": [-1, -1, -1], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 18, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [1, 1], + "min": [0, 0], + "normalized": false, + "type": "VEC2" + }, + { + "bufferView": 19, + "byteOffset": 0, + "componentType": 5125, + "count": 36, + "max": [23], + "min": [0], + "normalized": false, + "type": "SCALAR" + }, + { + "bufferView": 20, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [0.499434, 0.5, 0.499434], + "min": [-0.499434, -0.5, -0.499434], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 21, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [1, 0, 1, 1], + "min": [-1, -0.000022, -1, 1], + "normalized": false, + "type": "VEC4" + }, + { + "bufferView": 22, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [0.998868, 1, 0.998868], + "min": [-0.998869, -1, -0.998867], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 23, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [1, 1], + "min": [0, 0], + "normalized": false, + "type": "VEC2" + }, + { + "bufferView": 24, + "byteOffset": 0, + "componentType": 5125, + "count": 12672, + "max": [2209], + "min": [0], + "normalized": false, + "type": "SCALAR" + }, + { + "bufferView": 25, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [0.499434, 0.5, 0.499434], + "min": [-0.499434, -0.5, -0.499434], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 26, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [1, 0, 1, 1], + "min": [-1, -0.000022, -1, 1], + "normalized": false, + "type": "VEC4" + }, + { + "bufferView": 27, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [0.998868, 1, 0.998868], + "min": [-0.998869, -1, -0.998867], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 28, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [1, 1], + "min": [0, 0], + "normalized": false, + "type": "VEC2" + }, + { + "bufferView": 29, + "byteOffset": 0, + "componentType": 5125, + "count": 12672, + "max": [2209], + "min": [0], + "normalized": false, + "type": "SCALAR" + }, + { + "bufferView": 30, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [0.499434, 0.5, 0.499434], + "min": [-0.499434, -0.5, -0.499434], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 31, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [1, 0, 1, 1], + "min": [-1, -0.000022, -1, 1], + "normalized": false, + "type": "VEC4" + }, + { + "bufferView": 32, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [0.998868, 1, 0.998868], + "min": [-0.998869, -1, -0.998867], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 33, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [1, 1], + "min": [0, 0], + "normalized": false, + "type": "VEC2" + }, + { + "bufferView": 34, + "byteOffset": 0, + "componentType": 5125, + "count": 12672, + "max": [2209], + "min": [0], + "normalized": false, + "type": "SCALAR" + }, + { + "bufferView": 35, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [0.499434, 0.5, 0.499434], + "min": [-0.499434, -0.5, -0.499434], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 36, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [1, 0, 1, 1], + "min": [-1, -0.000022, -1, 1], + "normalized": false, + "type": "VEC4" + }, + { + "bufferView": 37, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [0.998868, 1, 0.998868], + "min": [-0.998869, -1, -0.998867], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 38, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [1, 1], + "min": [0, 0], + "normalized": false, + "type": "VEC2" + }, + { + "bufferView": 39, + "byteOffset": 0, + "componentType": 5125, + "count": 12672, + "max": [2209], + "min": [0], + "normalized": false, + "type": "SCALAR" + }, + { + "bufferView": 40, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [0.499434, 0.5, 0.499434], + "min": [-0.499434, -0.5, -0.499434], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 41, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [1, 0, 1, 1], + "min": [-1, -0.000022, -1, 1], + "normalized": false, + "type": "VEC4" + }, + { + "bufferView": 42, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [0.998868, 1, 0.998868], + "min": [-0.998869, -1, -0.998867], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 43, + "byteOffset": 0, + "componentType": 5126, + "count": 2210, + "max": [1, 1], + "min": [0, 0], + "normalized": false, + "type": "VEC2" + }, + { + "bufferView": 44, + "byteOffset": 0, + "componentType": 5125, + "count": 12672, + "max": [2209], + "min": [0], + "normalized": false, + "type": "SCALAR" + } + ], + "asset": { + "generator": "Godot Engine v4.1.rc.custom_build@3cd470e0cbabdb3821ed23a704c918aa50e848d7", + "version": "2.0" + }, + "bufferViews": [ + { "buffer": 0, "byteLength": 288, "byteOffset": 0 }, + { "buffer": 0, "byteLength": 384, "byteOffset": 288 }, + { "buffer": 0, "byteLength": 288, "byteOffset": 672 }, + { "buffer": 0, "byteLength": 192, "byteOffset": 960 }, + { "buffer": 0, "byteLength": 144, "byteOffset": 1152 }, + { "buffer": 0, "byteLength": 288, "byteOffset": 1296 }, + { "buffer": 0, "byteLength": 384, "byteOffset": 1584 }, + { "buffer": 0, "byteLength": 288, "byteOffset": 1968 }, + { "buffer": 0, "byteLength": 192, "byteOffset": 2256 }, + { "buffer": 0, "byteLength": 144, "byteOffset": 2448 }, + { "buffer": 0, "byteLength": 288, "byteOffset": 2592 }, + { "buffer": 0, "byteLength": 384, "byteOffset": 2880 }, + { "buffer": 0, "byteLength": 288, "byteOffset": 3264 }, + { "buffer": 0, "byteLength": 192, "byteOffset": 3552 }, + { "buffer": 0, "byteLength": 144, "byteOffset": 3744 }, + { "buffer": 0, "byteLength": 288, "byteOffset": 3888 }, + { "buffer": 0, "byteLength": 384, "byteOffset": 4176 }, + { "buffer": 0, "byteLength": 288, "byteOffset": 4560 }, + { "buffer": 0, "byteLength": 192, "byteOffset": 4848 }, + { "buffer": 0, "byteLength": 144, "byteOffset": 5040 }, + { "buffer": 0, "byteLength": 26520, "byteOffset": 5184 }, + { "buffer": 0, "byteLength": 35360, "byteOffset": 31704 }, + { "buffer": 0, "byteLength": 26520, "byteOffset": 67064 }, + { "buffer": 0, "byteLength": 17680, "byteOffset": 93584 }, + { "buffer": 0, "byteLength": 50688, "byteOffset": 111264 }, + { "buffer": 0, "byteLength": 26520, "byteOffset": 161952 }, + { "buffer": 0, "byteLength": 35360, "byteOffset": 188472 }, + { "buffer": 0, "byteLength": 26520, "byteOffset": 223832 }, + { "buffer": 0, "byteLength": 17680, "byteOffset": 250352 }, + { "buffer": 0, "byteLength": 50688, "byteOffset": 268032 }, + { "buffer": 0, "byteLength": 26520, "byteOffset": 318720 }, + { "buffer": 0, "byteLength": 35360, "byteOffset": 345240 }, + { "buffer": 0, "byteLength": 26520, "byteOffset": 380600 }, + { "buffer": 0, "byteLength": 17680, "byteOffset": 407120 }, + { "buffer": 0, "byteLength": 50688, "byteOffset": 424800 }, + { "buffer": 0, "byteLength": 26520, "byteOffset": 475488 }, + { "buffer": 0, "byteLength": 35360, "byteOffset": 502008 }, + { "buffer": 0, "byteLength": 26520, "byteOffset": 537368 }, + { "buffer": 0, "byteLength": 17680, "byteOffset": 563888 }, + { "buffer": 0, "byteLength": 50688, "byteOffset": 581568 }, + { "buffer": 0, "byteLength": 26520, "byteOffset": 632256 }, + { "buffer": 0, "byteLength": 35360, "byteOffset": 658776 }, + { "buffer": 0, "byteLength": 26520, "byteOffset": 694136 }, + { "buffer": 0, "byteLength": 17680, "byteOffset": 720656 }, + { "buffer": 0, "byteLength": 50688, "byteOffset": 738336 } + ], + "buffers": [{ "byteLength": 789024, "uri": "ball_pit0.bin" }], + "cameras": [ + { + "perspective": { + "yfov": 1.30899691581726, + "zfar": 4000, + "znear": 0.0500000007450581 + }, + "type": "perspective" + } + ], + "extensions": { + "OMI_physics_shape": { + "shapes": [ + { + "type": "box", + "box": { + "size": [8, 0.1, 8] + } + }, + { + "type": "box", + "box": { + "size": [0.1, 1, 8] + } + }, + { + "type": "box", + "box": { + "size": [8, 1, 0.1] + } + }, + { + "type": "sphere", + "sphere": { + "radius": 0.5 + } + } + ] + } + }, + "extensionsUsed": [ + "OMI_physics_body", + "OMI_physics_shape" + ], + "materials": [ + { + "extensions": {}, + "pbrMetallicRoughness": { + "baseColorFactor": [1, 1, 1, 1], + "metallicFactor": 0, + "roughnessFactor": 1 + } + }, + { + "extensions": {}, + "pbrMetallicRoughness": { + "baseColorFactor": [1, 1, 1, 1], + "metallicFactor": 0, + "roughnessFactor": 1 + } + }, + { + "extensions": {}, + "pbrMetallicRoughness": { + "baseColorFactor": [1, 1, 1, 1], + "metallicFactor": 0, + "roughnessFactor": 1 + } + }, + { + "extensions": {}, + "pbrMetallicRoughness": { + "baseColorFactor": [1, 1, 1, 1], + "metallicFactor": 0, + "roughnessFactor": 1 + } + }, + { + "extensions": {}, + "pbrMetallicRoughness": { + "baseColorFactor": [1, 1, 1, 1], + "metallicFactor": 0, + "roughnessFactor": 1 + } + }, + { + "extensions": {}, + "pbrMetallicRoughness": { + "baseColorFactor": [1, 1, 1, 1], + "metallicFactor": 0, + "roughnessFactor": 1 + } + }, + { + "extensions": {}, + "pbrMetallicRoughness": { + "baseColorFactor": [1, 1, 1, 1], + "metallicFactor": 0, + "roughnessFactor": 1 + } + }, + { + "extensions": {}, + "pbrMetallicRoughness": { + "baseColorFactor": [1, 1, 1, 1], + "metallicFactor": 0, + "roughnessFactor": 1 + } + }, + { + "extensions": {}, + "pbrMetallicRoughness": { + "baseColorFactor": [1, 1, 1, 1], + "metallicFactor": 0, + "roughnessFactor": 1 + } + } + ], + "meshes": [ + { + "extras": { + "targetNames": [] + }, + "primitives": [ + { + "attributes": { + "NORMAL": 2, + "POSITION": 0, + "TANGENT": 1, + "TEXCOORD_0": 3 + }, + "indices": 4, + "material": 0, + "mode": 4 + } + ] + }, + { + "extras": { + "targetNames": [] + }, + "primitives": [ + { + "attributes": { + "NORMAL": 7, + "POSITION": 5, + "TANGENT": 6, + "TEXCOORD_0": 8 + }, + "indices": 9, + "material": 1, + "mode": 4 + } + ] + }, + { + "extras": { + "targetNames": [] + }, + "primitives": [ + { + "attributes": { + "NORMAL": 12, + "POSITION": 10, + "TANGENT": 11, + "TEXCOORD_0": 13 + }, + "indices": 14, + "material": 2, + "mode": 4 + } + ] + }, + { + "extras": { + "targetNames": [] + }, + "primitives": [ + { + "attributes": { + "NORMAL": 17, + "POSITION": 15, + "TANGENT": 16, + "TEXCOORD_0": 18 + }, + "indices": 19, + "material": 3, + "mode": 4 + } + ] + }, + { + "extras": { + "targetNames": [] + }, + "primitives": [ + { + "attributes": { + "NORMAL": 22, + "POSITION": 20, + "TANGENT": 21, + "TEXCOORD_0": 23 + }, + "indices": 24, + "material": 4, + "mode": 4 + } + ] + }, + { + "extras": { + "targetNames": [] + }, + "primitives": [ + { + "attributes": { + "NORMAL": 27, + "POSITION": 25, + "TANGENT": 26, + "TEXCOORD_0": 28 + }, + "indices": 29, + "material": 5, + "mode": 4 + } + ] + }, + { + "extras": { + "targetNames": [] + }, + "primitives": [ + { + "attributes": { + "NORMAL": 32, + "POSITION": 30, + "TANGENT": 31, + "TEXCOORD_0": 33 + }, + "indices": 34, + "material": 6, + "mode": 4 + } + ] + }, + { + "extras": { + "targetNames": [] + }, + "primitives": [ + { + "attributes": { + "NORMAL": 37, + "POSITION": 35, + "TANGENT": 36, + "TEXCOORD_0": 38 + }, + "indices": 39, + "material": 7, + "mode": 4 + } + ] + }, + { + "extras": { + "targetNames": [] + }, + "primitives": [ + { + "attributes": { + "NORMAL": 42, + "POSITION": 40, + "TANGENT": 41, + "TEXCOORD_0": 43 + }, + "indices": 44, + "material": 8, + "mode": 4 + } + ] + } + ], + "nodes": [ + { + "children": [1, 10, 13, 16, 19, 22, 25], + "extensions": {}, + "name": "BallPit" + }, + { + "children": [2, 4, 6, 8], + "extensions": { + "OMI_physics_body": { + "type": "static" + } + }, + "name": "Pit" + }, + { + "children": [3], + "extensions": { + "OMI_physics_shape": { + "shape": 0 + } + }, + "name": "Floor" + }, + { + "extensions": {}, + "mesh": 0, + "name": "Mesh1" + }, + { + "children": [5], + "extensions": { + "OMI_physics_shape": { + "shape": 1 + } + }, + "name": "WallEast", + "translation": [4, 0.5, 0] + }, + { + "extensions": {}, + "mesh": 1, + "name": "Mesh2" + }, + { + "children": [7], + "extensions": { + "OMI_physics_shape": { + "shape": 1 + } + }, + "name": "WallWest", + "translation": [-4, 0.5, 0] + }, + { + "extensions": {}, + "mesh": 2, + "name": "Mesh3" + }, + { + "children": [9], + "extensions": { + "OMI_physics_shape": { + "shape": 2 + } + }, + "name": "WallNorth", + "translation": [0, 0.5, -4] + }, + { + "extensions": {}, + "mesh": 3, + "name": "Mesh4" + }, + { + "children": [11], + "extensions": { + "OMI_physics_body": { + "type": "rigid" + } + }, + "name": "Ball1", + "translation": [0, 1, 0] + }, + { + "children": [12], + "extensions": { + "OMI_physics_shape": { + "shape": 3 + } + }, + "name": "SphereShape1" + }, + { + "extensions": {}, + "mesh": 4, + "name": "BallMesh1" + }, + { + "children": [14], + "extensions": { + "OMI_physics_body": { + "type": "rigid" + } + }, + "name": "Ball2", + "translation": [0.5, 2, 0.5] + }, + { + "children": [15], + "extensions": { + "OMI_physics_shape": { + "shape": 3 + } + }, + "name": "SphereShape2" + }, + { + "extensions": {}, + "mesh": 5, + "name": "BallMesh2" + }, + { + "children": [17], + "extensions": { + "OMI_physics_body": { + "type": "rigid" + } + }, + "name": "Ball3", + "translation": [-0.5, 2.5, 0] + }, + { + "children": [18], + "extensions": { + "OMI_physics_shape": { + "shape": 3 + } + }, + "name": "SphereShape3" + }, + { + "extensions": {}, + "mesh": 6, + "name": "BallMesh3" + }, + { + "children": [20], + "extensions": { + "OMI_physics_body": { + "type": "rigid" + } + }, + "name": "Ball4", + "translation": [0.25, 3.5, 0] + }, + { + "children": [21], + "extensions": { + "OMI_physics_shape": { + "shape": 3 + } + }, + "name": "SphereShape4" + }, + { + "extensions": {}, + "mesh": 7, + "name": "BallMesh4" + }, + { + "children": [23], + "extensions": { + "OMI_physics_body": { + "type": "rigid" + } + }, + "name": "Ball5", + "translation": [-0.5, 4, -0.5] + }, + { + "children": [24], + "extensions": { + "OMI_physics_shape": { + "shape": 3 + } + }, + "name": "SphereShape5" + }, + { + "extensions": {}, + "mesh": 8, + "name": "BallMesh5" + }, + { + "camera": 0, + "extensions": {}, + "name": "Camera", + "rotation": [-0.25881916284561, 0, 0, 0.965925812721252], + "translation": [0, 3, 6] + } + ], + "scene": 0, + "scenes": [{ "nodes": [0] }] +} diff --git a/examples/omi_physics_body/gltf/ball_pit.gltf.import b/examples/omi_physics_body/gltf/ball_pit.gltf.import new file mode 100644 index 0000000..b0eab62 --- /dev/null +++ b/examples/omi_physics_body/gltf/ball_pit.gltf.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://cgi83hhy1df6v" +path="res://.godot/imported/ball_pit.gltf-1323bff07f27fb405cca075239dee184.scn" + +[deps] + +source_file="res://examples/omi_physics_body/gltf/ball_pit.gltf" +dest_files=["res://.godot/imported/ball_pit.gltf-1323bff07f27fb405cca075239dee184.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/examples/omi_physics_body/gltf/ball_pit0.bin b/examples/omi_physics_body/gltf/ball_pit0.bin new file mode 100644 index 0000000..371e754 Binary files /dev/null and b/examples/omi_physics_body/gltf/ball_pit0.bin differ diff --git a/examples/omi_physics_body/gltf/indirect_children.gltf b/examples/omi_physics_body/gltf/indirect_children.gltf new file mode 100644 index 0000000..2f53b68 --- /dev/null +++ b/examples/omi_physics_body/gltf/indirect_children.gltf @@ -0,0 +1,90 @@ +{ + "asset": { + "version": "2.0" + }, + "extensions": { + "OMI_physics_shape": { + "shapes": [ + { + "type": "box", + "box": { + "size": [1, 1, 1] + } + } + ] + } + }, + "extensionsUsed": ["OMI_physics_shape", "OMI_physics_body"], + "nodes": [ + { + "children": [1, 3, 5, 8, 11, 12], + "name": "IndirectColliders" + }, + { + "children": [2], + "extensions": { "OMI_physics_body": { "type": "kinematic" } }, + "name": "KinematicDirect", + "translation": [0, 0, 0] + }, + { + "extensions": { "OMI_physics_shape": { "shape": 0 } }, + "name": "BoxShapeKinematicDirect" + }, + { + "children": [4], + "extensions": { "OMI_physics_body": { "type": "trigger" } }, + "name": "TriggerDirect", + "translation": [0, 0, -2] + }, + { + "extensions": { "OMI_physics_shape": { "shape": 0 } }, + "name": "BoxShapeTriggerDirect" + }, + { + "children": [6], + "extensions": { "OMI_physics_body": { "type": "kinematic" } }, + "name": "KinematicIndirect", + "translation": [-2, 0, 0] + }, + { + "children": [7], + "name": "IntermediaryNodeKinematic" + }, + { + "extensions": { "OMI_physics_shape": { "shape": 0 } }, + "name": "BoxShapeKinematicIndirect" + }, + { + "children": [9], + "extensions": { "OMI_physics_body": { "type": "trigger" } }, + "name": "TriggerIndirect", + "translation": [-2, 0, -2] + }, + { + "children": [10], + "name": "IntermediaryNodeTrigger" + }, + { + "extensions": { "OMI_physics_shape": { "shape": 0 } }, + "name": "BoxShapeTriggerIndirect" + }, + { + "extensions": { + "OMI_physics_body": { "type": "kinematic" }, + "OMI_physics_shape": { "shape": 0 } + }, + "name": "KinematicSameNode", + "translation": [2, 0, 0] + }, + { + "extensions": { + "OMI_physics_body": { "type": "trigger" }, + "OMI_physics_shape": { "shape": 0 } + }, + "name": "TriggerSameNode", + "translation": [2, 0, -2] + } + ], + "scene": 0, + "scenes": [{ "nodes": [0] }] +} diff --git a/examples/omi_physics_body/gltf/indirect_children.gltf.import b/examples/omi_physics_body/gltf/indirect_children.gltf.import new file mode 100644 index 0000000..0f763ee --- /dev/null +++ b/examples/omi_physics_body/gltf/indirect_children.gltf.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://hkb2c7anourq" +path="res://.godot/imported/indirect_children.gltf-732825a49ea5683e414178c5e7d87530.scn" + +[deps] + +source_file="res://examples/omi_physics_body/gltf/indirect_children.gltf" +dest_files=["res://.godot/imported/indirect_children.gltf-732825a49ea5683e414178c5e7d87530.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/examples/omi_physics_body/gltf/indirect_colliders.gltf b/examples/omi_physics_body/gltf/indirect_colliders.gltf new file mode 100644 index 0000000..dabb7c4 --- /dev/null +++ b/examples/omi_physics_body/gltf/indirect_colliders.gltf @@ -0,0 +1,129 @@ +{ + "asset": { + "version": "2.0" + }, + "extensions": { + "OMI_collider": { + "colliders": [ + { + "size": [1, 1, 1], + "type": "box" + }, + { + "isTrigger": true, + "size": [1, 1, 1], + "type": "box" + } + ] + } + }, + "extensionsUsed": ["OMI_collider", "OMI_physics_body"], + "nodes": [ + { + "children": [1, 4, 8, 11, 15, 16, 17, 18], + "name": "IndirectColliders" + }, + { + "children": [2, 3], + "extensions": { "OMI_physics_body": { "type": "kinematic" } }, + "name": "KinematicDirect", + "translation": [-2, 0, 0] + }, + { + "extensions": { "OMI_collider": { "collider": 0 } }, + "name": "ColliderShapeDirect" + }, + { + "extensions": { "OMI_collider": { "collider": 1 } }, + "name": "TriggerShapeDirect", + "translation": [0, 1, 0] + }, + { + "children": [5], + "extensions": { "OMI_physics_body": { "type": "kinematic" } }, + "name": "KinematicIndirect" + }, + { + "children": [6, 7], + "name": "IntermediaryNodeKinematic" }, + { + "extensions": { "OMI_collider": { "collider": 0 } }, + "name": "ColliderShapeIndirect" + }, + { + "extensions": { "OMI_collider": { "collider": 1 } }, + "name": "TriggerShapeIndirect", + "translation": [0, 1, 0] + }, + { + "children": [9, 10], + "extensions": { "OMI_physics_body": { "type": "trigger" } }, + "name": "TriggerDirect", + "translation": [-2, 0, -2] + }, + { + "extensions": { "OMI_collider": { "collider": 0 } }, + "name": "ColliderShapeTriggerDirect" + }, + { + "extensions": { "OMI_collider": { "collider": 1 } }, + "name": "TriggerShapeTriggerDirect", + "translation": [0, 1, 0] + }, + { + "children": [12], + "extensions": { "OMI_physics_body": { "type": "trigger" } }, + "name": "TriggerIndirect", + "translation": [0, 0, -2] + }, + { + "children": [13, 14], + "name": "IntermediaryNodeTrigger" + }, + { + "extensions": { "OMI_collider": { "collider": 0 } }, + "name": "ColliderShapeTriggerIndirect" + }, + { + "extensions": { + "OMI_collider": { "collider": 1 } + }, + "name": "TriggerShapeTriggerIndirect", + "translation": [0, 1, 0] + }, + { + "extensions": { + "OMI_physics_body": { "type": "kinematic" }, + "OMI_collider": { "collider": 0 } + }, + "name": "KinematicSameNodeSolid", + "translation": [2, 0, 0] + }, + { + "extensions": { + "OMI_physics_body": { "type": "trigger" }, + "OMI_collider": { "collider": 1 } + }, + "name": "TriggerSameNodeTrigger", + "translation": [4, 0, 0] + }, + { + "extensions": { + "OMI_physics_body": { "type": "trigger" }, + "OMI_collider": { "collider": 0 } + }, + "name": "TriggerSameNodeSolid", + "translation": [2, 0, -2] + }, + { + "extensions": { + "OMI_physics_body": { "type": "kinematic" }, + "OMI_collider": { "collider": 1 } + }, + "name": "KinematicSameNodeTrigger", + "translation": [4, 0, -2] + } + ], + "scene": 0, + "scenes": [{ "nodes": [0] }] +} diff --git a/examples/omi_physics_body/gltf/indirect_colliders.gltf.import b/examples/omi_physics_body/gltf/indirect_colliders.gltf.import new file mode 100644 index 0000000..10bc51e --- /dev/null +++ b/examples/omi_physics_body/gltf/indirect_colliders.gltf.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://c0vcj7sq0h6" +path="res://.godot/imported/indirect_colliders.gltf-7df7d7bc27817fe2b7a684301356ec87.scn" + +[deps] + +source_file="res://examples/omi_physics_body/gltf/indirect_colliders.gltf" +dest_files=["res://.godot/imported/indirect_colliders.gltf-7df7d7bc27817fe2b7a684301356ec87.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/examples/omi_physics_body/gltf/rigid_with_velocity.gltf b/examples/omi_physics_body/gltf/rigid_with_velocity.gltf new file mode 100644 index 0000000..e02322b --- /dev/null +++ b/examples/omi_physics_body/gltf/rigid_with_velocity.gltf @@ -0,0 +1,44 @@ +{ + "asset": { + "version": "2.0" + }, + "extensions": { + "OMI_physics_shape": { + "shapes": [ + { + "type": "sphere", + "sphere": { + "radius": 0.5 + } + } + ] + } + }, + "extensionsUsed": [ + "OMI_physics_body", + "OMI_physics_shape" + ], + "nodes": [ + { + "children": [1], + "extensions": { + "OMI_physics_body": { + "angularVelocity": [0.0698131993412971, 0.0872664973139763, 0.104719996452332], + "linearVelocity": [1, 2, 3], + "type": "rigid" + } + }, + "name": "RigidWithVelocity" + }, + { + "extensions": { + "OMI_physics_shape": { + "shape": 0 + } + }, + "name": "SphereShape" + } + ], + "scene": 0, + "scenes": [{ "nodes": [0] }] +} diff --git a/examples/omi_physics_body/gltf/rigid_with_velocity.gltf.import b/examples/omi_physics_body/gltf/rigid_with_velocity.gltf.import new file mode 100644 index 0000000..7072795 --- /dev/null +++ b/examples/omi_physics_body/gltf/rigid_with_velocity.gltf.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://c5l86nipjdylg" +path="res://.godot/imported/rigid_with_velocity.gltf-ddf54dfbf133d037d8fff199fba1a733.scn" + +[deps] + +source_file="res://examples/omi_physics_body/gltf/rigid_with_velocity.gltf" +dest_files=["res://.godot/imported/rigid_with_velocity.gltf-ddf54dfbf133d037d8fff199fba1a733.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/examples/omi_physics_body/source/ball_pit.tscn b/examples/omi_physics_body/source/ball_pit.tscn new file mode 100644 index 0000000..1abf80f --- /dev/null +++ b/examples/omi_physics_body/source/ball_pit.tscn @@ -0,0 +1,111 @@ +[gd_scene load_steps=11 format=3 uid="uid://dqilfsh6xykgu"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_fhcmv"] +size = Vector3(8, 0.1, 8) + +[sub_resource type="BoxMesh" id="BoxMesh_8kmfa"] +size = Vector3(8, 0.1, 8) + +[sub_resource type="BoxShape3D" id="BoxShape3D_0c2du"] +size = Vector3(0.1, 1, 8) + +[sub_resource type="BoxMesh" id="BoxMesh_5pmlq"] +size = Vector3(0.1, 1, 8) + +[sub_resource type="BoxShape3D" id="BoxShape3D_vahxc"] +size = Vector3(8, 1, 0.1) + +[sub_resource type="BoxMesh" id="BoxMesh_tfqct"] +size = Vector3(8, 1, 0.1) + +[sub_resource type="SphereShape3D" id="SphereShape3D_w5jpo"] + +[sub_resource type="SphereMesh" id="SphereMesh_pwtuc"] + +[sub_resource type="SphereShape3D" id="SphereShape3D_oldn1"] + +[sub_resource type="SphereShape3D" id="SphereShape3D_fva84"] + +[node name="BallPit" type="Node3D"] + +[node name="Pit" type="StaticBody3D" parent="."] + +[node name="Floor" type="CollisionShape3D" parent="Pit"] +shape = SubResource("BoxShape3D_fhcmv") + +[node name="Mesh1" type="MeshInstance3D" parent="Pit/Floor"] +mesh = SubResource("BoxMesh_8kmfa") +skeleton = NodePath("../..") + +[node name="WallEast" type="CollisionShape3D" parent="Pit"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0.5, 0) +shape = SubResource("BoxShape3D_0c2du") + +[node name="Mesh2" type="MeshInstance3D" parent="Pit/WallEast"] +mesh = SubResource("BoxMesh_5pmlq") +skeleton = NodePath("../..") + +[node name="WallWest" type="CollisionShape3D" parent="Pit"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 0.5, 0) +shape = SubResource("BoxShape3D_0c2du") + +[node name="Mesh3" type="MeshInstance3D" parent="Pit/WallWest"] +mesh = SubResource("BoxMesh_5pmlq") +skeleton = NodePath("../..") + +[node name="WallNorth" type="CollisionShape3D" parent="Pit"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -4) +shape = SubResource("BoxShape3D_vahxc") + +[node name="Mesh4" type="MeshInstance3D" parent="Pit/WallNorth"] +mesh = SubResource("BoxMesh_tfqct") +skeleton = NodePath("../..") + +[node name="Ball1" type="RigidBody3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) + +[node name="SphereShape1" type="CollisionShape3D" parent="Ball1"] +shape = SubResource("SphereShape3D_w5jpo") + +[node name="BallMesh1" type="MeshInstance3D" parent="Ball1/SphereShape1"] +mesh = SubResource("SphereMesh_pwtuc") + +[node name="Ball2" type="RigidBody3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 2, 0.5) + +[node name="SphereShape2" type="CollisionShape3D" parent="Ball2"] +shape = SubResource("SphereShape3D_oldn1") + +[node name="BallMesh2" type="MeshInstance3D" parent="Ball2/SphereShape2"] +mesh = SubResource("SphereMesh_pwtuc") + +[node name="Ball3" type="RigidBody3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 2.5, 0) + +[node name="SphereShape3" type="CollisionShape3D" parent="Ball3"] +shape = SubResource("SphereShape3D_fva84") + +[node name="BallMesh3" type="MeshInstance3D" parent="Ball3/SphereShape3"] +mesh = SubResource("SphereMesh_pwtuc") + +[node name="Ball4" type="RigidBody3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.25, 3.5, 0) + +[node name="SphereShape4" type="CollisionShape3D" parent="Ball4"] +shape = SubResource("SphereShape3D_fva84") + +[node name="BallMesh4" type="MeshInstance3D" parent="Ball4/SphereShape4"] +mesh = SubResource("SphereMesh_pwtuc") + +[node name="Ball5" type="RigidBody3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 4, -0.5) + +[node name="SphereShape5" type="CollisionShape3D" parent="Ball5"] +shape = SubResource("SphereShape3D_fva84") + +[node name="BallMesh5" type="MeshInstance3D" parent="Ball5/SphereShape5"] +mesh = SubResource("SphereMesh_pwtuc") + +[node name="Camera" type="Camera3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, 0, 3, 6) +current = true diff --git a/examples/omi_physics_body/source/rigid_with_velocity.tscn b/examples/omi_physics_body/source/rigid_with_velocity.tscn new file mode 100644 index 0000000..5a2c47b --- /dev/null +++ b/examples/omi_physics_body/source/rigid_with_velocity.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=3 uid="uid://df4tvsoecmbno"] + +[sub_resource type="SphereShape3D" id="SphereShape3D_ghi6v"] + +[node name="RigidWithVelocity" type="RigidBody3D"] +linear_velocity = Vector3(1, 2, 3) +angular_velocity = Vector3(0.0698132, 0.0872665, 0.10472) + +[node name="SphereShape" type="CollisionShape3D" parent="."] +shape = SubResource("SphereShape3D_ghi6v") diff --git a/examples/omi_physics_body/test/ball_pit_test.tscn b/examples/omi_physics_body/test/ball_pit_test.tscn new file mode 100644 index 0000000..bf0982e --- /dev/null +++ b/examples/omi_physics_body/test/ball_pit_test.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=3 format=3 uid="uid://bswqxc5dfk6lq"] + +[ext_resource type="PackedScene" uid="uid://jtuy1pve36dv" path="res://examples/test_environment.tscn" id="1_ij25r"] +[ext_resource type="PackedScene" uid="uid://cgi83hhy1df6v" path="res://examples/omi_physics_body/gltf/ball_pit.gltf" id="2_dfa87"] + +[node name="BallPitTest" type="Node3D"] + +[node name="Environment" parent="." instance=ExtResource("1_ij25r")] + +[node name="ball_pit" parent="." instance=ExtResource("2_dfa87")] diff --git a/examples/omi_physics_body/test/indirect_children_test.tscn b/examples/omi_physics_body/test/indirect_children_test.tscn new file mode 100644 index 0000000..b15add9 --- /dev/null +++ b/examples/omi_physics_body/test/indirect_children_test.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://ccgpnhowxx58k"] + +[ext_resource type="PackedScene" uid="uid://jtuy1pve36dv" path="res://examples/test_environment.tscn" id="1_u3f64"] +[ext_resource type="PackedScene" uid="uid://hkb2c7anourq" path="res://examples/omi_physics_body/gltf/indirect_children.gltf" id="2_jp7si"] + +[node name="IndirectCollidersTest" type="Node3D"] + +[node name="TestEnvironment" parent="." instance=ExtResource("1_u3f64")] + +[node name="indirect_children" parent="." instance=ExtResource("2_jp7si")] + +[editable path="indirect_children"] diff --git a/examples/omi_physics_body/test/indirect_colliders_test.tscn b/examples/omi_physics_body/test/indirect_colliders_test.tscn new file mode 100644 index 0000000..e42479e --- /dev/null +++ b/examples/omi_physics_body/test/indirect_colliders_test.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://dnprthuq8cgqq"] + +[ext_resource type="PackedScene" uid="uid://jtuy1pve36dv" path="res://examples/test_environment.tscn" id="1_u3f64"] +[ext_resource type="PackedScene" uid="uid://c0vcj7sq0h6" path="res://examples/omi_physics_body/gltf/indirect_colliders.gltf" id="2_6p6pu"] + +[node name="IndirectCollidersTest" type="Node3D"] + +[node name="TestEnvironment" parent="." instance=ExtResource("1_u3f64")] + +[node name="indirect_colliders" parent="." instance=ExtResource("2_6p6pu")] + +[editable path="indirect_colliders"] diff --git a/examples/omi_physics_body/test/rigid_with_velocity_test.tscn b/examples/omi_physics_body/test/rigid_with_velocity_test.tscn new file mode 100644 index 0000000..794118d --- /dev/null +++ b/examples/omi_physics_body/test/rigid_with_velocity_test.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://c0s2xkf6n0nnm"] + +[ext_resource type="PackedScene" uid="uid://jtuy1pve36dv" path="res://examples/test_environment.tscn" id="1_ij25r"] +[ext_resource type="PackedScene" uid="uid://c5l86nipjdylg" path="res://examples/omi_physics_body/gltf/rigid_with_velocity.gltf" id="2_o5a4c"] + +[node name="RigidWithVelocityTest" type="Node3D"] + +[node name="Environment" parent="." instance=ExtResource("1_ij25r")] + +[node name="rigid_with_velocity" parent="." instance=ExtResource("2_o5a4c")] + +[editable path="rigid_with_velocity"] diff --git a/examples/omi_physics_shape/gltf/box_collider.gltf b/examples/omi_physics_shape/gltf/box_collider.gltf new file mode 100644 index 0000000..accbfab --- /dev/null +++ b/examples/omi_physics_shape/gltf/box_collider.gltf @@ -0,0 +1,46 @@ +{ + "asset": { + "version": "2.0" + }, + "extensions": { + "OMI_physics_shape": { + "shapes": [ + { + "type": "box", + "box": { + "size": [1, 1, 1] + } + } + ] + } + }, + "extensionsUsed": [ + "OMI_physics_body", + "OMI_physics_shape" + ], + "nodes": [ + { + "children": [1], + "extensions": { + "OMI_physics_body": { + "type": "static" + } + }, + "name": "StaticBody" + }, + { + "extensions": { + "OMI_physics_shape": { + "shape": 0 + } + }, + "name": "BoxShape" + } + ], + "scene": 0, + "scenes": [ + { + "nodes": [0] + } + ] +} diff --git a/examples/omi_physics_shape/gltf/box_collider.gltf.import b/examples/omi_physics_shape/gltf/box_collider.gltf.import new file mode 100644 index 0000000..97bfccb --- /dev/null +++ b/examples/omi_physics_shape/gltf/box_collider.gltf.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://c4kvemox35tue" +path="res://.godot/imported/box_collider.gltf-771f02b04595a0e87b634c98a72eb219.scn" + +[deps] + +source_file="res://examples/omi_physics_shape/gltf/box_collider.gltf" +dest_files=["res://.godot/imported/box_collider.gltf-771f02b04595a0e87b634c98a72eb219.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/examples/omi_physics_shape/gltf/box_only.gltf b/examples/omi_physics_shape/gltf/box_only.gltf new file mode 100644 index 0000000..3cd39c2 --- /dev/null +++ b/examples/omi_physics_shape/gltf/box_only.gltf @@ -0,0 +1,36 @@ +{ + "asset": { + "version": "2.0" + }, + "extensions": { + "OMI_physics_shape": { + "shapes": [ + { + "type": "box", + "box": { + "size": [1, 1, 1] + } + } + ] + } + }, + "extensionsUsed": [ + "OMI_physics_shape" + ], + "nodes": [ + { + "extensions": { + "OMI_physics_shape": { + "shape": 0 + } + }, + "name": "Box" + } + ], + "scene": 0, + "scenes": [ + { + "nodes": [0] + } + ] +} diff --git a/examples/omi_physics_shape/gltf/box_only.gltf.import b/examples/omi_physics_shape/gltf/box_only.gltf.import new file mode 100644 index 0000000..0a756d0 --- /dev/null +++ b/examples/omi_physics_shape/gltf/box_only.gltf.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://b4mbeplwpk3i0" +path="res://.godot/imported/box_only.gltf-f88f8f8488aee3547d980a918badc301.scn" + +[deps] + +source_file="res://examples/omi_physics_shape/gltf/box_only.gltf" +dest_files=["res://.godot/imported/box_only.gltf-f88f8f8488aee3547d980a918badc301.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/examples/omi_physics_shape/gltf/capsule_collider.gltf b/examples/omi_physics_shape/gltf/capsule_collider.gltf new file mode 100644 index 0000000..efa45af --- /dev/null +++ b/examples/omi_physics_shape/gltf/capsule_collider.gltf @@ -0,0 +1,47 @@ +{ + "asset": { + "version": "2.0" + }, + "extensions": { + "OMI_physics_shape": { + "shapes": [ + { + "type": "capsule", + "capsule": { + "height": 2.0, + "radius": 0.5 + } + } + ] + } + }, + "extensionsUsed": [ + "OMI_physics_body", + "OMI_physics_shape" + ], + "nodes": [ + { + "children": [1], + "extensions": { + "OMI_physics_body": { + "type": "static" + } + }, + "name": "StaticBody" + }, + { + "extensions": { + "OMI_physics_shape": { + "shape": 0 + } + }, + "name": "CapsuleShape" + } + ], + "scene": 0, + "scenes": [ + { + "nodes": [0] + } + ] +} diff --git a/examples/omi_physics_shape/gltf/capsule_collider.gltf.import b/examples/omi_physics_shape/gltf/capsule_collider.gltf.import new file mode 100644 index 0000000..43ac578 --- /dev/null +++ b/examples/omi_physics_shape/gltf/capsule_collider.gltf.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://bleugrd4g3b54" +path="res://.godot/imported/capsule_collider.gltf-5247669810d1335e7a790274b1ee41d8.scn" + +[deps] + +source_file="res://examples/omi_physics_shape/gltf/capsule_collider.gltf" +dest_files=["res://.godot/imported/capsule_collider.gltf-5247669810d1335e7a790274b1ee41d8.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/examples/omi_physics_shape/gltf/convex/convex_hull.gltf b/examples/omi_physics_shape/gltf/convex/convex_hull.gltf new file mode 100644 index 0000000..e4550e9 --- /dev/null +++ b/examples/omi_physics_shape/gltf/convex/convex_hull.gltf @@ -0,0 +1,249 @@ +{ + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5125, + "count": 24, + "max": [ + 23 + ], + "min": [ + 0 + ], + "normalized": false, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 0, + "componentType": 5126, + "count": 20, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 3, + "byteOffset": 0, + "componentType": 5126, + "count": 20, + "max": [ + 0.999969, + 0, + 0.999969, + 1 + ], + "min": [ + -0.999969, + -0.007936, + -1, + 1 + ], + "normalized": false, + "type": "VEC4" + }, + { + "bufferView": 4, + "byteOffset": 0, + "componentType": 5126, + "count": 20, + "max": [ + 0.894377, + 0.447188, + 1 + ], + "min": [ + -0.894377, + -1, + -1 + ], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 5, + "byteOffset": 0, + "componentType": 5126, + "count": 20, + "max": [ + 1, + 1 + ], + "min": [ + 0, + 0 + ], + "normalized": false, + "type": "VEC2" + }, + { + "bufferView": 6, + "byteOffset": 0, + "componentType": 5125, + "count": 24, + "max": [ + 19 + ], + "min": [ + 2 + ], + "normalized": false, + "type": "SCALAR" + } + ], + "asset": { + "version": "2.0" + }, + "bufferViews": [ + { + "buffer": 0, + "byteLength": 288, + "byteOffset": 0 + }, + { + "buffer": 0, + "byteLength": 96, + "byteOffset": 288 + }, + { + "buffer": 0, + "byteLength": 240, + "byteOffset": 384 + }, + { + "buffer": 0, + "byteLength": 320, + "byteOffset": 624 + }, + { + "buffer": 0, + "byteLength": 240, + "byteOffset": 944 + }, + { + "buffer": 0, + "byteLength": 160, + "byteOffset": 1184 + }, + { + "buffer": 0, + "byteLength": 96, + "byteOffset": 1344 + } + ], + "buffers": [ + { + "byteLength": 1440, + "uri": "convex_hull0.bin" + } + ], + "extensions": { + "OMI_physics_shape": { + "shapes": [ + { + "type": "convex", + "convex": { + "mesh": 0 + } + } + ] + } + }, + "extensionsUsed": [ + "OMI_physics_body", + "OMI_physics_shape" + ], + "meshes": [ + { + "extras": { + "targetNames": [] + }, + "primitives": [ + { + "attributes": { + "POSITION": 0 + }, + "indices": 1, + "mode": 4 + } + ] + }, + { + "extras": { + "targetNames": [] + }, + "primitives": [ + { + "attributes": { + "NORMAL": 4, + "POSITION": 2, + "TANGENT": 3, + "TEXCOORD_0": 5 + }, + "indices": 6, + "mode": 4 + } + ] + } + ], + "nodes": [ + { + "children": [1, 2], + "extensions": { + "OMI_physics_body": { + "type": "static" + } + }, + "name": "StaticBody" + }, + { + "extensions": { + "OMI_physics_shape": { + "shape": 0 + } + }, + "name": "ConvexHull" + }, + { + "extensions": {}, + "mesh": 1, + "name": "ConvexMesh" + } + ], + "scene": 0, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ] +} diff --git a/examples/omi_physics_shape/gltf/convex/convex_hull.gltf.import b/examples/omi_physics_shape/gltf/convex/convex_hull.gltf.import new file mode 100644 index 0000000..34bfe1b --- /dev/null +++ b/examples/omi_physics_shape/gltf/convex/convex_hull.gltf.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://dad76pbrkcvm4" +path="res://.godot/imported/convex_hull.gltf-2d4dcb445c42a1f62f1ab35aa60fbc74.scn" + +[deps] + +source_file="res://examples/omi_physics_shape/gltf/convex/convex_hull.gltf" +dest_files=["res://.godot/imported/convex_hull.gltf-2d4dcb445c42a1f62f1ab35aa60fbc74.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/examples/omi_physics_shape/gltf/convex/convex_hull0.bin b/examples/omi_physics_shape/gltf/convex/convex_hull0.bin new file mode 100644 index 0000000..6dd4d73 Binary files /dev/null and b/examples/omi_physics_shape/gltf/convex/convex_hull0.bin differ diff --git a/examples/omi_physics_shape/gltf/convex/convex_hull_only.gltf b/examples/omi_physics_shape/gltf/convex/convex_hull_only.gltf new file mode 100644 index 0000000..6b409e0 --- /dev/null +++ b/examples/omi_physics_shape/gltf/convex/convex_hull_only.gltf @@ -0,0 +1,116 @@ +{ + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5125, + "count": 24, + "max": [ + 23 + ], + "min": [ + 0 + ], + "normalized": false, + "type": "SCALAR" + } + ], + "asset": { + "version": "2.0" + }, + "bufferViews": [ + { + "buffer": 0, + "byteLength": 288, + "byteOffset": 0 + }, + { + "buffer": 0, + "byteLength": 96, + "byteOffset": 288 + } + ], + "buffers": [ + { + "byteLength": 384, + "uri": "convex_hull_only0.bin" + } + ], + "extensions": { + "OMI_physics_shape": { + "shapes": [ + { + "type": "convex", + "convex": { + "mesh": 0 + } + } + ] + } + }, + "extensionsUsed": [ + "OMI_physics_body", + "OMI_physics_shape" + ], + "meshes": [ + { + "extras": { + "targetNames": [] + }, + "primitives": [ + { + "attributes": { + "POSITION": 0 + }, + "indices": 1, + "mode": 4 + } + ] + } + ], + "nodes": [ + { + "children": [1], + "extensions": { + "OMI_physics_body": { + "type": "static" + } + }, + "name": "StaticBody" + }, + { + "extensions": { + "OMI_physics_shape": { + "shape": 0 + } + }, + "name": "ConvexHull" + } + ], + "scene": 0, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ] +} diff --git a/examples/omi_physics_shape/gltf/convex/convex_hull_only.gltf.import b/examples/omi_physics_shape/gltf/convex/convex_hull_only.gltf.import new file mode 100644 index 0000000..3e95566 --- /dev/null +++ b/examples/omi_physics_shape/gltf/convex/convex_hull_only.gltf.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://dh2eg7qdbj6yn" +path="res://.godot/imported/convex_hull_only.gltf-4aea95bd7275515b01addb9656dba88c.scn" + +[deps] + +source_file="res://examples/omi_physics_shape/gltf/convex/convex_hull_only.gltf" +dest_files=["res://.godot/imported/convex_hull_only.gltf-4aea95bd7275515b01addb9656dba88c.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/examples/omi_physics_shape/gltf/convex/convex_hull_only0.bin b/examples/omi_physics_shape/gltf/convex/convex_hull_only0.bin new file mode 100644 index 0000000..fc706fe Binary files /dev/null and b/examples/omi_physics_shape/gltf/convex/convex_hull_only0.bin differ diff --git a/examples/omi_physics_shape/gltf/cylinder_collider.gltf b/examples/omi_physics_shape/gltf/cylinder_collider.gltf new file mode 100644 index 0000000..49730ce --- /dev/null +++ b/examples/omi_physics_shape/gltf/cylinder_collider.gltf @@ -0,0 +1,47 @@ +{ + "asset": { + "version": "2.0" + }, + "extensions": { + "OMI_physics_shape": { + "shapes": [ + { + "type": "cylinder", + "cylinder": { + "height": 2.0, + "radius": 0.5 + } + } + ] + } + }, + "extensionsUsed": [ + "OMI_physics_body", + "OMI_physics_shape" + ], + "nodes": [ + { + "children": [1], + "extensions": { + "OMI_physics_body": { + "type": "static" + } + }, + "name": "StaticBody" + }, + { + "extensions": { + "OMI_physics_shape": { + "shape": 0 + } + }, + "name": "CylinderShape" + } + ], + "scene": 0, + "scenes": [ + { + "nodes": [0] + } + ] +} diff --git a/examples/omi_physics_shape/gltf/cylinder_collider.gltf.import b/examples/omi_physics_shape/gltf/cylinder_collider.gltf.import new file mode 100644 index 0000000..cb038b3 --- /dev/null +++ b/examples/omi_physics_shape/gltf/cylinder_collider.gltf.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://icbnk868ejeb" +path="res://.godot/imported/cylinder_collider.gltf-72655c236ed4198846cf7da0aa2df531.scn" + +[deps] + +source_file="res://examples/omi_physics_shape/gltf/cylinder_collider.gltf" +dest_files=["res://.godot/imported/cylinder_collider.gltf-72655c236ed4198846cf7da0aa2df531.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/examples/omi_physics_shape/gltf/default_box.gltf b/examples/omi_physics_shape/gltf/default_box.gltf new file mode 100644 index 0000000..b13fea1 --- /dev/null +++ b/examples/omi_physics_shape/gltf/default_box.gltf @@ -0,0 +1,43 @@ +{ + "asset": { + "version": "2.0" + }, + "extensions": { + "OMI_physics_shape": { + "shapes": [ + { + "type": "box" + } + ] + } + }, + "extensionsUsed": [ + "OMI_physics_body", + "OMI_physics_shape" + ], + "nodes": [ + { + "children": [1], + "extensions": { + "OMI_physics_body": { + "type": "static" + } + }, + "name": "StaticBody" + }, + { + "extensions": { + "OMI_physics_shape": { + "shape": 0 + } + }, + "name": "DefaultBoxShape" + } + ], + "scene": 0, + "scenes": [ + { + "nodes": [0] + } + ] +} diff --git a/examples/omi_physics_shape/gltf/default_box.gltf.import b/examples/omi_physics_shape/gltf/default_box.gltf.import new file mode 100644 index 0000000..fdbd976 --- /dev/null +++ b/examples/omi_physics_shape/gltf/default_box.gltf.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://bfo34sudomgbb" +path="res://.godot/imported/default_box.gltf-ae1c60b945ef6abd32fd40bfb0e2a13d.scn" + +[deps] + +source_file="res://examples/omi_physics_shape/gltf/default_box.gltf" +dest_files=["res://.godot/imported/default_box.gltf-ae1c60b945ef6abd32fd40bfb0e2a13d.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/examples/omi_physics_shape/gltf/sphere_collider.gltf b/examples/omi_physics_shape/gltf/sphere_collider.gltf new file mode 100644 index 0000000..f881639 --- /dev/null +++ b/examples/omi_physics_shape/gltf/sphere_collider.gltf @@ -0,0 +1,46 @@ +{ + "asset": { + "version": "2.0" + }, + "extensions": { + "OMI_physics_shape": { + "shapes": [ + { + "type": "sphere", + "sphere": { + "radius": 0.5 + } + } + ] + } + }, + "extensionsUsed": [ + "OMI_physics_body", + "OMI_physics_shape" + ], + "nodes": [ + { + "children": [1], + "extensions": { + "OMI_physics_body": { + "type": "static" + } + }, + "name": "StaticBody" + }, + { + "extensions": { + "OMI_physics_shape": { + "shape": 0 + } + }, + "name": "SphereShape" + } + ], + "scene": 0, + "scenes": [ + { + "nodes": [0] + } + ] +} diff --git a/examples/omi_physics_shape/gltf/sphere_collider.gltf.import b/examples/omi_physics_shape/gltf/sphere_collider.gltf.import new file mode 100644 index 0000000..5db9edf --- /dev/null +++ b/examples/omi_physics_shape/gltf/sphere_collider.gltf.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://dxrjogjfjckic" +path="res://.godot/imported/sphere_collider.gltf-fd93cc6c996c238071adb51de9583bad.scn" + +[deps] + +source_file="res://examples/omi_physics_shape/gltf/sphere_collider.gltf" +dest_files=["res://.godot/imported/sphere_collider.gltf-fd93cc6c996c238071adb51de9583bad.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/examples/omi_physics_shape/gltf/trimesh/concave_trimesh.gltf b/examples/omi_physics_shape/gltf/trimesh/concave_trimesh.gltf new file mode 100644 index 0000000..586dc14 --- /dev/null +++ b/examples/omi_physics_shape/gltf/trimesh/concave_trimesh.gltf @@ -0,0 +1,208 @@ +{ + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 1, + 0, + 1, + 1 + ], + "min": [ + -1, + -0.000015, + -1, + 1 + ], + "normalized": false, + "type": "VEC4" + }, + { + "bufferView": 2, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 3, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 1, + 1 + ], + "min": [ + 0, + 0 + ], + "normalized": false, + "type": "VEC2" + }, + { + "bufferView": 4, + "byteOffset": 0, + "componentType": 5125, + "count": 36, + "max": [ + 23 + ], + "min": [ + 0 + ], + "normalized": false, + "type": "SCALAR" + } + ], + "asset": { + "version": "2.0" + }, + "bufferViews": [ + { + "buffer": 0, + "byteLength": 288, + "byteOffset": 0 + }, + { + "buffer": 0, + "byteLength": 384, + "byteOffset": 288 + }, + { + "buffer": 0, + "byteLength": 288, + "byteOffset": 672 + }, + { + "buffer": 0, + "byteLength": 192, + "byteOffset": 960 + }, + { + "buffer": 0, + "byteLength": 144, + "byteOffset": 1152 + } + ], + "buffers": [ + { + "byteLength": 1296, + "uri": "concave_trimesh0.bin" + } + ], + "extensions": { + "OMI_physics_shape": { + "shapes": [ + { + "type": "trimesh", + "trimesh": { + "mesh": 0 + } + } + ] + } + }, + "extensionsUsed": [ + "OMI_physics_body", + "OMI_physics_shape" + ], + "materials": [ + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.99999988079071, + 0.99999988079071, + 0.99999988079071, + 1 + ], + "metallicFactor": 0, + "roughnessFactor": 1 + } + } + ], + "meshes": [ + { + "extras": { + "targetNames": [] + }, + "primitives": [ + { + "attributes": { + "NORMAL": 2, + "POSITION": 0, + "TANGENT": 1, + "TEXCOORD_0": 3 + }, + "indices": 4, + "material": 0, + "mode": 4 + } + ] + } + ], + "nodes": [ + { + "children": [1, 2], + "extensions": { + "OMI_physics_body": { + "type": "static" + } + }, + "name": "StaticBody" + }, + { + "extensions": {}, + "mesh": 0, + "name": "BoxMeshInstance" + }, + { + "extensions": { + "OMI_physics_shape": { + "shape": 0 + } + }, + "name": "ConcaveTrimeshShape" + } + ], + "scene": 0, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ] +} diff --git a/examples/omi_physics_shape/gltf/trimesh/concave_trimesh.gltf.import b/examples/omi_physics_shape/gltf/trimesh/concave_trimesh.gltf.import new file mode 100644 index 0000000..d4e0525 --- /dev/null +++ b/examples/omi_physics_shape/gltf/trimesh/concave_trimesh.gltf.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://darg7hunsx30l" +path="res://.godot/imported/concave_trimesh.gltf-e9c6f2c839c1269af4ddf25429770109.scn" + +[deps] + +source_file="res://examples/omi_physics_shape/gltf/trimesh/concave_trimesh.gltf" +dest_files=["res://.godot/imported/concave_trimesh.gltf-e9c6f2c839c1269af4ddf25429770109.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/examples/omi_physics_shape/gltf/trimesh/concave_trimesh0.bin b/examples/omi_physics_shape/gltf/trimesh/concave_trimesh0.bin new file mode 100644 index 0000000..969920a Binary files /dev/null and b/examples/omi_physics_shape/gltf/trimesh/concave_trimesh0.bin differ diff --git a/examples/omi_physics_shape/gltf/trimesh/concave_trimesh_only.gltf b/examples/omi_physics_shape/gltf/trimesh/concave_trimesh_only.gltf new file mode 100644 index 0000000..b90fa39 --- /dev/null +++ b/examples/omi_physics_shape/gltf/trimesh/concave_trimesh_only.gltf @@ -0,0 +1,116 @@ +{ + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5126, + "count": 36, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "normalized": false, + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5125, + "count": 36, + "max": [ + 35 + ], + "min": [ + 0 + ], + "normalized": false, + "type": "SCALAR" + } + ], + "asset": { + "version": "2.0" + }, + "bufferViews": [ + { + "buffer": 0, + "byteLength": 432, + "byteOffset": 0 + }, + { + "buffer": 0, + "byteLength": 144, + "byteOffset": 432 + } + ], + "buffers": [ + { + "byteLength": 576, + "uri": "concave_trimesh_only0.bin" + } + ], + "extensions": { + "OMI_physics_shape": { + "shapes": [ + { + "type": "trimesh", + "trimesh": { + "mesh": 0 + } + } + ] + } + }, + "extensionsUsed": [ + "OMI_physics_body", + "OMI_physics_shape" + ], + "meshes": [ + { + "extras": { + "targetNames": [] + }, + "primitives": [ + { + "attributes": { + "POSITION": 0 + }, + "indices": 1, + "mode": 4 + } + ] + } + ], + "nodes": [ + { + "children": [1], + "extensions": { + "OMI_physics_body": { + "type": "static" + } + }, + "name": "StaticBody" + }, + { + "extensions": { + "OMI_physics_shape": { + "shape": 0 + } + }, + "name": "ConcaveTrimeshShape" + } + ], + "scene": 0, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ] +} diff --git a/examples/omi_physics_shape/gltf/trimesh/concave_trimesh_only.gltf.import b/examples/omi_physics_shape/gltf/trimesh/concave_trimesh_only.gltf.import new file mode 100644 index 0000000..cf9a4ad --- /dev/null +++ b/examples/omi_physics_shape/gltf/trimesh/concave_trimesh_only.gltf.import @@ -0,0 +1,32 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://c353r5rikbgy4" +path="res://.godot/imported/concave_trimesh_only.gltf-bb2cf61cc385ad233041e2b40b243729.scn" + +[deps] + +source_file="res://examples/omi_physics_shape/gltf/trimesh/concave_trimesh_only.gltf" +dest_files=["res://.godot/imported/concave_trimesh_only.gltf-bb2cf61cc385ad233041e2b40b243729.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +import_script/path="" +_subresources={} +gltf/embedded_image_handling=1 diff --git a/examples/omi_physics_shape/gltf/trimesh/concave_trimesh_only0.bin b/examples/omi_physics_shape/gltf/trimesh/concave_trimesh_only0.bin new file mode 100644 index 0000000..a8baead Binary files /dev/null and b/examples/omi_physics_shape/gltf/trimesh/concave_trimesh_only0.bin differ