Update!
This commit is contained in:
commit
5ca8491046
Binary file not shown.
|
@ -0,0 +1,2 @@
|
|||
slime: https://quaternius.itch.io/lowpoly-animated-animals
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,8 +1,8 @@
|
|||
# Godot 4+ specific ignores
|
||||
.godot/
|
||||
*.bend1
|
||||
*.bend2
|
||||
*.bend3
|
||||
*.bend4
|
||||
*.bend5
|
||||
*.bend6
|
||||
*.blend1
|
||||
*.blend2
|
||||
*.blend3
|
||||
*.blend4
|
||||
*.blend5
|
||||
*.blend6
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://3d51hjh2st8a"]
|
||||
|
||||
[ext_resource type="PackedScene" path="res://Models/PalmBaby.glb" id="2_xgklm"]
|
||||
[ext_resource type="PackedScene" path="res://Models/PalmDefalt.glb" id="3_cgw64"]
|
||||
[ext_resource type="PackedScene" uid="uid://d3ccrfjpg4hbv" path="res://Models/palm_curved.tscn" id="3_bth2b"]
|
||||
[ext_resource type="PackedScene" path="res://Models/palm_default.tscn" id="4_2cnue"]
|
||||
[ext_resource type="PackedScene" uid="uid://ctbyl0qbks4k6" path="res://Models/ocean.tscn" id="4_dey2i"]
|
||||
[ext_resource type="PackedScene" uid="uid://difi2tur2j4dg" path="res://Models/island.tscn" id="4_lq6cy"]
|
||||
[ext_resource type="PackedScene" path="res://Models/palm_young.tscn" id="5_prlw2"]
|
||||
|
||||
[node name="Node3D2" type="Node3D"]
|
||||
|
||||
|
|
|
@ -0,0 +1,165 @@
|
|||
shader_type canvas_item;
|
||||
|
||||
// Color space code from
|
||||
// HSV: https://godotshaders.com/shader/hsv-adjustment/
|
||||
// LAB/XYZ: https://gist.github.com/msbarry/cd98f928542f5152111a
|
||||
// Note: don't use the XYZ space, but sources use it to convert to LAB
|
||||
|
||||
|
||||
|
||||
uniform sampler2D screen_texture : hint_screen_texture;
|
||||
|
||||
|
||||
uniform float param : hint_range(0.0, 255.0, 1.0);
|
||||
uniform float param2 : hint_range(0.0, 255.0, 1.0);
|
||||
|
||||
vec3 rgb2hsv(vec3 c) {
|
||||
vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
||||
vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
|
||||
vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
|
||||
|
||||
float d = q.x - min(q.w, q.y);
|
||||
float e = 1.0e-10;
|
||||
return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
|
||||
}
|
||||
|
||||
vec3 hsv2rgb(vec3 c) {
|
||||
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
||||
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
||||
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
||||
}
|
||||
|
||||
vec3 rgb2xyz(vec3 c) {
|
||||
float R = ((c.r > 0.04045) ? pow((( c.r + 0.055 ) / 1.055), 2.4) : (c.r / 12.92)) * 100.0;
|
||||
float G = ((c.g > 0.04045) ? pow((( c.g + 0.055 ) / 1.055), 2.4) : (c.g / 12.92)) * 100.0;
|
||||
float B = ((c.b > 0.04045) ? pow((( c.b + 0.055 ) / 1.055), 2.4) : (c.b / 12.92)) * 100.0;
|
||||
|
||||
float X = R * 0.4124 + G * 0.3576 + B * 0.1805;
|
||||
float Y = R * 0.2126 + G * 0.7152 + B * 0.0722;
|
||||
float Z = R * 0.0193 + G * 0.1192 + B * 0.9505;
|
||||
|
||||
return vec3(X, Y, Z);
|
||||
}
|
||||
|
||||
vec3 xyz2rgb(vec3 c) {
|
||||
float X = c.x / 100.0;
|
||||
float Y = c.y / 100.0;
|
||||
float Z = c.z / 100.0;
|
||||
|
||||
float R = X * 3.2406 + Y * -1.5372 + Z * -0.4986;
|
||||
float G = X * -0.9689 + Y * 1.8758 + Z * 0.0415;
|
||||
float B = X * 0.0557 + Y * -0.2040 + Z * 1.0570;
|
||||
|
||||
R = ((R > 0.0031308) ? (1.055 * ( pow( R, 1./2.4 ) ) - 0.055) : (12.92 * R));
|
||||
G = ((G > 0.0031308) ? (1.055 * ( pow( G, 1./2.4 ) ) - 0.055) : (12.92 * G));
|
||||
B = ((B > 0.0031308) ? (1.055 * ( pow( B, 1./2.4 ) ) - 0.055) : (12.92 * B));
|
||||
|
||||
return vec3(R, G, B);
|
||||
}
|
||||
|
||||
vec3 xyz2lab(vec3 c) {
|
||||
float X = c.x / 95.047;
|
||||
float Y = c.y / 100.0;
|
||||
float Z = c.z / 108.883;
|
||||
|
||||
X = ((X > 0.008856) ? (pow( X, 1./3.)) : (( 7.787 * X ) + ( 16./116.)));
|
||||
Y = ((Y > 0.008856) ? (pow( Y, 1./3.)) : (( 7.787 * Y ) + ( 16./116.)));
|
||||
Z = ((Z > 0.008856) ? (pow( Z, 1./3.)) : (( 7.787 * Z ) + ( 16./116.)));
|
||||
|
||||
float L = ( 116. * Y ) - 16.;
|
||||
float a = 500. * ( X - Y );
|
||||
float b = 200. * ( Y - Z );
|
||||
|
||||
return vec3(L, a, b);
|
||||
}
|
||||
|
||||
vec3 lab2xyz(vec3 c) {
|
||||
float L = c.x;
|
||||
float a = c.y;
|
||||
float b = c.z;
|
||||
|
||||
float Y = ( L + 16. ) / 116.;
|
||||
float X = a / 500. + Y;
|
||||
float Z = Y - b / 200.;
|
||||
|
||||
Y = ((pow(Y,3.) > 0.008856) ? (pow(Y,3.)) : ((Y - 16. / 116.) / 7.787));
|
||||
X = ((pow(X,3.) > 0.008856) ? (pow(X,3.)) : ((X - 16. / 116.) / 7.787));
|
||||
Z = ((pow(Z,3.) > 0.008856) ? (pow(Z,3.)) : ((Z - 16. / 116.) / 7.787));
|
||||
|
||||
float ref_X = 95.047;
|
||||
float ref_Y = 100.0;
|
||||
float ref_Z = 108.883;
|
||||
|
||||
return vec3(ref_X * X, ref_Y * Y, ref_Z * Z);
|
||||
}
|
||||
|
||||
|
||||
vec3 band_colors(vec3 rgb)
|
||||
{
|
||||
return round(rgb * param) / param;
|
||||
}
|
||||
|
||||
vec3 band_colors_preserve_hue_lum(vec3 rgb, float ncolors)
|
||||
{
|
||||
vec3 hsv = rgb2hsv(rgb);
|
||||
hsv.r = round(hsv.r * ncolors) / ncolors;
|
||||
vec3 lab = xyz2lab(rgb2xyz(rgb));
|
||||
lab.r = round(lab.r * (ncolors / 100.0)) / (ncolors / 100.0);
|
||||
|
||||
// Into HSV
|
||||
vec2 sv = rgb2hsv(xyz2rgb(lab2xyz(lab))).gb;
|
||||
hsv.gb = sv;
|
||||
return hsv2rgb(hsv);
|
||||
}
|
||||
|
||||
uniform float scale = 2.0;
|
||||
uniform int grid = 5;
|
||||
|
||||
vec3 band_dither(vec3 rgb, vec2 uv)
|
||||
{
|
||||
|
||||
uv *= (1.0 / scale);
|
||||
int x = int(mod(uv.x, float(grid))) + 1;
|
||||
int y = int(mod(uv.y, float(grid))) + 1;
|
||||
|
||||
vec3 hsv = rgb2hsv(rgb);
|
||||
|
||||
int g = int(round(mix(float(grid), float(2), fract(hsv.r * param))));
|
||||
|
||||
|
||||
if (x % g == 0 && y % g == 0) {
|
||||
hsv.r = ceil(hsv.r * param) / param;
|
||||
} else {
|
||||
hsv.r = floor(hsv.r * param) / param;
|
||||
}
|
||||
vec3 lab = xyz2lab(rgb2xyz(rgb));
|
||||
if (x % g == 0 && y % g == 0) {
|
||||
lab.r = ceil(lab.r * (param / 100.0)) / (param / 100.0);
|
||||
} else {
|
||||
lab.r = floor(lab.r * (param / 100.0)) / (param / 100.0);
|
||||
}
|
||||
|
||||
// Into HSV
|
||||
vec2 sv = rgb2hsv(xyz2rgb(lab2xyz(lab))).gb;
|
||||
hsv.gb = sv;
|
||||
|
||||
|
||||
return hsv2rgb(hsv);
|
||||
|
||||
}
|
||||
|
||||
uniform float anim_period : hint_range(0.1, 5, 0.01);
|
||||
void fragment()
|
||||
{
|
||||
vec3 rgb = texture(screen_texture, SCREEN_UV).rgb;
|
||||
vec3 band1 = band_colors_preserve_hue_lum(rgb, param);
|
||||
vec3 band2 = band_colors_preserve_hue_lum(rgb, param2);
|
||||
float weight = mod(TIME, anim_period) / anim_period;
|
||||
float double_weight = mod(TIME, anim_period*2.0) / (anim_period*2.0);
|
||||
weight = double_weight > 0.5 ? (1.-weight) : weight;
|
||||
vec3 mixed = mix(band1, band2, weight);
|
||||
COLOR.rgb = mixed;
|
||||
|
||||
|
||||
//COLOR.rgb = banded_nostalgia;
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://d2d4uv7o5gx5p"]
|
||||
|
||||
[ext_resource type="Shader" path="res://Level/World/screen_shader.gdshader" id="1_ldrc3"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_yagpk"]
|
||||
shader = ExtResource("1_ldrc3")
|
||||
shader_parameter/param = 40.0
|
||||
shader_parameter/param2 = 20.0
|
||||
shader_parameter/scale = 4.0
|
||||
shader_parameter/grid = 5
|
||||
shader_parameter/anim_period = 3.0
|
||||
|
||||
[node name="ScreenShader" type="CanvasLayer"]
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
material = SubResource("ShaderMaterial_yagpk")
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
|
@ -0,0 +1,11 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://b35w4hlh4n1jt"]
|
||||
|
||||
[sub_resource type="Environment" id="Environment_cxd2l"]
|
||||
background_mode = 1
|
||||
background_color = Color(0.733333, 0.317647, 0, 1)
|
||||
ambient_light_source = 2
|
||||
ambient_light_color = Color(1, 1, 1, 1)
|
||||
ambient_light_energy = 0.1
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment"]
|
||||
environment = SubResource("Environment_cxd2l")
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,45 @@
|
|||
extends Node3D
|
||||
|
||||
var upper_body_animation: AnimationPlayer
|
||||
var full_body_animation: AnimationPlayer
|
||||
|
||||
|
||||
signal anim_check_grab(position: Vector3)
|
||||
|
||||
var pickup_animation_in_progress = false
|
||||
signal pickup_animation_finished
|
||||
|
||||
func _ready():
|
||||
upper_body_animation = $AnimationPlayer.duplicate()
|
||||
add_child(upper_body_animation)
|
||||
full_body_animation = $AnimationPlayer
|
||||
full_body_animation.play("Idle")
|
||||
upper_body_animation.play("UpperBodyIdle")
|
||||
|
||||
func hold():
|
||||
if pickup_animation_in_progress:
|
||||
await pickup_animation_finished
|
||||
upper_body_animation.play("UpperBodyHolding")
|
||||
|
||||
func pickup():
|
||||
pickup_animation_in_progress = true
|
||||
full_body_animation.play("Pickup")
|
||||
await full_body_animation.animation_finished
|
||||
full_body_animation.play("Idle")
|
||||
upper_body_animation.play("UpperBodyIdle")
|
||||
pickup_animation_in_progress = false
|
||||
emit_signal("pickup_animation_finished")
|
||||
|
||||
func idle():
|
||||
full_body_animation.play("Idle")
|
||||
|
||||
func drop():
|
||||
full_body_animation.play("Idle")
|
||||
upper_body_animation.play("UpperBodyIdle")
|
||||
|
||||
|
||||
func walk():
|
||||
full_body_animation.play("Walk")
|
||||
|
||||
func animation_key_grab():
|
||||
emit_signal("anim_check_grab", $GrabPointLocation.global_transform)
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,27 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://bgoo1lbt28na"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bhanbx2dyhv2d" path="res://Models/grape_man.glb" id="1_fh5yr"]
|
||||
[ext_resource type="Script" path="res://Models/grape_man.gd" id="2_ksje8"]
|
||||
|
||||
[node name="grape_man" instance=ExtResource("1_fh5yr")]
|
||||
script = ExtResource("2_ksje8")
|
||||
|
||||
[node name="Skeleton3D" parent="rig" index="0"]
|
||||
bones/0/rotation = Quaternion(0.0912427, 0, 0, 0.995829)
|
||||
bones/1/rotation = Quaternion(-0.0891896, 1.18734e-07, -1.06322e-08, 0.996015)
|
||||
bones/2/rotation = Quaternion(0.0133933, -1.19199e-07, 1.5966e-09, 0.99991)
|
||||
bones/3/rotation = Quaternion(-0.00997737, 0.100365, -0.694951, 0.711948)
|
||||
bones/4/rotation = Quaternion(0.0907207, -0.104937, 0.0616428, 0.988412)
|
||||
bones/4/scale = Vector3(1, 1, 1)
|
||||
bones/5/rotation = Quaternion(-0.00997737, -0.100365, 0.694951, 0.711948)
|
||||
bones/6/rotation = Quaternion(0.0907207, 0.104937, -0.0616428, 0.988412)
|
||||
bones/6/scale = Vector3(1, 1, 1)
|
||||
bones/7/rotation = Quaternion(0.0142813, -6.34259e-18, -4.44044e-16, 0.999898)
|
||||
bones/10/rotation = Quaternion(0.105246, 0.0039338, -0.0113526, 0.994374)
|
||||
bones/15/rotation = Quaternion(0.105246, -0.0039338, 0.0113526, 0.994374)
|
||||
|
||||
[node name="GrabPointLocation" type="Node3D" parent="." index="2"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.29365)
|
||||
|
||||
[node name="OmniLight3D" type="OmniLight3D" parent="." index="3"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.289473, 8.26292, 4.26359)
|
Binary file not shown.
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ce7qteyplgh7d"
|
||||
path.s3tc="res://.godot/imported/grape_man_grape_man.png-2e5aad214d556f9249cd2523505b0b56.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
generator_parameters={}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Models/grape_man_grape_man.png"
|
||||
dest_files=["res://.godot/imported/grape_man_grape_man.png-2e5aad214d556f9249cd2523505b0b56.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
|
@ -0,0 +1,9 @@
|
|||
extends Node3D
|
||||
|
||||
@onready var animation_state: AnimationNodeStateMachinePlayback = $AnimationTree.get("parameters/playback")
|
||||
|
||||
func walk():
|
||||
animation_state.travel("Walk")
|
||||
|
||||
func idle():
|
||||
animation_state.travel("Idle")
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,44 @@
|
|||
[gd_scene load_steps=9 format=3 uid="uid://c3q6fva1c1baa"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://biuw6lh16d2qr" path="res://Models/slime.glb" id="1_jttw0"]
|
||||
[ext_resource type="Script" path="res://Models/slime.gd" id="2_xo27e"]
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_nwfvl"]
|
||||
animation = &"Slime_Idle"
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_avpkh"]
|
||||
animation = &"Slime_Walk"
|
||||
|
||||
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_n3s05"]
|
||||
xfade_time = 0.3
|
||||
|
||||
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_fbi2x"]
|
||||
xfade_time = 0.3
|
||||
|
||||
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_srcja"]
|
||||
advance_mode = 2
|
||||
|
||||
[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_prt7l"]
|
||||
states/Idle/node = SubResource("AnimationNodeAnimation_nwfvl")
|
||||
states/Idle/position = Vector2(570, 145)
|
||||
states/Walk/node = SubResource("AnimationNodeAnimation_avpkh")
|
||||
states/Walk/position = Vector2(329, 155)
|
||||
transitions = ["Walk", "Idle", SubResource("AnimationNodeStateMachineTransition_n3s05"), "Idle", "Walk", SubResource("AnimationNodeStateMachineTransition_fbi2x"), "Start", "Idle", SubResource("AnimationNodeStateMachineTransition_srcja")]
|
||||
|
||||
[node name="slime" instance=ExtResource("1_jttw0")]
|
||||
script = ExtResource("2_xo27e")
|
||||
|
||||
[node name="Skeleton3D" parent="Armature" index="0"]
|
||||
bones/1/position = Vector3(0, 0.264857, 0)
|
||||
bones/2/position = Vector3(0.028393, 0.513056, 0.0124737)
|
||||
bones/2/rotation = Quaternion(-0.178538, 0.0193832, -0.211014, 0.960844)
|
||||
bones/3/rotation = Quaternion(0.109512, -0.695192, 0.00400734, 0.710422)
|
||||
bones/7/rotation = Quaternion(-0.347763, 2.02718e-09, 2.9685e-09, 0.937583)
|
||||
bones/8/rotation = Quaternion(-0.091967, -7.45328e-10, -7.10578e-10, 0.995762)
|
||||
bones/10/rotation = Quaternion(0.0144373, -4.10082e-08, -1.82391e-09, 0.999896)
|
||||
bones/11/rotation = Quaternion(-0.373719, 8.36829e-08, 6.89615e-08, 0.927542)
|
||||
|
||||
[node name="AnimationTree" type="AnimationTree" parent="." index="2"]
|
||||
tree_root = SubResource("AnimationNodeStateMachine_prt7l")
|
||||
anim_player = NodePath("../AnimationPlayer")
|
||||
active = true
|
|
@ -0,0 +1,13 @@
|
|||
extends Node3D
|
||||
|
||||
func _on_pickup_pressed():
|
||||
$grape_man.pickup()
|
||||
|
||||
func _on_drop_pressed():
|
||||
$grape_man.drop()
|
||||
|
||||
func _on_idle_pressed():
|
||||
$grape_man.idle()
|
||||
|
||||
func _on_walk_pressed():
|
||||
$grape_man.walk()
|
|
@ -0,0 +1,60 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://bqnre1721kev2"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bgoo1lbt28na" path="res://Models/grape_man.tscn" id="1_3cekm"]
|
||||
[ext_resource type="Script" path="res://tests/test_grape_man_animation.gd" id="1_uhk63"]
|
||||
|
||||
[node name="test_grape_man_animation" type="Node3D"]
|
||||
script = ExtResource("1_uhk63")
|
||||
|
||||
[node name="grape_man" parent="." instance=ExtResource("1_3cekm")]
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="Control" type="Control" parent="CanvasLayer"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/Control"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 11.0
|
||||
offset_top = 15.0
|
||||
offset_right = -768.0
|
||||
offset_bottom = 15.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Pickup" type="Button" parent="CanvasLayer/Control/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Pickup"
|
||||
|
||||
[node name="Hold" type="Button" parent="CanvasLayer/Control/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Hold"
|
||||
|
||||
[node name="Drop" type="Button" parent="CanvasLayer/Control/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Drop"
|
||||
|
||||
[node name="Idle" type="Button" parent="CanvasLayer/Control/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Idle"
|
||||
|
||||
[node name="Walk" type="Button" parent="CanvasLayer/Control/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Walk"
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(0.551151, 0, 0.834406, 0, 1, 0, -0.834406, 0, 0.551151, 10.2206, 6.04514, 5.32455)
|
||||
|
||||
[connection signal="pressed" from="CanvasLayer/Control/VBoxContainer/Pickup" to="." method="_on_pickup_pressed"]
|
||||
[connection signal="pressed" from="CanvasLayer/Control/VBoxContainer/Hold" to="." method="_on_hold_pressed"]
|
||||
[connection signal="pressed" from="CanvasLayer/Control/VBoxContainer/Drop" to="." method="_on_drop_pressed"]
|
||||
[connection signal="pressed" from="CanvasLayer/Control/VBoxContainer/Idle" to="." method="_on_idle_pressed"]
|
||||
[connection signal="pressed" from="CanvasLayer/Control/VBoxContainer/Walk" to="." method="_on_walk_pressed"]
|
|
@ -0,0 +1,27 @@
|
|||
[gd_scene load_steps=7 format=3 uid="uid://da6lgcbp5slpk"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://difi2tur2j4dg" path="res://Models/island.tscn" id="1_noj3j"]
|
||||
[ext_resource type="PackedScene" uid="uid://bgoo1lbt28na" path="res://Models/grape_man.tscn" id="2_wgkew"]
|
||||
[ext_resource type="PackedScene" uid="uid://c3q6fva1c1baa" path="res://Models/slime.tscn" id="3_fy5yt"]
|
||||
[ext_resource type="PackedScene" uid="uid://ctbyl0qbks4k6" path="res://Models/ocean.tscn" id="4_3bnpu"]
|
||||
[ext_resource type="PackedScene" uid="uid://d2d4uv7o5gx5p" path="res://Level/World/screen_shader.tscn" id="5_ea8s5"]
|
||||
[ext_resource type="PackedScene" uid="uid://b35w4hlh4n1jt" path="res://Level/World/world_environment.tscn" id="6_61q30"]
|
||||
|
||||
[node name="test_scale" type="Node3D"]
|
||||
|
||||
[node name="island" parent="." instance=ExtResource("1_noj3j")]
|
||||
|
||||
[node name="grape_man" parent="." instance=ExtResource("2_wgkew")]
|
||||
transform = Transform3D(0.065, 0, 0, 0, 0.065, 0, 0, 0, 0.065, -0.218604, 1.55987, 0)
|
||||
|
||||
[node name="slime" parent="." instance=ExtResource("3_fy5yt")]
|
||||
transform = Transform3D(0.035, 0, 0, 0, 0.035, 0, 0, 0, 0.035, -0.0855325, 1.58964, 0)
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.906308, 0.422618, 0, -0.422618, 0.906308, -0.086, 2.5, 1.04)
|
||||
|
||||
[node name="ocean" parent="." instance=ExtResource("4_3bnpu")]
|
||||
|
||||
[node name="ScreenShader" parent="." instance=ExtResource("5_ea8s5")]
|
||||
|
||||
[node name="WorldEnvironment" parent="." instance=ExtResource("6_61q30")]
|
|
@ -0,0 +1,8 @@
|
|||
extends Node3D
|
||||
|
||||
func _on_idle_pressed():
|
||||
$slime.idle()
|
||||
|
||||
func _on_walk_pressed():
|
||||
$slime.walk()
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://cncrqbk7egbdy"]
|
||||
|
||||
[ext_resource type="Script" path="res://tests/test_slime_animation.gd" id="1_eeubk"]
|
||||
[ext_resource type="PackedScene" uid="uid://c3q6fva1c1baa" path="res://Models/slime.tscn" id="2_fqm0o"]
|
||||
|
||||
[node name="test_slime_animation" type="Node3D"]
|
||||
script = ExtResource("1_eeubk")
|
||||
|
||||
[node name="slime" parent="." instance=ExtResource("2_fqm0o")]
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="Control" type="Control" parent="CanvasLayer"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/Control"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 11.0
|
||||
offset_top = 15.0
|
||||
offset_right = -768.0
|
||||
offset_bottom = 15.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Idle" type="Button" parent="CanvasLayer/Control/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Idle"
|
||||
|
||||
[node name="Walk" type="Button" parent="CanvasLayer/Control/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Walk"
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(0.999682, 0, -0.0251998, 0, 1, 0, 0.0251998, 0, 0.999682, 0.262823, 2.33598, 7.32455)
|
||||
current = true
|
||||
|
||||
[connection signal="pressed" from="CanvasLayer/Control/VBoxContainer/Idle" to="." method="_on_idle_pressed"]
|
||||
[connection signal="pressed" from="CanvasLayer/Control/VBoxContainer/Walk" to="." method="_on_walk_pressed"]
|
Loading…
Reference in New Issue