Pārlūkot izejas kodu

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

This makes use of the new built-in 3D physics interpolation
added in Godot 4.4.
Hugo Locurcio 3 mēneši atpakaļ
vecāks
revīzija
819d201cc4

+ 2 - 2
3d/graphics_settings/3d_scene.tscn

@@ -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"]

+ 1 - 1
3d/graphics_settings/control.tscn

@@ -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"]

+ 4 - 4
3d/ik/fabrik_ik.tscn

@@ -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)

+ 7 - 7
3d/ik/fps/fps_example.tscn

@@ -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"]

+ 7 - 7
3d/ik/fps/simple_bullet.tscn

@@ -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")

+ 3 - 3
3d/ik/look_at_ik.tscn

@@ -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)

+ 4 - 4
3d/ik/skeleton_ik.tscn

@@ -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)

+ 5 - 0
3d/kinematic_character/player/cubio.gd

@@ -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")

+ 1 - 0
3d/kinematic_character/project.godot

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

+ 1 - 0
3d/navigation/project.godot

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

+ 1 - 0
3d/physics_tests/project.godot

@@ -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

+ 2 - 1
3d/platformer/coin/coin.tscn

@@ -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)

+ 1 - 0
3d/platformer/player/bullet/bullet.tscn

@@ -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")
 }

+ 4 - 0
3d/platformer/player/player.gd

@@ -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.

+ 71 - 9
3d/platformer/player/player.tscn

@@ -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="."]

+ 1 - 0
3d/platformer/project.godot

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

+ 4 - 0
3d/rigidbody_character/player/cubio.gd

@@ -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")

+ 1 - 0
3d/rigidbody_character/project.godot

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

+ 2 - 1
3d/squash_the_creeps/Mob.tscn

@@ -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")
 }

+ 2 - 1
3d/squash_the_creeps/Player.tscn

@@ -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")
 }

+ 1 - 0
3d/squash_the_creeps/project.godot

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

+ 1 - 0
3d/truck_town/project.godot

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

+ 5 - 1
3d/truck_town/vehicles/follow_camera.gd

@@ -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()

+ 4 - 80
3d/truck_town/vehicles/meshes/meshes.glb.import

@@ -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

+ 2 - 0
3d/voxel/project.godot

@@ -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]