Enable physics interpolation in all 3D demos (#1074)

This makes use of the new built-in 3D physics interpolation
added in Godot 4.4.
This commit is contained in:
Hugo Locurcio
2025-04-15 16:54:41 +02:00
committed by GitHub
parent a88ca219b8
commit 819d201cc4
25 changed files with 137 additions and 121 deletions

View File

@@ -76,8 +76,8 @@ tracks/0/keys = {
[sub_resource type="AnimationLibrary" id="AnimationLibrary_m14lt"]
_data = {
"RESET": SubResource("Animation_ykvo5"),
"move": SubResource("Animation_pn3c5")
&"RESET": SubResource("Animation_ykvo5"),
&"move": SubResource("Animation_pn3c5")
}
[sub_resource type="CylinderMesh" id="CylinderMesh_7m76j"]

View File

@@ -1,6 +1,6 @@
[gd_scene load_steps=6 format=3 uid="uid://ye05btta37gb"]
[ext_resource type="Script" path="res://settings.gd" id="1_gm54x"]
[ext_resource type="Script" uid="uid://bbk03ocyrerm8" path="res://settings.gd" id="1_gm54x"]
[ext_resource type="PackedScene" uid="uid://cbdt8lmycl8pc" path="res://3d_scene.tscn" id="2_hsbu5"]
[sub_resource type="Environment" id="Environment_1f0b2"]

View File

@@ -3,10 +3,10 @@
[ext_resource type="Texture2D" uid="uid://bw3q8aq6gfuof" path="res://addons/sade/editor_gizmo_texture.png" id="1"]
[ext_resource type="PackedScene" uid="uid://ctssefekxjogg" path="res://model/godot_battle_bot.dae" id="2"]
[ext_resource type="Material" path="res://model/battle_bot_color.tres" id="3"]
[ext_resource type="Script" path="res://target_from_mousepos.gd" id="5"]
[ext_resource type="Script" path="res://addons/sade/ik_look_at.gd" id="6"]
[ext_resource type="Script" path="res://addons/sade/ik_fabrik.gd" id="8"]
[ext_resource type="Script" path="res://button_change_scene.gd" id="10"]
[ext_resource type="Script" uid="uid://cwmnshpgflv3w" path="res://target_from_mousepos.gd" id="5"]
[ext_resource type="Script" uid="uid://tmd4ubxbhvue" path="res://addons/sade/ik_look_at.gd" id="6"]
[ext_resource type="Script" uid="uid://cibapncyeomml" path="res://addons/sade/ik_fabrik.gd" id="8"]
[ext_resource type="Script" uid="uid://dpsdir1qgcjff" path="res://button_change_scene.gd" id="10"]
[sub_resource type="PlaneMesh" id="1"]
size = Vector2(40, 40)

View File

@@ -1,10 +1,10 @@
[gd_scene load_steps=23 format=3 uid="uid://b04yqi3oajoyp"]
[ext_resource type="Texture2D" uid="uid://bw3q8aq6gfuof" path="res://addons/sade/editor_gizmo_texture.png" id="1"]
[ext_resource type="Script" path="res://button_change_scene.gd" id="2"]
[ext_resource type="Script" path="res://fps/example_player.gd" id="3"]
[ext_resource type="Script" path="res://addons/sade/ik_look_at.gd" id="4"]
[ext_resource type="Script" path="res://addons/sade/ik_fabrik.gd" id="6"]
[ext_resource type="Script" uid="uid://dpsdir1qgcjff" path="res://button_change_scene.gd" id="2"]
[ext_resource type="Script" uid="uid://bpf0c1q1kq4xf" path="res://fps/example_player.gd" id="3"]
[ext_resource type="Script" uid="uid://tmd4ubxbhvue" path="res://addons/sade/ik_look_at.gd" id="4"]
[ext_resource type="Script" uid="uid://cibapncyeomml" path="res://addons/sade/ik_fabrik.gd" id="6"]
[ext_resource type="PackedScene" uid="uid://xwg4osrspnrn" path="res://fps/weapon_pistol.dae" id="8"]
[ext_resource type="Material" path="res://fps/gun_color.tres" id="9"]
[ext_resource type="PackedScene" uid="uid://ctssefekxjogg" path="res://model/godot_battle_bot.dae" id="11"]
@@ -165,9 +165,9 @@ tracks/2/keys = {
[sub_resource type="AnimationLibrary" id="AnimationLibrary_grvc3"]
_data = {
"Aiming": SubResource("10"),
"Idle": SubResource("11"),
"Start": SubResource("12")
&"Aiming": SubResource("10"),
&"Idle": SubResource("11"),
&"Start": SubResource("12")
}
[node name="FPSExample" type="Node3D"]

View File

@@ -1,6 +1,6 @@
[gd_scene load_steps=6 format=3 uid="uid://d36uvu4r5qtpi"]
[ext_resource type="Script" path="res://fps/simple_bullet.gd" id="1"]
[ext_resource type="Script" uid="uid://xw8wcff2o0p8" path="res://fps/simple_bullet.gd" id="1"]
[sub_resource type="PhysicsMaterial" id="1"]
bounce = 0.5
@@ -11,25 +11,25 @@ bounce = 0.5
albedo_color = Color(0.769531, 0.486969, 0, 1)
emission_enabled = true
emission = Color(1, 0.445313, 0, 1)
emission_energy = 1.8
emission_energy_multiplier = 1.8
[sub_resource type="SphereShape3D" id="4"]
radius = 0.4
[node name="SimpleBullet" type="RigidBody3D"]
mass = 2.0
physics_material_override = SubResource( "1" )
physics_material_override = SubResource("1")
gravity_scale = 3.0
continuous_cd = true
can_sleep = false
linear_damp = 0.4
script = ExtResource( "1" )
script = ExtResource("1")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0, 0, 0)
cast_shadow = 0
mesh = SubResource( "2" )
surface_material_override/0 = SubResource( "3" )
mesh = SubResource("2")
surface_material_override/0 = SubResource("3")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource( "4" )
shape = SubResource("4")

View File

@@ -3,9 +3,9 @@
[ext_resource type="Texture2D" uid="uid://bw3q8aq6gfuof" path="res://addons/sade/editor_gizmo_texture.png" id="1"]
[ext_resource type="PackedScene" uid="uid://ctssefekxjogg" path="res://model/godot_battle_bot.dae" id="2"]
[ext_resource type="Material" path="res://model/battle_bot_color.tres" id="3"]
[ext_resource type="Script" path="res://target_from_mousepos.gd" id="5"]
[ext_resource type="Script" path="res://addons/sade/ik_look_at.gd" id="6"]
[ext_resource type="Script" path="res://button_change_scene.gd" id="8"]
[ext_resource type="Script" uid="uid://cwmnshpgflv3w" path="res://target_from_mousepos.gd" id="5"]
[ext_resource type="Script" uid="uid://tmd4ubxbhvue" path="res://addons/sade/ik_look_at.gd" id="6"]
[ext_resource type="Script" uid="uid://dpsdir1qgcjff" path="res://button_change_scene.gd" id="8"]
[sub_resource type="PlaneMesh" id="1"]
size = Vector2(40, 40)

View File

@@ -1,12 +1,12 @@
[gd_scene load_steps=12 format=3 uid="uid://5x7yswntc63m"]
[ext_resource type="Script" path="res://skeleton_ik_runner.gd" id="1"]
[ext_resource type="Script" uid="uid://fwpk0277wskk" path="res://skeleton_ik_runner.gd" id="1"]
[ext_resource type="Texture2D" uid="uid://bw3q8aq6gfuof" path="res://addons/sade/editor_gizmo_texture.png" id="3"]
[ext_resource type="PackedScene" uid="uid://ctssefekxjogg" path="res://model/godot_battle_bot.dae" id="4"]
[ext_resource type="Script" path="res://target_from_mousepos.gd" id="5"]
[ext_resource type="Script" uid="uid://cwmnshpgflv3w" path="res://target_from_mousepos.gd" id="5"]
[ext_resource type="Material" path="res://model/battle_bot_color.tres" id="6"]
[ext_resource type="Script" path="res://button_change_scene.gd" id="8"]
[ext_resource type="Script" path="res://addons/sade/ik_look_at.gd" id="9"]
[ext_resource type="Script" uid="uid://dpsdir1qgcjff" path="res://button_change_scene.gd" id="8"]
[ext_resource type="Script" uid="uid://tmd4ubxbhvue" path="res://addons/sade/ik_look_at.gd" id="9"]
[sub_resource type="PlaneMesh" id="1"]
size = Vector2(40, 40)

View File

@@ -9,6 +9,7 @@ const DECELERATION = 4
@onready var gravity := float(-ProjectSettings.get_setting("physics/3d/default_gravity"))
@onready var start_position := position
func _physics_process(delta: float) -> void:
if Input.is_action_just_pressed(&"exit"):
get_tree().quit()
@@ -16,6 +17,10 @@ func _physics_process(delta: float) -> void:
# Pressed the reset key or fell off the ground.
position = start_position
velocity = Vector3.ZERO
# We teleported the player on the lines above. Reset interpolation
# to prevent it from interpolating from the old player position
# to the new position.
reset_physics_interpolation()
var dir := Vector3()
dir.x = Input.get_axis(&"move_left", &"move_right")

View File

@@ -84,6 +84,7 @@ exit={
common/physics_ticks_per_second=120
3d/default_gravity=13.0
common/physics_interpolation=true
[rendering]

View File

@@ -27,6 +27,7 @@ gdscript/warnings/untyped_declaration=1
[physics]
common/physics_ticks_per_second=120
common/physics_interpolation=true
[rendering]

View File

@@ -98,3 +98,4 @@ character_jump={
jolt_physics_3d/limits/max_bodies=20480
jolt_physics_3d/limits/max_body_pairs=131072
jolt_physics_3d/limits/max_contact_constraints=40960
common/physics_interpolation=true

View File

@@ -236,10 +236,11 @@ mesh = SubResource("QuadMesh_kqa4x")
surface_material_override/0 = SubResource("StandardMaterial3D_7q0mq")
[node name="Animation" type="AnimationPlayer" parent="."]
autoplay = "spin"
callback_mode_process = 0
libraries = {
"": SubResource("AnimationLibrary_7v453")
}
autoplay = "spin"
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00894194, 0.575859, 0.0193955)

View File

@@ -149,6 +149,7 @@ mesh = SubResource("SphereMesh_gjrxu")
surface_material_override/0 = SubResource("StandardMaterial3D_aw6a5")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
callback_mode_process = 0
libraries = {
"": SubResource("AnimationLibrary_pyoek")
}

View File

@@ -40,6 +40,10 @@ func _physics_process(delta: float) -> void:
# Player hit the reset button or fell off the map.
position = initial_position
velocity = Vector3.ZERO
# We teleported the player on the lines above. Reset interpolation
# to prevent it from interpolating from the old player position
# to the new position.
reset_physics_interpolation()
# Update coin count and its "parallax" copies.
# This gives text a pseudo-3D appearance while still using Label3D instead of the more limited TextMesh.

View File

@@ -116,15 +116,35 @@ script = ExtResource("2")
[node name="Player" parent="." instance=ExtResource("3_uccbe")]
[node name="Skeleton3D" parent="Player/Skeleton" index="0"]
bones/5/rotation = Quaternion(0.501129, -0.498869, -0.501128, 0.498869)
bones/9/rotation = Quaternion(-0.264667, 0.951702, -0.15503, -0.013433)
bones/10/rotation = Quaternion(0.744208, -0.433567, 0.504614, 0.0594899)
bones/11/rotation = Quaternion(0.264667, 0.951702, -0.15503, 0.013433)
bones/13/rotation = Quaternion(-0.000357303, 0.998602, 0.0504822, -0.0156872)
bones/14/rotation = Quaternion(0.720784, -0.0117194, -0.041935, 0.691791)
bones/15/rotation = Quaternion(0.998503, -0.0419896, 0.0282027, 0.0208377)
bones/16/rotation = Quaternion(0.000357169, 0.998602, 0.050483, 0.0156871)
bones/17/rotation = Quaternion(0.720784, 0.0117189, 0.0419352, 0.691791)
bones/1/position = Vector3(1.09056e-20, 2.10612, -6.88338e-14)
bones/1/rotation = Quaternion(1.42109e-13, -2.84217e-14, -7.28307e-22, 1)
bones/2/rotation = Quaternion(-1.42109e-13, -1.80682e-21, 4.58668e-21, 1)
bones/3/rotation = Quaternion(-0.020416, 1.27213e-08, -1.7937e-09, 0.999792)
bones/4/rotation = Quaternion(3.37177e-09, 0.996325, -0.08565, -9.39008e-07)
bones/5/rotation = Quaternion(0.501129, -0.498869, -0.501129, 0.498869)
bones/6/position = Vector3(-6.01139e-07, 0.0040059, -2.27374e-13)
bones/7/position = Vector3(3.05648e-08, 1.2429, 0.270992)
bones/8/rotation = Quaternion(0.744208, 0.433567, -0.504614, 0.0594899)
bones/9/rotation = Quaternion(-0.264667, 0.951702, -0.155029, -0.0134332)
bones/10/rotation = Quaternion(0.744208, -0.433567, 0.504614, 0.0594898)
bones/11/rotation = Quaternion(0.264667, 0.951702, -0.155029, 0.0134332)
bones/11/scale = Vector3(1, 1, 1)
bones/12/rotation = Quaternion(0.998503, 0.0419892, -0.0282026, 0.0208368)
bones/13/position = Vector3(4.87277e-08, 0.644635, -6.03109e-10)
bones/13/rotation = Quaternion(-0.000357039, 0.998602, 0.0504818, -0.0156871)
bones/14/rotation = Quaternion(0.720784, -0.0117192, -0.0419344, 0.691791)
bones/15/rotation = Quaternion(0.998503, -0.0419892, 0.0282027, 0.0208378)
bones/16/position = Vector3(-6.38546e-08, 0.644636, -8.27896e-10)
bones/16/rotation = Quaternion(0.000356988, 0.998602, 0.0504828, 0.015687)
bones/17/rotation = Quaternion(0.720784, 0.0117191, 0.0419345, 0.691791)
bones/18/position = Vector3(-4.35527e-07, 6.35228, 5.79659)
bones/18/rotation = Quaternion(1, -1.01905e-13, 7.54979e-08, -4.23517e-21)
bones/19/position = Vector3(0.518863, 0.204768, 3.89848e-08)
bones/20/position = Vector3(-0.518863, 0.204768, -3.89848e-08)
bones/21/position = Vector3(0.411677, 1.62881, 0.663951)
bones/22/position = Vector3(-0.411677, 1.62881, 0.66395)
bones/23/position = Vector3(2.62535, 2.59016, 0.186879)
bones/25/position = Vector3(1.57185, 3.44768, -0.510255)
[node name="Robot" parent="Player/Skeleton/Skeleton3D" index="0"]
layers = 2
@@ -177,11 +197,53 @@ font_size = 48
root_node = NodePath("../Player")
tree_root = SubResource("23")
anim_player = NodePath("../Player/AnimationPlayer")
parameters/current_length = 1.23333
parameters/current_position = 0.395526
parameters/current_delta = 0.030673
parameters/Animation/current_length = 1.23333
parameters/Animation/current_position = 0.395526
parameters/Animation/current_delta = 0.030673
"parameters/Animation 2/current_length" = 0.833333
"parameters/Animation 2/current_position" = 0.0
"parameters/Animation 2/current_delta" = 0.0
"parameters/Animation 3/current_length" = 0.433333
"parameters/Animation 3/current_position" = 0.0
"parameters/Animation 3/current_delta" = 0.0
"parameters/Animation 4/current_length" = 0.433333
"parameters/Animation 4/current_position" = 0.0
"parameters/Animation 4/current_delta" = 0.0
"parameters/Animation 5/current_length" = 0.433333
"parameters/Animation 5/current_position" = 0.0
"parameters/Animation 5/current_delta" = 0.0
"parameters/Animation 6/current_length" = 1.03333
"parameters/Animation 6/current_position" = 0.0
"parameters/Animation 6/current_delta" = 0.0
parameters/air_dir/current_length = 0.433333
parameters/air_dir/current_position = 0.0
parameters/air_dir/current_delta = 0.0
parameters/air_dir/blend_amount = 0.0
parameters/gun/current_length = 1.23333
parameters/gun/current_position = 0.395526
parameters/gun/current_delta = 0.030673
parameters/gun/blend_amount = 0.0
parameters/output/current_length = 1.23333
parameters/output/current_position = 0.395526
parameters/output/current_delta = 0.030673
parameters/run/current_length = 1.23333
parameters/run/current_position = 0.395526
parameters/run/current_delta = 0.030673
parameters/run/blend_amount = 0.0
parameters/scale/current_length = 1.23333
parameters/scale/current_position = 0.395526
parameters/scale/current_delta = 0.030673
parameters/scale/scale = 1.5
parameters/speed/current_length = 1.03333
parameters/speed/current_position = 0.0
parameters/speed/current_delta = 0.0
parameters/speed/blend_amount = 0
parameters/state/current_length = 1.23333
parameters/state/current_position = 0.395526
parameters/state/current_delta = 0.030673
parameters/state/blend_amount = 0.0
[node name="Forward" type="TouchScreenButton" parent="."]

View File

@@ -143,6 +143,7 @@ reset_position={
common/physics_ticks_per_second=120
3d/default_gravity=22.0
common/physics_interpolation=true
[rendering]

View File

@@ -11,6 +11,10 @@ func _physics_process(delta: float) -> void:
# Pressed the reset key or fell off the ground.
position = start_position
linear_velocity = Vector3.ZERO
# We teleported the player on the lines above. Reset interpolation
# to prevent it from interpolating from the old player position
# to the new position.
reset_physics_interpolation()
var dir := Vector3()
dir.x = Input.get_axis(&"move_left", &"move_right")

View File

@@ -84,6 +84,7 @@ exit={
common/physics_ticks_per_second=120
3d/default_gravity=13.0
common/physics_interpolation=true
[rendering]

View File

@@ -51,7 +51,7 @@ script = ExtResource("1")
[node name="Pivot" type="Node3D" parent="."]
[node name="Character" parent="Pivot" instance=ExtResource("2")]
transform = Transform3D(1, 0, 0, 0, 0.996145, 0.0877225, 0, -0.0877225, 0.996145, 0, 0.329753, 0)
transform = Transform3D(1, 0, 0, 0, 0.987214, 0.1594, 0, -0.1594, 0.987214, 0, 0.348069, 0)
[node name="CollisionShape" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.52793, 0)
@@ -78,6 +78,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.062134, 0.331645)
aabb = AABB(-1.19986, 0.251327, -1.57098, 2.41047, 1.09305, 3.17223)
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
callback_mode_process = 0
libraries = {
"": SubResource("AnimationLibrary_5n6vs")
}

View File

@@ -54,7 +54,7 @@ script = ExtResource("1")
[node name="Pivot" type="Node3D" parent="."]
[node name="Character" parent="Pivot" instance=ExtResource("2")]
transform = Transform3D(1, 0, 0, 0, 0.984808, 0.173648, 0, -0.173648, 0.984808, 0, 0.349734, 0)
transform = Transform3D(1, 0, 0, 0, 0.987214, 0.1594, 0, -0.1594, 0.987214, 0, 0.348069, 0)
[node name="CollisionShape" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.771765, 0)
@@ -86,6 +86,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.45857, 0.95, 1.15318)
shape = SubResource("CylinderShape3D_76fa1")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
callback_mode_process = 0
libraries = {
"": SubResource("AnimationLibrary_aq6tr")
}

View File

@@ -80,6 +80,7 @@ jump={
[physics]
common/physics_ticks_per_second=120
common/physics_interpolation=true
[rendering]

View File

@@ -158,6 +158,7 @@ cycle_mood={
[physics]
common/physics_ticks_per_second=120
common/physics_interpolation=true
[rendering]

View File

@@ -71,7 +71,7 @@ func _physics_process(_delta: float) -> void:
desired_fov = clamp(base_fov + (abs(global_position.length() - previous_position.length()) - FOV_CHANGE_MIN_SPEED) * FOV_SPEED_FACTOR, base_fov, 100)
fov = lerpf(fov, desired_fov, FOV_SMOOTH_FACTOR)
# Turn a little up or down
# Turn a little up or down.
transform.basis = Basis(transform.basis[0], deg_to_rad(angle_v_adjust)) * transform.basis
previous_position = global_position
@@ -89,3 +89,7 @@ func update_camera() -> void:
# This detaches the camera transform from the parent spatial node, but only
# for exterior and top-down cameras.
set_as_top_level(camera_type != CameraType.INTERIOR)
# The camera transition is meant to be instant, so make sure physics interpolation
# doesn't change its appearance.
reset_physics_interpolation()

View File

@@ -3,7 +3,7 @@
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://e8iojcfvf11q"
uid="uid://cs18x0bwjd8u8"
path="res://.godot/imported/meshes.glb-030ff425937f3e98d423cb5cef7ede3d.scn"
[deps]
@@ -13,8 +13,8 @@ dest_files=["res://.godot/imported/meshes.glb-030ff425937f3e98d423cb5cef7ede3d.s
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
@@ -32,82 +32,6 @@ animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"materials": {
"car_blue": {
"use_external/enabled": false,
"use_external/path": "res://town/materials/car_blue.tres"
},
"car_yellow": {
"use_external/enabled": false,
"use_external/path": "res://town/materials/car_red.tres"
},
"chrome": {
"use_external/enabled": false,
"use_external/path": "res://town/materials/chrome.tres"
},
"truck_trailer": {
"use_external/enabled": true,
"use_external/path": "res://vehicles/truck_trailer.tres"
}
},
"meshes": {
"meshes_minivan": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"lods/raycast_normals": false,
"save_to_file/enabled": true,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://vehicles/meshes/minivan.res"
},
"meshes_tow_truck": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"lods/raycast_normals": false,
"save_to_file/enabled": true,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://vehicles/meshes/tow_truck.res"
},
"meshes_truck_cab": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"lods/raycast_normals": false,
"save_to_file/enabled": true,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://vehicles/meshes/truck_cab.res"
},
"meshes_truck_trailer": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"lods/raycast_normals": false,
"save_to_file/enabled": true,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://vehicles/meshes/truck_trailer.res"
},
"meshes_wheel": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"lods/raycast_normals": false,
"save_to_file/enabled": true,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://vehicles/meshes/wheel.res"
}
}
}
_subresources={}
gltf/naming_version=0
gltf/embedded_image_handling=1

View File

@@ -27,6 +27,7 @@ Settings="*res://settings.gd"
[debug]
settings/physics_interpolation/enable_warnings=false
gdscript/warnings/untyped_declaration=1
[display]
@@ -148,6 +149,7 @@ pick_block={
common/physics_ticks_per_second=120
3d/default_gravity=20.0
common/physics_interpolation=true
[rendering]