added tail mesh to the ball

This commit is contained in:
AmyLillya 2023-09-08 14:03:37 -03:00
parent 4e6ff03c4e
commit 513a7e32c8
8 changed files with 44 additions and 11 deletions

View File

@ -7,5 +7,5 @@
render_priority = 0
shader = ExtResource("1_kfvtm")
shader_parameter/intensity = 1.0
shader_parameter/color = Color(0.333333, 0.545098, 0.976471, 0.862745)
shader_parameter/color = Color(0.333333, 0.545098, 0.976471, 1)
shader_parameter/matcap = ExtResource("2_o5lk5")

View File

@ -14,5 +14,4 @@ void fragment() {
vec2 matcap_uv = (NORMAL.xy * vec2(0.5, -0.5) + vec2(0.5, 0.5));
ALBEDO = color.rgb;
ALBEDO *= mix(vec3(1.0), texture(matcap, matcap_uv).rgb, intensity);
ALPHA = color.a;
}

Binary file not shown.

View File

@ -3,7 +3,7 @@
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bvnuni6qjuvt4"
uid="uid://ctsvwwopru2jf"
path="res://.godot/imported/ball_tail.glb-e1c9b3c5d2a8f19476283eb997d8e59c.scn"
[deps]
@ -28,5 +28,12 @@ animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
_subresources={
"materials": {
"Ball": {
"use_external/enabled": true,
"use_external/path": "res://Ball/Meshes/ball_material.tres"
}
}
}
gltf/embedded_image_handling=1

20
Ball/ball_tail_mesh.gd Normal file
View File

@ -0,0 +1,20 @@
extends Node3D
@onready var ball = owner
@onready var mesh = get_node("tail")
func _process(delta):
# Align the tail to the linear velocity
look_at(ball.linear_velocity + ball.global_position)
shrink_tail()
func shrink_tail():
# Set the blend shape value to how much the ball is squished
# A power of 0.5 makes the shrinking effect more apparent
var factor = pow((1 - ball.mesh.scale.z), 0.5)
var blend_shape = mesh.find_blend_shape_by_name("Shrink")
mesh.set_blend_shape_value(blend_shape, factor)

View File

@ -11,7 +11,9 @@ extends RigidBody3D
func _ready():
linear_velocity = linear_velocity.normalized() * speed
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
# DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
func _physics_process(delta):
if global_position.length() >= 100:
@ -33,7 +35,7 @@ func _physics_process(delta):
mesh.scale.y = scalexy
else:
mesh.scale = Vector3.ONE
# Physics
body_anchor.velocity = (global_position - body_anchor.global_position).normalized() * speed
if not body_anchor.move_and_slide():

View File

@ -1,7 +1,9 @@
[gd_scene load_steps=7 format=3 uid="uid://dd1e3u5cyy3mk"]
[gd_scene load_steps=9 format=3 uid="uid://dd1e3u5cyy3mk"]
[ext_resource type="Material" uid="uid://ccktnp41cys0r" path="res://Ball/Meshes/ball_material.tres" id="1_5n3i6"]
[ext_resource type="Script" path="res://Ball/ball_test.gd" id="1_s3xmr"]
[ext_resource type="PackedScene" uid="uid://ctsvwwopru2jf" path="res://Ball/Meshes/ball_tail.glb" id="3_s5l2d"]
[ext_resource type="Script" path="res://Ball/ball_tail_mesh.gd" id="4_vur1t"]
[sub_resource type="SphereShape3D" id="SphereShape3D_jblqj"]
radius = 0.1
@ -20,9 +22,9 @@ lock_rotation = true
linear_damp_mode = 1
angular_damp_mode = 1
script = ExtResource("1_s3xmr")
speed = 10.0
gravity = Vector3(0, -10, 0)
stiffness = 10.0
speed = 5.0
gravity = Vector3(0, -1, 0)
stiffness = 5.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("SphereShape3D_jblqj")
@ -32,6 +34,9 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.0029127)
mesh = SubResource("SphereMesh_52mtx")
surface_material_override/0 = ExtResource("1_5n3i6")
[node name="TailMesh" parent="BallMesh" instance=ExtResource("3_s5l2d")]
script = ExtResource("4_vur1t")
[node name="BallBody" type="StaticBody3D" parent="."]
collision_layer = 4
collision_mask = 5

View File

@ -1,7 +1,7 @@
extends CharacterBody3D
const SPEED = 50.0
const SPEED = 10.0
const JUMP_VELOCITY = 4.5
# Get the gravity from the project settings to be synced with RigidBody nodes.