Hello all!
Trying to move from 2D to 3D with Godot 4.1.1. So, the story is:
(1) Created in Blender (3.6) simple plane, and a simple tree (just 7 meshes); for plane use -col and for tree just add a cube with size of tree with adding to object name -colonly (two separate blend files for plane and for tree);
(2) Import to Godot; all meshes are ok, collision shapes also what i expected.
First issue.
ANY time i run a Game, Godot shows me message 'Requested file format unknown: blend' ;( I close this message, but after re-run game, Godot show this again.. Wtf?..
Second issue. Crazy issue 😉 Or ;(
Using simple code of Hero movement (standart from Godot template; hero is just Cylinder mesh), i am going to my imported tree with simple box collider (imported also from Blender). When i collide and stop movement, some seconds after trying move forward, i CROSS a box collider inside tree and when can ONLY move INSIDE borders of my collider! So under the tree 😉
Could anyone help me what is happening here??
UPD: trying to do manual collision shape in Godot, it works normally; so this is difference between imported Blender & manual created collision:


So, first is from Blender. Now question is seems to be i-> should i trust Godot's ability to import collisions from Blender, or always do it by my self manually (if it is so, this is very bad imho)..
Code of movement, no any additional code:
func _physics_process(delta):
if not is_on_floor():
velocity.y -= gravity * delta
# Handle Jump.
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
velocity.y = JUMP_VELOCITY
# Get the input direction and handle the movement/deceleration.
# As good practice, you should replace UI actions with custom gameplay actions.
var input_dir = Input.get_vector("left", "right", "up", "down")
var direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
if direction:
velocity.x = direction.x * SPEED
velocity.z = direction.z * SPEED
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
velocity.z = move_toward(velocity.z, 0, SPEED)
move_and_slide()
Thanks a lot for any thoughts!