Adding Lighting + Test Avatar

This commit is contained in:
Torsten 2025-07-04 11:16:12 +02:00
parent aa16c8c356
commit 06bcc44299
34 changed files with 11697 additions and 30 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dxqmgxq6o21yr"
path="res://.godot/imported/SSS.png-2f9378b87bb79664bfe80d327435761d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/gdquest_sophia/model/SSS.png"
dest_files=["res://.godot/imported/SSS.png-2f9378b87bb79664bfe80d327435761d.ctex"]
[params]
compress/mode=3
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

View file

@ -0,0 +1,15 @@
[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://cal2s6wv6y3j"]
[ext_resource type="Texture2D" uid="uid://bqj7x6pcb73iy" path="res://addons/gdquest_sophia/model/sophia_eye_open_diffuse.png" id="1_puhan"]
[ext_resource type="Texture2D" uid="uid://pcq7xge7vncv" path="res://addons/gdquest_sophia/model/sophia_eye_open_normal.png" id="2_8lr5k"]
[resource]
resource_name = "eye_mat_L"
transparency = 2
alpha_scissor_threshold = 0.5
alpha_antialiasing_mode = 0
vertex_color_use_as_albedo = true
albedo_texture = ExtResource("1_puhan")
roughness = 0.5
normal_enabled = true
normal_texture = ExtResource("2_8lr5k")

View file

@ -0,0 +1,15 @@
[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://cdp5t51v8o1rs"]
[ext_resource type="Texture2D" uid="uid://bqj7x6pcb73iy" path="res://addons/gdquest_sophia/model/sophia_eye_open_diffuse.png" id="1_a6jqn"]
[ext_resource type="Texture2D" uid="uid://pcq7xge7vncv" path="res://addons/gdquest_sophia/model/sophia_eye_open_normal.png" id="2_iuhho"]
[resource]
resource_name = "eye_mat_R"
transparency = 2
alpha_scissor_threshold = 0.5
alpha_antialiasing_mode = 0
vertex_color_use_as_albedo = true
albedo_texture = ExtResource("1_a6jqn")
roughness = 0.5
normal_enabled = true
normal_texture = ExtResource("2_iuhho")

View file

@ -0,0 +1,14 @@
[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://dye01l0ct4fby"]
[ext_resource type="Texture2D" uid="uid://ctfbobgg7ts8d" path="res://addons/gdquest_sophia/model/textures/eyes_diffuse_map.png" id="1_oox6g"]
[ext_resource type="Texture2D" uid="uid://bjvo8w2ptm7fc" path="res://addons/gdquest_sophia/model/textures/eyes_normal_map.png" id="2_r1vvu"]
[resource]
resource_name = "eye_mat_L"
transparency = 1
vertex_color_use_as_albedo = true
albedo_texture = ExtResource("1_oox6g")
roughness = 0.5
normal_enabled = true
normal_texture = ExtResource("2_r1vvu")
uv1_scale = Vector3(1, 0.5, 1)

View file

@ -0,0 +1,13 @@
[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://ejs88styylln"]
[ext_resource type="Texture2D" uid="uid://d3gigd8y5hjg" path="res://addons/gdquest_sophia/model/sophia_mouth_smile_diffuse.png" id="1_8gei4"]
[ext_resource type="Texture2D" uid="uid://c36m8cv33f0yi" path="res://addons/gdquest_sophia/model/sophia_mouth_smile_normal.png" id="2_e4i0b"]
[resource]
resource_name = "mouth_mat"
transparency = 1
vertex_color_use_as_albedo = true
albedo_texture = ExtResource("1_8gei4")
roughness = 0.5
normal_enabled = true
normal_texture = ExtResource("2_e4i0b")

View file

@ -0,0 +1,25 @@
[gd_resource type="StandardMaterial3D" load_steps=5 format=3 uid="uid://bv3j2e7k6f5xf"]
[ext_resource type="Texture2D" uid="uid://6jb7dt4d54ck" path="res://addons/gdquest_sophia/model/sophia_diffuse.png" id="1_m7hxq"]
[ext_resource type="Texture2D" uid="uid://dbg3uqtvqxigv" path="res://addons/gdquest_sophia/model/sophia_roughness.png" id="2_fbyat"]
[ext_resource type="Texture2D" uid="uid://mdhln8lltmyo" path="res://addons/gdquest_sophia/model/sophia_normal.png" id="3_tmo2m"]
[ext_resource type="Texture2D" uid="uid://dxqmgxq6o21yr" path="res://addons/gdquest_sophia/model/SSS.png" id="4_luinf"]
[resource]
resource_name = "sophia_material"
cull_mode = 2
vertex_color_use_as_albedo = true
albedo_texture = ExtResource("1_m7hxq")
metallic_texture = ExtResource("2_fbyat")
metallic_texture_channel = 2
roughness = 0.8
roughness_texture = ExtResource("2_fbyat")
roughness_texture_channel = 1
normal_enabled = true
normal_texture = ExtResource("3_tmo2m")
rim_enabled = true
rim = 0.5
subsurf_scatter_enabled = true
subsurf_scatter_strength = 0.25
subsurf_scatter_skin_mode = true
subsurf_scatter_texture = ExtResource("4_luinf")

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://6jb7dt4d54ck"
path="res://.godot/imported/sophia_diffuse.png-710d1558edaf3f43471c154545c2b229.ctex"
metadata={
"vram_texture": false
}
generator_parameters={}
[deps]
source_file="res://addons/gdquest_sophia/model/sophia_diffuse.png"
dest_files=["res://.godot/imported/sophia_diffuse.png-710d1558edaf3f43471c154545c2b229.ctex"]
[params]
compress/mode=3
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bqj7x6pcb73iy"
path="res://.godot/imported/sophia_eye_open_diffuse.png-60647aeb5542674bbffac89f0a61549c.ctex"
metadata={
"vram_texture": false
}
generator_parameters={}
[deps]
source_file="res://addons/gdquest_sophia/model/sophia_eye_open_diffuse.png"
dest_files=["res://.godot/imported/sophia_eye_open_diffuse.png-60647aeb5542674bbffac89f0a61549c.ctex"]
[params]
compress/mode=3
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://pcq7xge7vncv"
path="res://.godot/imported/sophia_eye_open_normal.png-bbe84a503b9bd7cfd04b46cb77d1b958.ctex"
metadata={
"vram_texture": false
}
generator_parameters={}
[deps]
source_file="res://addons/gdquest_sophia/model/sophia_eye_open_normal.png"
dest_files=["res://.godot/imported/sophia_eye_open_normal.png-bbe84a503b9bd7cfd04b46cb77d1b958.ctex"]
[params]
compress/mode=3
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=1
roughness/src_normal="res://sophia/model/sophia_eye_open_normal.png"
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 892 B

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d3gigd8y5hjg"
path="res://.godot/imported/sophia_mouth_smile_diffuse.png-beb777a23efbd43595739e6c8bb3434f.ctex"
metadata={
"vram_texture": false
}
generator_parameters={}
[deps]
source_file="res://addons/gdquest_sophia/model/sophia_mouth_smile_diffuse.png"
dest_files=["res://.godot/imported/sophia_mouth_smile_diffuse.png-beb777a23efbd43595739e6c8bb3434f.ctex"]
[params]
compress/mode=3
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c36m8cv33f0yi"
path="res://.godot/imported/sophia_mouth_smile_normal.png-b6ece1735e7d5bc3813bc63bb2f6a744.ctex"
metadata={
"vram_texture": false
}
generator_parameters={}
[deps]
source_file="res://addons/gdquest_sophia/model/sophia_mouth_smile_normal.png"
dest_files=["res://.godot/imported/sophia_mouth_smile_normal.png-b6ece1735e7d5bc3813bc63bb2f6a744.ctex"]
[params]
compress/mode=3
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=1
roughness/src_normal="res://sophia/model/sophia_mouth_smile_normal.png"
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://mdhln8lltmyo"
path="res://.godot/imported/sophia_normal.png-d846250744009b1a183907c9d9d83106.ctex"
metadata={
"vram_texture": false
}
generator_parameters={}
[deps]
source_file="res://addons/gdquest_sophia/model/sophia_normal.png"
dest_files=["res://.godot/imported/sophia_normal.png-d846250744009b1a183907c9d9d83106.ctex"]
[params]
compress/mode=3
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=1
roughness/src_normal="res://sophia/model/sophia_normal.png"
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dbg3uqtvqxigv"
path="res://.godot/imported/sophia_roughness.png-2cc2892441f9d0e5461dcea0a04b7b7c.ctex"
metadata={
"vram_texture": false
}
generator_parameters={}
[deps]
source_file="res://addons/gdquest_sophia/model/sophia_roughness.png"
dest_files=["res://.godot/imported/sophia_roughness.png-2cc2892441f9d0e5461dcea0a04b7b7c.ctex"]
[params]
compress/mode=3
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ctfbobgg7ts8d"
path.s3tc="res://.godot/imported/eyes_diffuse_map.png-6cc8237b15ba96406324f11441d67cc6.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://addons/gdquest_sophia/model/textures/eyes_diffuse_map.png"
dest_files=["res://.godot/imported/eyes_diffuse_map.png-6cc8237b15ba96406324f11441d67cc6.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bjvo8w2ptm7fc"
path.s3tc="res://.godot/imported/eyes_normal_map.png-1e8dd6bf36ca0f51f02ceab58e89f3bf.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://addons/gdquest_sophia/model/textures/eyes_normal_map.png"
dest_files=["res://.godot/imported/eyes_normal_map.png-1e8dd6bf36ca0f51f02ceab58e89f3bf.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=1
roughness/src_normal="res://sophia/model/eyes_normal_map.png"
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

View file

@ -0,0 +1,54 @@
extends Node3D
@onready var animation_tree = %AnimationTree
@onready var state_machine : AnimationNodeStateMachinePlayback = animation_tree.get("parameters/StateMachine/playback")
@onready var move_tilt_path : String = "parameters/StateMachine/Move/tilt/add_amount"
var run_tilt = 0.0 : set = _set_run_tilt
@export var blink = true : set = set_blink
@onready var blink_timer = %BlinkTimer
@onready var closed_eyes_timer = %ClosedEyesTimer
@onready var eye_mat = $sophia/rig/Skeleton3D/Sophia.get("surface_material_override/2")
func _ready():
blink_timer.connect("timeout", func():
eye_mat.set("uv1_offset", Vector3(0.0, 0.5, 0.0))
closed_eyes_timer.start(0.2)
)
closed_eyes_timer.connect("timeout", func():
eye_mat.set("uv1_offset", Vector3.ZERO)
blink_timer.start(randf_range(1.0, 4.0))
)
func set_blink(state : bool):
if blink == state: return
blink = state
if blink:
blink_timer.start(0.2)
else:
blink_timer.stop()
closed_eyes_timer.stop()
func _set_run_tilt(value : float):
run_tilt = clamp(value, -1.0, 1.0)
animation_tree.set(move_tilt_path, run_tilt)
func idle():
state_machine.travel("Idle")
func move():
state_machine.travel("Move")
func fall():
state_machine.travel("Fall")
func jump():
state_machine.travel("Jump")
func edge_grab():
state_machine.travel("EdgeGrab")
func wall_slide():
state_machine.travel("WallSlide")

View file

@ -0,0 +1 @@
uid://b1vh0db02sqhl

View file

@ -0,0 +1,268 @@
[gd_scene load_steps=38 format=3 uid="uid://prh35jb6tjtd"]
[ext_resource type="PackedScene" uid="uid://16iu10wxub40" path="res://addons/gdquest_sophia/model/sophia.glb" id="1_e4pev"]
[ext_resource type="Script" uid="uid://b1vh0db02sqhl" path="res://addons/gdquest_sophia/sophia_skin.gd" id="1_obcib"]
[ext_resource type="Material" uid="uid://dye01l0ct4fby" path="res://addons/gdquest_sophia/model/materials/eye_mat_override.tres" id="4_mms51"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vapre"]
animation = &"EdgeGrab"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_84eem"]
animation = &"Fall"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_bdqby"]
animation = &"Idle"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_is0ey"]
animation = &"Jump"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_olyh3"]
animation = &"RunTiltL"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_81hhq"]
animation = &"RunTiltR"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_nf0s3"]
animation = &"Run"
[sub_resource type="AnimationNodeAdd3" id="AnimationNodeAdd3_i8et5"]
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_mx8fd"]
graph_offset = Vector2(-362, 27)
nodes/L/node = SubResource("AnimationNodeAnimation_olyh3")
nodes/L/position = Vector2(-100, 320)
nodes/R/node = SubResource("AnimationNodeAnimation_81hhq")
nodes/R/position = Vector2(-240, 240)
nodes/Run/node = SubResource("AnimationNodeAnimation_nf0s3")
nodes/Run/position = Vector2(-120, 120)
nodes/tilt/node = SubResource("AnimationNodeAdd3_i8et5")
nodes/tilt/position = Vector2(80, 160)
node_connections = [&"output", 0, &"tilt", &"tilt", 0, &"L", &"tilt", 1, &"Run", &"tilt", 2, &"R"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ln86s"]
animation = &"WallSlide"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_aehxm"]
advance_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_bp3m8"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_kwnko"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ykos7"]
xfade_time = 0.2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_0wv7u"]
xfade_time = 0.2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5rcd0"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_umbj3"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_525xv"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5lsn0"]
xfade_time = 0.2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_k4ifp"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_i5k5f"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_graxy"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_8tjks"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_h6oe5"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_8l37g"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_p1j7t"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mybu0"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_6rf72"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_cm2qm"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_goywk"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mn3tt"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_cwktt"]
xfade_time = 0.1
[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_xxcga"]
states/EdgeGrab/node = SubResource("AnimationNodeAnimation_vapre")
states/EdgeGrab/position = Vector2(327, 290)
states/End/position = Vector2(627, 166)
states/Fall/node = SubResource("AnimationNodeAnimation_84eem")
states/Fall/position = Vector2(474, 205)
states/Idle/node = SubResource("AnimationNodeAnimation_bdqby")
states/Idle/position = Vector2(327, 122)
states/Jump/node = SubResource("AnimationNodeAnimation_is0ey")
states/Jump/position = Vector2(327, 205)
states/Move/node = SubResource("AnimationNodeBlendTree_mx8fd")
states/Move/position = Vector2(474, 122)
states/Start/position = Vector2(327, 44)
states/WallSlide/node = SubResource("AnimationNodeAnimation_ln86s")
states/WallSlide/position = Vector2(474, 290)
transitions = ["Start", "Idle", SubResource("AnimationNodeStateMachineTransition_aehxm"), "Idle", "Jump", SubResource("AnimationNodeStateMachineTransition_bp3m8"), "Jump", "Idle", SubResource("AnimationNodeStateMachineTransition_kwnko"), "Jump", "Fall", SubResource("AnimationNodeStateMachineTransition_ykos7"), "Fall", "Jump", SubResource("AnimationNodeStateMachineTransition_0wv7u"), "Fall", "Idle", SubResource("AnimationNodeStateMachineTransition_5rcd0"), "Idle", "Fall", SubResource("AnimationNodeStateMachineTransition_umbj3"), "Idle", "Move", SubResource("AnimationNodeStateMachineTransition_525xv"), "Move", "Idle", SubResource("AnimationNodeStateMachineTransition_5lsn0"), "Fall", "Move", SubResource("AnimationNodeStateMachineTransition_k4ifp"), "Move", "Fall", SubResource("AnimationNodeStateMachineTransition_i5k5f"), "Move", "Jump", SubResource("AnimationNodeStateMachineTransition_graxy"), "Jump", "Move", SubResource("AnimationNodeStateMachineTransition_8tjks"), "Jump", "EdgeGrab", SubResource("AnimationNodeStateMachineTransition_h6oe5"), "WallSlide", "Fall", SubResource("AnimationNodeStateMachineTransition_8l37g"), "Jump", "WallSlide", SubResource("AnimationNodeStateMachineTransition_p1j7t"), "EdgeGrab", "Fall", SubResource("AnimationNodeStateMachineTransition_mybu0"), "EdgeGrab", "WallSlide", SubResource("AnimationNodeStateMachineTransition_6rf72"), "Fall", "EdgeGrab", SubResource("AnimationNodeStateMachineTransition_cm2qm"), "WallSlide", "Jump", SubResource("AnimationNodeStateMachineTransition_goywk"), "EdgeGrab", "Jump", SubResource("AnimationNodeStateMachineTransition_mn3tt"), "Fall", "WallSlide", SubResource("AnimationNodeStateMachineTransition_cwktt")]
graph_offset = Vector2(-264, 106)
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_qa7x4"]
nodes/StateMachine/node = SubResource("AnimationNodeStateMachine_xxcga")
nodes/StateMachine/position = Vector2(0, 0)
nodes/output/position = Vector2(200, 0)
node_connections = [&"output", 0, &"StateMachine"]
[node name="SophiaSkin" type="Node3D"]
script = ExtResource("1_obcib")
[node name="sophia" parent="." instance=ExtResource("1_e4pev")]
[node name="Skeleton3D" parent="sophia/rig" index="0"]
bones/0/position = Vector3(-0.0179132, 0.496271, -0.00837724)
bones/0/rotation = Quaternion(0.12463, -0.0681703, 0.0211956, 0.989632)
bones/1/rotation = Quaternion(-0.0644765, 2.41677e-09, -4.12252e-09, 0.997919)
bones/2/rotation = Quaternion(-0.0772707, -0.0435485, 0.000613659, 0.996058)
bones/3/rotation = Quaternion(-0.00153129, -0.12961, -0.00296781, 0.99156)
bones/4/rotation = Quaternion(0.147219, 0.0860353, -0.00977835, 0.985307)
bones/5/rotation = Quaternion(-0.114648, -1.05998e-09, 1.4507e-08, 0.993406)
bones/6/rotation = Quaternion(-0.0157824, 0.086578, -0.00137165, 0.996119)
bones/7/rotation = Quaternion(0.990953, 0.114311, 0.00955695, 0.0696643)
bones/8/rotation = Quaternion(0.990929, -0.114522, 0.00657011, -0.0700092)
bones/9/rotation = Quaternion(0.841503, -0.0474158, 0.0302759, 0.537316)
bones/10/rotation = Quaternion(0.409635, -0.0131545, 0.0292765, 0.911685)
bones/11/rotation = Quaternion(0.823018, 0.0984414, -0.180815, 0.529393)
bones/12/rotation = Quaternion(0.409252, -0.0247807, 0.0321661, 0.911517)
bones/13/rotation = Quaternion(0.80675, -0.190273, 0.239141, 0.50573)
bones/14/rotation = Quaternion(0.409999, -0.00152752, 0.0263822, 0.911703)
bones/15/rotation = Quaternion(-0.342091, -0.11577, -0.45741, 0.812617)
bones/16/rotation = Quaternion(-3.33881e-09, 1.10971e-07, -0.108116, 0.994138)
bones/17/rotation = Quaternion(-0.354913, 0.0668265, 0.339359, 0.868566)
bones/18/rotation = Quaternion(1.07876e-07, -1.04273e-07, -0.108116, 0.994138)
bones/19/rotation = Quaternion(-0.407319, -0.0580256, -0.09309, 0.906675)
bones/20/rotation = Quaternion(-2.62669e-07, -4.25937e-08, -0.108116, 0.994138)
bones/21/rotation = Quaternion(-0.411431, 0.000533694, -0.0345307, 0.910787)
bones/22/rotation = Quaternion(-2.36575e-07, -8.06099e-09, -0.108116, 0.994138)
bones/23/rotation = Quaternion(-0.579757, -0.382617, -0.396489, 0.600235)
bones/24/rotation = Quaternion(-0.168218, 0.619438, -0.53786, 0.54654)
bones/25/position = Vector3(-2.84344e-08, 0.0693518, 7.45058e-09)
bones/25/rotation = Quaternion(-6.76482e-09, -0.030568, -1.61126e-07, 0.999533)
bones/26/position = Vector3(-3.30328e-08, 0.0693518, -7.25292e-09)
bones/26/rotation = Quaternion(0.378487, -0.0305683, 0.012512, 0.925017)
bones/27/position = Vector3(-1.00059e-07, 0.0641195, -5.12226e-09)
bones/27/rotation = Quaternion(-1.89952e-07, -0.000213743, -1.06497e-07, 1)
bones/28/position = Vector3(2.54637e-08, 0.0641197, 1.70021e-08)
bones/28/rotation = Quaternion(-0.0110645, -8.66778e-05, 0.0518579, 0.998593)
bones/30/rotation = Quaternion(0.586205, -0.0728153, -0.158498, 0.791164)
bones/31/rotation = Quaternion(0.422653, -0.000300065, -0.00100193, 0.906291)
bones/32/rotation = Quaternion(0.424779, 0.000651514, 0.00163282, 0.905296)
bones/33/rotation = Quaternion(-0.0432788, 0.822374, 0.418861, 0.382602)
bones/34/rotation = Quaternion(0.605953, -0.0519355, 0.0526438, 0.792056)
bones/35/rotation = Quaternion(0.490047, -0.012869, -0.0253105, 0.871234)
bones/37/rotation = Quaternion(0.594404, -0.0768252, -0.0772993, 0.796747)
bones/38/rotation = Quaternion(0.425027, 0.000226274, 0.000737527, 0.90518)
bones/39/rotation = Quaternion(0.424791, -0.000484585, -0.00120235, 0.905291)
bones/41/rotation = Quaternion(0.604183, 0.0209748, -0.0202136, 0.796313)
bones/42/rotation = Quaternion(0.496983, -7.6202e-05, -0.000187088, 0.86776)
bones/43/rotation = Quaternion(0.498019, 0.000152893, 0.000304259, 0.867166)
bones/45/rotation = Quaternion(0.608247, 0.0350251, 0.0523038, 0.791248)
bones/46/rotation = Quaternion(0.510495, 1.10653e-05, 4.87684e-05, 0.859881)
bones/47/rotation = Quaternion(0.514301, -3.90808e-05, -7.17982e-05, 0.85761)
bones/49/rotation = Quaternion(-0.362404, -0.660721, 0.343924, 0.560203)
bones/50/position = Vector3(6.54545e-08, 0.0693517, 1.11759e-08)
bones/50/rotation = Quaternion(6.23114e-08, -0.0312038, 1.11842e-07, 0.999513)
bones/51/position = Vector3(6.39701e-08, 0.0693518, 2.12806e-08)
bones/51/rotation = Quaternion(0.268487, -0.0312039, 0.0087009, 0.962738)
bones/52/position = Vector3(3.46918e-08, 0.0641197, -9.45292e-08)
bones/52/rotation = Quaternion(-9.17138e-09, -0.00021363, -1.17068e-07, 1)
bones/53/position = Vector3(4.31197e-08, 0.0641198, -9.50838e-08)
bones/53/rotation = Quaternion(0.00591388, -0.000355068, -0.0518572, 0.998637)
bones/55/position = Vector3(-0.00788145, 0.126777, 0.022745)
bones/55/rotation = Quaternion(0.634935, 0.0809939, 0.129391, 0.757335)
bones/56/rotation = Quaternion(0.422333, 0.037719, -0.0164492, 0.905506)
bones/57/rotation = Quaternion(0.424778, -0.000652886, -0.00163169, 0.905296)
bones/58/rotation = Quaternion(0.0432787, 0.822373, 0.418861, -0.382602)
bones/59/rotation = Quaternion(0.605953, 0.0519355, -0.0526439, 0.792055)
bones/60/rotation = Quaternion(0.490047, 0.012869, 0.0253107, 0.871234)
bones/62/position = Vector3(-0.00561923, 0.126171, 0.0233237)
bones/62/rotation = Quaternion(0.642486, 0.0803638, 0.0528975, 0.760233)
bones/63/rotation = Quaternion(0.424663, 0.0356998, -0.0176063, 0.904476)
bones/64/rotation = Quaternion(0.424791, 0.000484688, 0.00120234, 0.905291)
bones/66/position = Vector3(-0.00836084, 0.127142, 0.0226955)
bones/66/rotation = Quaternion(0.653346, -0.0206434, 0.00129776, 0.756777)
bones/67/rotation = Quaternion(0.496619, 0.0336209, -0.0190247, 0.867109)
bones/68/rotation = Quaternion(0.498018, -0.000151753, -0.000304719, 0.867167)
bones/70/position = Vector3(-0.00570161, 0.122795, 0.022938)
bones/70/rotation = Quaternion(0.657362, -0.0389285, -0.0650824, 0.749749)
bones/71/rotation = Quaternion(0.51019, 0.0296037, -0.0176302, 0.859371)
bones/72/rotation = Quaternion(0.514301, 3.88323e-05, 7.19582e-05, 0.85761)
bones/74/rotation = Quaternion(0.782333, 0.248616, -0.171126, 0.54485)
bones/75/rotation = Quaternion(0.782333, -0.248616, 0.171126, 0.54485)
bones/76/rotation = Quaternion(0.985966, 2.84497e-08, -1.60425e-08, -0.166949)
bones/77/rotation = Quaternion(-0.0306789, 1.95752e-08, 9.25838e-10, 0.999529)
bones/78/rotation = Quaternion(-0.0301015, -9.41682e-09, 5.13173e-09, 0.999547)
bones/81/rotation = Quaternion(0.964303, 0.126402, -0.0585915, 0.225186)
bones/82/position = Vector3(4.02629e-09, 0.0942519, -2.73391e-08)
bones/82/rotation = Quaternion(-2.29586e-08, -0.0531611, 1.72678e-08, 0.998586)
bones/83/position = Vector3(1.58899e-08, 0.094252, 1.33295e-08)
bones/83/rotation = Quaternion(0.295494, -0.0531458, 0.0164659, 0.953723)
bones/84/position = Vector3(1.7517e-09, 0.0925612, 1.02773e-08)
bones/84/rotation = Quaternion(3.92233e-09, -0.074907, 3.63055e-08, 0.997191)
bones/85/position = Vector3(1.93904e-08, 0.0925611, -2.20688e-08)
bones/85/rotation = Quaternion(-0.526866, -0.0398806, 0.129143, 0.839133)
bones/86/position = Vector3(-2.67091e-08, 0.224084, 3.77875e-08)
bones/86/rotation = Quaternion(2.53484e-05, 0.933387, -0.358872, -9.04117e-06)
bones/87/rotation = Quaternion(0.970106, -0.0809343, 0.0512883, 0.222966)
bones/88/position = Vector3(-1.59564e-08, 0.0947332, 5.93381e-10)
bones/88/rotation = Quaternion(-2.05209e-08, 0.0590393, 8.24952e-09, 0.998256)
bones/89/position = Vector3(-2.43564e-08, 0.0947333, 2.32829e-09)
bones/89/rotation = Quaternion(0.230124, 0.0590534, -0.0139911, 0.971267)
bones/90/position = Vector3(1.07835e-08, 0.0930518, -1.30186e-08)
bones/90/rotation = Quaternion(-7.25596e-09, -0.00554315, 2.13398e-08, 0.999985)
bones/91/position = Vector3(-3.91719e-09, 0.0930518, 1.02204e-09)
bones/91/rotation = Quaternion(-0.558398, -0.0403773, -0.0602378, 0.826397)
bones/92/position = Vector3(-1.14476e-08, 0.224088, 3.48135e-08)
bones/92/rotation = Quaternion(-1.3645e-05, 0.952113, -0.305748, 3.66901e-06)
[node name="Sophia" parent="sophia/rig/Skeleton3D" index="0"]
surface_material_override/1 = ExtResource("4_mms51")
surface_material_override/2 = ExtResource("4_mms51")
[node name="AnimationTree" type="AnimationTree" parent="."]
unique_name_in_owner = true
root_node = NodePath("%AnimationTree/../sophia")
tree_root = SubResource("AnimationNodeBlendTree_qa7x4")
anim_player = NodePath("../sophia/AnimationPlayer")
parameters/StateMachine/Move/tilt/add_amount = 0.0
[node name="BlinkTimer" type="Timer" parent="."]
unique_name_in_owner = true
wait_time = 0.2
one_shot = true
autostart = true
[node name="ClosedEyesTimer" type="Timer" parent="."]
unique_name_in_owner = true
wait_time = 0.2
one_shot = true
autostart = true
[editable path="sophia"]

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d2f4ue6f2152o"
path.s3tc="res://.godot/imported/checkboard.png-60f6db393233dd01fdd8b7cd558c6460.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/images/checkboard.png"
dest_files=["res://.godot/imported/checkboard.png-60f6db393233dd01fdd8b7cd558c6460.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

View file

@ -1,13 +1,12 @@
[gd_scene load_steps=10 format=3 uid="uid://cd1ulyybmuft5"] [gd_scene load_steps=9 format=3 uid="uid://cd1ulyybmuft5"]
[sub_resource type="BoxMesh" id="BoxMesh_jm5wf"] [ext_resource type="Texture2D" uid="uid://d2f4ue6f2152o" path="res://assets/images/checkboard.png" id="1_aj6nb"]
[ext_resource type="PackedScene" uid="uid://cpdnvt3u4bkfi" path="res://skater.tscn" id="1_ysbyt"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ysbyt"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ytmxt"]
albedo_color = Color(0.593134, 0.593134, 0.593134, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_aj6nb"] albedo_texture = ExtResource("1_aj6nb")
albedo_color = Color(1, 0.560296, 0.586711, 1) uv1_triplanar = true
[sub_resource type="CapsuleMesh" id="CapsuleMesh_28a8u"]
[sub_resource type="Curve3D" id="Curve3D_jm5wf"] [sub_resource type="Curve3D" id="Curve3D_jm5wf"]
closed = true closed = true
@ -26,34 +25,35 @@ albedo_color = Color(0, 0.280322, 0.280373, 1)
albedo_color = Color(0, 0.267906, 0.269092, 1) albedo_color = Color(0, 0.267906, 0.269092, 1)
albedo_texture = SubResource("CanvasTexture_ytmxt") albedo_texture = SubResource("CanvasTexture_ytmxt")
[sub_resource type="Environment" id="Environment_jm5wf"] [sub_resource type="Environment" id="Environment_ysbyt"]
ambient_light_color = Color(0.869836, 0.873367, 0.882168, 1) background_mode = 1
ambient_light_energy = 15.09 background_color = Color(0.101961, 0.101961, 0.101961, 1)
reflected_light_source = 2 ambient_light_color = Color(0.674815, 0.674815, 0.674815, 1)
tonemap_mode = 2
fog_enabled = true
fog_light_color = Color(0.214139, 0.235722, 0.269651, 1)
fog_density = 0.0
fog_sky_affect = 0.5
fog_height = -1.0
fog_height_density = 0.8
[node name="world" type="Node3D"] [node name="world" type="Node3D"]
[node name="rink_surface" type="MeshInstance3D" parent="."] [node name="rink_surface" type="CSGBox3D" parent="."]
transform = Transform3D(61, 0, 0, 0, 0.5, 0, 0, 0, 25.9, 0, -0.5, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0149655, -0.985335, 0.0267248)
gi_mode = 2 use_collision = true
mesh = SubResource("BoxMesh_jm5wf") size = Vector3(60, 1, 30)
surface_material_override/0 = SubResource("StandardMaterial3D_ysbyt") material = SubResource("StandardMaterial3D_ytmxt")
[node name="skater" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 28.7379, 0.728135, -11.2951)
material_override = SubResource("StandardMaterial3D_aj6nb")
mesh = SubResource("CapsuleMesh_28a8u")
[node name="Path3D" type="Path3D" parent="."] [node name="Path3D" type="Path3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.78599, 2.17402, 4.31148) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.78599, 2.17402, 4.31148)
visibility_parent = NodePath("../skater")
curve = SubResource("Curve3D_jm5wf") curve = SubResource("Curve3D_jm5wf")
[node name="PathFollow3D" type="PathFollow3D" parent="Path3D"] [node name="PathFollow3D" type="PathFollow3D" parent="Path3D"]
transform = Transform3D(0.557721, 0, -0.83002, 0, 0.999992, 0, 0.830022, 0, 0.55772, 0, 0, 6.50187) transform = Transform3D(0.557721, 0, -0.83002, 0, 0.999992, 0, 0.830022, 0, 0.55772, 0, 0, 6.50187)
[node name="CSGPolygon3D" type="CSGPolygon3D" parent="Path3D"] [node name="CSGPolygon3D" type="CSGPolygon3D" parent="Path3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.56211, -3.94667, -14.5929) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.56211, -3.94667, -15.3778)
material_override = SubResource("StandardMaterial3D_28a8u") material_override = SubResource("StandardMaterial3D_28a8u")
mode = 2 mode = 2
path_node = NodePath("..") path_node = NodePath("..")
@ -68,11 +68,15 @@ path_u_distance = 1.0
path_joined = false path_joined = false
material = SubResource("StandardMaterial3D_xqoi8") material = SubResource("StandardMaterial3D_xqoi8")
[node name="Camera3D" type="Camera3D" parent="."] [node name="skater" parent="." instance=ExtResource("1_ysbyt")]
transform = Transform3D(-1, -8.74228e-08, 4.37114e-08, 4.37114e-08, 1.91069e-15, 1, -8.74228e-08, 1, 1.91069e-15, -0.156617, 24.1113, -0.0236931) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.1524, 0.34107, -3.54622)
environment = SubResource("Environment_jm5wf")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 29.0923, 0) transform = Transform3D(0.707107, 0.5, -0.5, 0, 0.707107, 0.707107, 0.707107, -0.5, 0.5, 0, 3.08694, 0)
light_energy = 10.0 light_energy = 1.25
light_indirect_energy = 5.0 shadow_enabled = true
directional_shadow_mode = 0
directional_shadow_max_distance = 50.0
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_ysbyt")

22
rinkplanner/skater.tscn Normal file
View file

@ -0,0 +1,22 @@
[gd_scene load_steps=3 format=3 uid="uid://cpdnvt3u4bkfi"]
[ext_resource type="PackedScene" uid="uid://prh35jb6tjtd" path="res://addons/gdquest_sophia/sophia_skin.tscn" id="1_j83vg"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_jm5wf"]
height = 1.65
radius = 0.4
[node name="skater" type="CharacterBody3D"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("CylinderShape3D_jm5wf")
[node name="SophiaSkin" parent="." instance=ExtResource("1_j83vg")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.766929, 0)
[node name="CameraAnchor" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.707107, -0.707107, 0, 0.707107, 0.707107, 0, 1.12031, 0)
[node name="Camera3D" type="Camera3D" parent="CameraAnchor"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, -28)
fov = 6.3