This commit is contained in:
Spencer Killen 2023-08-19 17:03:20 -06:00
commit 5a90fc89e4
Signed by: sjkillen
GPG Key ID: F307025B65C860BA
25 changed files with 431 additions and 104 deletions

Binary file not shown.

View File

@ -1,7 +0,0 @@
extends Node3D
func _ready():
set_as_top_level(true)
func _process(delta):
global_transform.origin = $"../grape_man".get_pickup_bone_location()

View File

@ -3,10 +3,10 @@
[ext_resource type="PackedScene" uid="uid://d2d4uv7o5gx5p" path="res://Level/World/screen_shader.tscn" id="1_huyen"]
[ext_resource type="PackedScene" uid="uid://b35w4hlh4n1jt" path="res://Level/World/world_environment.tscn" id="2_lerrn"]
[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://c1n2lfcn4rkx7" 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"]
[ext_resource type="PackedScene" uid="uid://hg1yr5rnxd47" path="res://Models/palm_young.tscn" id="5_prlw2"]
[ext_resource type="PackedScene" uid="uid://ce7jbp7f55cro" path="res://Models/buildings/building_1.tscn" id="8_6qbns"]
[ext_resource type="PackedScene" uid="uid://cx44bjuxlhq06" path="res://Models/buildings/building_2.tscn" id="9_maqyx"]
[ext_resource type="PackedScene" uid="uid://bm65tvb4irjqw" path="res://Models/buildings/building_3.tscn" id="10_j7nf7"]

View File

@ -1,7 +1,6 @@
extends Node3D
@onready var animation: AnimationNodeStateMachinePlayback = $AnimationTree.get("parameters/playback")
@onready var pickup_bone_idx = $rig/Skeleton3D.find_bone("PickupBone")
signal anim_check_grab(position: Vector3)
@ -29,12 +28,8 @@ func idle_hold():
animation.travel("IdleHold")
func animation_key_grab():
emit_signal("anim_check_grab", get_pickup_bone_location())
func get_pickup_bone_location() -> Vector3:
var trans = $rig/Skeleton3D.global_transform * $rig/Skeleton3D.get_bone_global_pose(pickup_bone_idx)
return trans.origin
emit_signal("anim_check_grab", $GrabPointLocation.global_transform)
func animation_key_pickup_completed():
pickup_animation_in_progress = false
emit_signal("pickup_animation_finished")

BIN
godot/Models/grape_man.glb (Stored with Git LFS)

Binary file not shown.

View File

@ -5430,7 +5430,7 @@ _subresources={
"UpperBodyIdle": {
"save_to_file/enabled": true,
"save_to_file/keep_custom_tracks": true,
"save_to_file/path": "res://Models/grape_animations/upper_body_idle.res",
"save_to_file/path": "res://Models/grape_animations/upper_body_idle.res.res",
"settings/loop_mode": 0,
"slice_1/end_frame": 0,
"slice_1/loop_mode": 0,

View File

@ -4,6 +4,7 @@
[ext_resource type="Script" path="res://Models/grape_man.gd" id="2_ksje8"]
[sub_resource type="AnimationNodeAdd2" id="AnimationNodeAdd2_a0vxm"]
filter_enabled = true
filters = ["rig/Skeleton3D:forearm.L", "rig/Skeleton3D:forearm.R", "rig/Skeleton3D:head", "rig/Skeleton3D:upper_arm.L", "rig/Skeleton3D:upper_arm.R"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_s8uqe"]
@ -13,7 +14,7 @@ animation = &"UpperBodyIdle"
animation = &"Idle"
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_ojr1k"]
graph_offset = Vector2(-74, 44)
graph_offset = Vector2(-312, -69)
nodes/Add2/node = SubResource("AnimationNodeAdd2_a0vxm")
nodes/Add2/position = Vector2(160, 80)
nodes/Animation/node = SubResource("AnimationNodeAnimation_4ft7i")
@ -23,6 +24,7 @@ nodes/Animation/position = Vector2(0, 80)
node_connections = [&"output", 0, &"Add2", &"Add2", 0, &"Animation", &"Add2", 1, &"Animation 2"]
[sub_resource type="AnimationNodeAdd2" id="AnimationNodeAdd2_4gk6k"]
filter_enabled = true
filters = ["rig/Skeleton3D:forearm.L", "rig/Skeleton3D:forearm.R", "rig/Skeleton3D:head", "rig/Skeleton3D:upper_arm.L", "rig/Skeleton3D:upper_arm.R"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_alnh1"]
@ -46,6 +48,7 @@ node_connections = [&"output", 0, &"Add2", &"Add2", 0, &"Animation", &"Add2", 1,
animation = &"Pickup"
[sub_resource type="AnimationNodeAdd2" id="AnimationNodeAdd2_rd6bn"]
filter_enabled = true
filters = ["rig/Skeleton3D:forearm.L", "rig/Skeleton3D:forearm.R", "rig/Skeleton3D:head", "rig/Skeleton3D:upper_arm.L", "rig/Skeleton3D:upper_arm.R"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_7s7tg"]
@ -55,7 +58,7 @@ animation = &"UpperBodyIdle"
animation = &"Walk"
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_6rmmo"]
graph_offset = Vector2(-384.186, 6.2577)
graph_offset = Vector2(-358.186, -79.7423)
nodes/Add2/node = SubResource("AnimationNodeAdd2_rd6bn")
nodes/Add2/position = Vector2(140, 80)
nodes/Animation/node = SubResource("AnimationNodeAnimation_ir63n")
@ -65,6 +68,7 @@ nodes/Animation/position = Vector2(-40, 60)
node_connections = [&"output", 0, &"Add2", &"Add2", 0, &"Animation", &"Add2", 1, &"Animation 2"]
[sub_resource type="AnimationNodeAdd2" id="AnimationNodeAdd2_sv87c"]
filter_enabled = true
filters = ["rig/Skeleton3D:forearm.L", "rig/Skeleton3D:forearm.R", "rig/Skeleton3D:head", "rig/Skeleton3D:upper_arm.L", "rig/Skeleton3D:upper_arm.R"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_y7bu0"]
@ -143,7 +147,7 @@ states/WalkEmpty/position = Vector2(548, 208)
states/WalkHold/node = SubResource("AnimationNodeBlendTree_kalnq")
states/WalkHold/position = Vector2(351, 323)
transitions = ["Start", "IdleEmpty", SubResource("AnimationNodeStateMachineTransition_8sw6d"), "IdleEmpty", "WalkHold", SubResource("AnimationNodeStateMachineTransition_71rn8"), "WalkHold", "IdleEmpty", SubResource("AnimationNodeStateMachineTransition_cp7lp"), "WalkEmpty", "IdleEmpty", SubResource("AnimationNodeStateMachineTransition_27n2r"), "IdleEmpty", "WalkEmpty", SubResource("AnimationNodeStateMachineTransition_v26jl"), "IdleHold", "WalkHold", SubResource("AnimationNodeStateMachineTransition_u0rau"), "IdleHold", "WalkEmpty", SubResource("AnimationNodeStateMachineTransition_1hqga"), "WalkEmpty", "IdleHold", SubResource("AnimationNodeStateMachineTransition_uekhs"), "WalkHold", "IdleHold", SubResource("AnimationNodeStateMachineTransition_652wi"), "IdleEmpty", "Pickup", SubResource("AnimationNodeStateMachineTransition_sdgve"), "Pickup", "IdleEmpty", SubResource("AnimationNodeStateMachineTransition_otprv"), "IdleEmpty", "IdleHold", SubResource("AnimationNodeStateMachineTransition_fbwhh"), "IdleHold", "IdleEmpty", SubResource("AnimationNodeStateMachineTransition_4rq7a"), "WalkHold", "WalkEmpty", SubResource("AnimationNodeStateMachineTransition_oange"), "WalkEmpty", "WalkHold", SubResource("AnimationNodeStateMachineTransition_et4tx"), "Pickup", "IdleHold", SubResource("AnimationNodeStateMachineTransition_y2dr5")]
graph_offset = Vector2(3, 172)
graph_offset = Vector2(26, 89)
[node name="grape_man" instance=ExtResource("1_fh5yr")]
transform = Transform3D(0.065, 0, 0, 0, 0.065, 0, 0, 0, 0.065, 0, 0, 0)
@ -163,10 +167,13 @@ 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="OmniLight3D" type="OmniLight3D" parent="." index="2"]
[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)
[node name="AnimationTree" type="AnimationTree" parent="." index="3"]
[node name="AnimationTree" type="AnimationTree" parent="." index="4"]
tree_root = SubResource("AnimationNodeStateMachine_6mfdu")
anim_player = NodePath("../AnimationPlayer")
active = true

View File

@ -1,5 +1,6 @@
extends CharacterBody3D
const SPEED = 5.0
const JUMP_VELOCITY = 4.5
@export var horiz_sens = 0.25
@ -16,7 +17,6 @@ func _ready():
$CameraMount.global_rotation.x = clampf($CameraMount.global_rotation.x, deg_to_rad(-60), deg_to_rad(-11))
func _process(_delta):
# Brings your mouse out of the window if you press escape. Add pause screen function here?
if Input.is_action_pressed("ui_cancel"):
@ -26,7 +26,6 @@ func _process(_delta):
func _input(event):
# Handle the rotation of the camera using mouse movement.
if event is InputEventMouseMotion:
# Side to side, first player object then player visuals.
rotate_y(deg_to_rad(-event.relative.x * horiz_sens))
$CameraMount.rotate_x(deg_to_rad(-event.relative.y * vert_sens))
$grape_man.rotate_y(deg_to_rad(event.relative.x * horiz_sens))

BIN
godot/Sounds/SlimeParty.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dg35jx6svmrj2"
path="res://.godot/imported/SlimeParty.wav-3a5ca824380a5317a9f053c836f3f093.sample"
[deps]
source_file="res://Sounds/SlimeParty.wav"
dest_files=["res://.godot/imported/SlimeParty.wav-3a5ca824380a5317a9f053c836f3f093.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

BIN
godot/Sounds/beachquiet.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://l02hcu1llpjk"
path="res://.godot/imported/beachquiet.wav-4d7b3f362a0eb18f5504682a02c34ea5.sample"
[deps]
source_file="res://Sounds/beachquiet.wav"
dest_files=["res://.godot/imported/beachquiet.wav-4d7b3f362a0eb18f5504682a02c34ea5.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

BIN
godot/Sounds/dropgrunt.ogg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://csboqs15k3vps"
path="res://.godot/imported/dropgrunt.ogg-17874ed33d96ba69ea351610265a51dd.oggvorbisstr"
[deps]
source_file="res://Sounds/dropgrunt.ogg"
dest_files=["res://.godot/imported/dropgrunt.ogg-17874ed33d96ba69ea351610265a51dd.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

BIN
godot/Sounds/heartychuckle.ogg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://b80t5xqckjoqk"
path="res://.godot/imported/heartychuckle.ogg-5d7553a58eca2ba7e4b363c99bfd92a4.oggvorbisstr"
[deps]
source_file="res://Sounds/heartychuckle.ogg"
dest_files=["res://.godot/imported/heartychuckle.ogg-5d7553a58eca2ba7e4b363c99bfd92a4.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

BIN
godot/Sounds/pickup_grunt.ogg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://baocyd0p3jcku"
path="res://.godot/imported/pickup_grunt.ogg-b9b8b2eeb327248ea7dccb4c4bd8e12d.oggvorbisstr"
[deps]
source_file="res://Sounds/pickup_grunt.ogg"
dest_files=["res://.godot/imported/pickup_grunt.ogg-b9b8b2eeb327248ea7dccb4c4bd8e12d.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@ -1,85 +1,55 @@
extends CharacterBody3D
extends Node3D
var rng = RandomNumberGenerator.new()
@export var target_location_xz = global_transform.origin * Vector3(1, 0, 1)
@export var location_xz = global_transform.origin * Vector3(1, 0, 1)
@export var target_direction_xz = (transform.basis * Vector3(1, 0, 1)).normalized()
@export var direction_xz = (transform.basis * Vector3(1, 0, 1)).normalized()
var task = "idle"
var spin_amount = 0
var spinning = false
var wait_time = 0
# Percentage chances of the character performing certain actions while idle.
@export var walk_chance = 0.1
@export var spin_chance = 0.2
@export var walk_speed = 0.5
# Rate at which character corrects their direction after going off course (decimal percentage).
@export var spin_speed = 0.50
# Margin of accuracy to which the character will correct their direction when off course (radians).
@export var dir_accuracy = deg_to_rad(0.1)
# Get the gravity from the project settings to be synced with RigidBody nodes.
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
# Called when the node enters the scene tree for the first time.
func _ready():
pass
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
location_xz = global_transform.origin * Vector3(1, 0, 1)
direction_xz = (transform.basis * Vector3(1, 0, 1)).normalized()
var task = "idle"
match task:
"idle":
task = rng.randf_range(0, 100)
task = rng.randi_range(0, 100)
# Chance to walk somewhere.
if task <= walk_chance:
if task <= 33:
task = "walk"
target_location_xz = global_transform.origin * Vector3(1, 0, 1) + (direction_xz * 16)
# Chance to rotate.
elif task > walk_chance and task <= (walk_chance + spin_chance):
elif task > 33 and task <= 50:
task = "spin"
var rotation_angle = rng.randf_range(-2*PI, 2*PI)
var rotation_vector = Vector3(cos(rotation_angle), 0, sin(rotation_angle))
target_direction_xz = direction_xz + rotation_vector
# Chance to idle.
elif task > (spin_chance + walk_chance):
task = "idle"
elif task > 50:
task = "wait"
"walk":
# Get the direction to the target in z-x plane.
target_direction_xz = (location_xz.direction_to(target_location_xz) * Vector3(1, 0, 1)).normalized()
# Continue to correct direction to within a margin of dir_accuracy degrees.
if direction_xz.angle_to(target_direction_xz) >= dir_accuracy:
# Rotate towards destination at specified percentage rate.
rotate_y(direction_xz.angle_to(target_direction_xz) * spin_speed)
if location_xz.distance_to(target_location_xz) <= (Vector2(direction_xz.x, direction_xz.z) * walk_speed).length():
target_direction_xz = direction_xz
target_location_xz = location_xz
task = "idle"
pass
"spin":
if direction_xz.angle_to(target_direction_xz) >= dir_accuracy:
# Rotate towards destination at specified percentage rate.
rotate_y(direction_xz.angle_to(target_direction_xz) * spin_speed)
if !spinning:
var spin_amount = rng.randi_range(-360, 360)
spinning = true
if spin_amount > 0:
rotate_y(5)
spin_amount -= 5
elif spin_amount < 0:
rotate_y(-5)
spin_amount += 5
else:
task = "idle"
func _physics_process(delta):
# Add the gravity.
if not is_on_floor():
velocity.y -= gravity * delta
spinning = false
"wait":
# Idle Animation goes here!
wait_time += 1
if wait_time == 100:
task = "idle"
wait_time = 0
# Walk to target location.
if location_xz.distance_to(target_location_xz) > (Vector2(direction_xz.x, direction_xz.z) * walk_speed).length():
velocity.x = direction_xz.x * walk_speed
velocity.z = direction_xz.z * walk_speed
move_and_slide()

View File

@ -1,13 +1,10 @@
[gd_scene load_steps=6 format=3 uid="uid://7utef1nnena8"]
[gd_scene load_steps=4 format=3 uid="uid://7utef1nnena8"]
[ext_resource type="Script" path="res://Player.gd" id="1_7gpdp"]
[ext_resource type="PackedScene" uid="uid://bgoo1lbt28na" path="res://Models/grape_man.tscn" id="2_hg0av"]
[ext_resource type="Script" path="res://Holster.gd" id="3_a68da"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_kb4ms"]
[sub_resource type="SphereShape3D" id="SphereShape3D_6l1w6"]
[node name="Player" type="CharacterBody3D"]
script = ExtResource("1_7gpdp")
@ -25,13 +22,4 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.39043)
current = true
fov = 50.0
[node name="Holster" type="Node3D" parent="."]
script = ExtResource("3_a68da")
[node name="Area3D" type="Area3D" parent="Holster"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Holster/Area3D"]
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
shape = SubResource("SphereShape3D_6l1w6")
[connection signal="anim_check_grab" from="grape_man" to="." method="_on_grape_man_anim_check_grab"]

259
godot/tests/TestIsland.tscn Normal file
View File

@ -0,0 +1,259 @@
[gd_scene load_steps=24 format=3 uid="uid://v3vjhyhrqfhi"]
[ext_resource type="PackedScene" uid="uid://d2d4uv7o5gx5p" path="res://Level/World/screen_shader.tscn" id="1_ee0bf"]
[ext_resource type="PackedScene" uid="uid://b35w4hlh4n1jt" path="res://Level/World/world_environment.tscn" id="2_wvs0f"]
[ext_resource type="PackedScene" uid="uid://difi2tur2j4dg" path="res://Models/island.tscn" id="3_30dtd"]
[ext_resource type="PackedScene" uid="uid://ctbyl0qbks4k6" path="res://Models/ocean.tscn" id="4_527x8"]
[ext_resource type="PackedScene" uid="uid://d3ccrfjpg4hbv" path="res://Models/palm_curved.tscn" id="5_a3wkm"]
[ext_resource type="PackedScene" uid="uid://c1n2lfcn4rkx7" path="res://Models/palm_default.tscn" id="6_106fc"]
[ext_resource type="PackedScene" uid="uid://hg1yr5rnxd47" path="res://Models/palm_young.tscn" id="7_ill0p"]
[ext_resource type="PackedScene" uid="uid://g8vvg7c5ddkr" path="res://Models/rocks/rock_1.tscn" id="8_lwun6"]
[ext_resource type="PackedScene" uid="uid://bjafsu0utvm0g" path="res://Models/rocks/rock_2.tscn" id="9_ywqbr"]
[ext_resource type="PackedScene" uid="uid://bf6bbqbaeh21y" path="res://Models/rocks/rock_3.tscn" id="10_pmsfa"]
[ext_resource type="PackedScene" uid="uid://ce7jbp7f55cro" path="res://Models/buildings/building_1.tscn" id="11_wytos"]
[ext_resource type="PackedScene" uid="uid://cx44bjuxlhq06" path="res://Models/buildings/building_2.tscn" id="12_soqmo"]
[ext_resource type="PackedScene" uid="uid://bm65tvb4irjqw" path="res://Models/buildings/building_3.tscn" id="13_bqbcp"]
[ext_resource type="PackedScene" uid="uid://tky3cco2k7v7" path="res://Models/buildings/building_4.tscn" id="14_26vp6"]
[ext_resource type="PackedScene" uid="uid://dhrnbubumgi5h" path="res://Models/buildings/buildingruined.tscn" id="15_pvu04"]
[ext_resource type="PackedScene" uid="uid://bj8le45u845v3" path="res://Models/beach_decor/floatie.tscn" id="16_o5f84"]
[ext_resource type="PackedScene" uid="uid://dvpank15vkvtv" path="res://Models/beach_decor/parsol.tscn" id="17_tvwlm"]
[ext_resource type="PackedScene" uid="uid://b3aus2kigf8xt" path="res://Models/beach_decor/cooler.tscn" id="18_whrnr"]
[ext_resource type="PackedScene" uid="uid://bw3k2c75qavce" path="res://Models/beach_decor/bucket.tscn" id="19_yg6e1"]
[ext_resource type="PackedScene" uid="uid://g4gmc0pwlak1" path="res://Models/buildings/fence.tscn" id="20_k7apf"]
[ext_resource type="PackedScene" uid="uid://bgoo1lbt28na" path="res://Models/grape_man.tscn" id="21_j8hpq"]
[ext_resource type="PackedScene" uid="uid://c3q6fva1c1baa" path="res://Models/slime.tscn" id="22_f6psl"]
[ext_resource type="PackedScene" uid="uid://7utef1nnena8" path="res://player.tscn" id="23_bmfvv"]
[node name="World" type="Node3D"]
[node name="ScreenShader" parent="." instance=ExtResource("1_ee0bf")]
[node name="WorldEnvironment" parent="." instance=ExtResource("2_wvs0f")]
[node name="island" parent="." instance=ExtResource("3_30dtd")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
[node name="ocean" parent="." instance=ExtResource("4_527x8")]
transform = Transform3D(1.96278, 0, 0, 0, 1.96278, 0, 0, 0, 1.96278, 0, 1.6366, 0)
[node name="Decorations" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
[node name="nature" type="Node3D" parent="Decorations"]
[node name="PalmCurved" parent="Decorations/nature" instance=ExtResource("5_a3wkm")]
transform = Transform3D(0.0166766, 0, 0, 0, 0.0166766, 0, 0, 0, 0.0166766, 2.60201, 1.38633, -0.419671)
[node name="PalmCurved2" parent="Decorations/nature" instance=ExtResource("5_a3wkm")]
transform = Transform3D(0.0206421, 0, 0, 0, 0.0206421, 0, 0, 0, 0.0206421, 1.60311, 1.38633, -2.78547)
[node name="PalmCurved3" parent="Decorations/nature" instance=ExtResource("5_a3wkm")]
transform = Transform3D(0.0228198, -0.00350905, 0.0182581, 0.00447368, 0.029093, 0, -0.018046, 0.00277496, 0.0230881, 1.60311, 1.38633, -3.05434)
[node name="PalmDefault" parent="Decorations/nature" instance=ExtResource("6_106fc")]
transform = Transform3D(0.0285645, 0, 0, 0, 0.0285645, 0, 0, 0, 0.0285645, 1.58539, 1.19143, 0.741446)
[node name="PalmDefault2" parent="Decorations/nature" instance=ExtResource("6_106fc")]
transform = Transform3D(0.0285645, 0, 0, 0, 0.0285645, 0, 0, 0, 0.0285645, 2.54841, 1.33006, -0.654728)
[node name="PalmCurved4" parent="Decorations/nature" instance=ExtResource("5_a3wkm")]
transform = Transform3D(-0.0165298, 0, -0.0022076, 0, 0.0166766, 0, 0.0022076, 0, -0.0165298, -2.92791, 1.29787, -2.21588)
[node name="PalmDefault4" parent="Decorations/nature" instance=ExtResource("6_106fc")]
transform = Transform3D(-0.0283131, 0, -0.00378129, 0, 0.0285645, 0, 0.00378129, 0, -0.0283131, -2.84367, 1.2416, -1.98999)
[node name="PalmDefault3" parent="Decorations/nature" instance=ExtResource("6_106fc")]
transform = Transform3D(0.0357832, 0, 0, 0, 0.0357832, 0, 0, 0, 0.0357832, 1.57703, 1.36549, -3.01082)
[node name="PalmYoung" parent="Decorations/nature" instance=ExtResource("7_ill0p")]
transform = Transform3D(0.0328739, 0, 0, 0, 0.0328739, 0, 0, 0, 0.0328739, 0.0679206, 1.38939, 0.60797)
[node name="PalmYoung2" parent="Decorations/nature" instance=ExtResource("7_ill0p")]
transform = Transform3D(0.0324601, 0, -0.00519927, -0.000382867, 0.0327846, -0.00239032, 0.00518516, 0.00242079, 0.032372, 1.36351, 1.17911, 0.610679)
[node name="PalmYoung3" parent="Decorations/nature" instance=ExtResource("7_ill0p")]
transform = Transform3D(0.0247079, -4.21649e-12, -0.00395757, -0.00112831, 0.0239843, -0.0070443, 0.00379331, 0.00713409, 0.0236825, 1.68554, 1.21103, 0.610679)
[node name="PalmDefault5" parent="Decorations/nature" instance=ExtResource("6_106fc")]
transform = Transform3D(0.0105791, -0.0084015, -0.025168, 0.00325558, 0.027301, -0.00774509, 0.0263328, 0, 0.0110687, -0.427893, 1.9423, -2.64889)
[node name="PalmYoung4" parent="Decorations/nature" instance=ExtResource("7_ill0p")]
transform = Transform3D(0.00756592, -0.0117757, -0.0297453, 0.00192772, 0.0306781, -0.0116546, 0.0319333, 0.000938053, 0.00775109, -0.391226, 1.9407, -2.90411)
[node name="PalmYoung5" parent="Decorations/nature" instance=ExtResource("7_ill0p")]
transform = Transform3D(0.00614041, -0.0133402, -0.0202603, 0.000709091, 0.0209891, -0.0136051, 0.0242474, 0.00276446, 0.00552858, -0.293324, 2.04682, -2.60724)
[node name="PalmDefault6" parent="Decorations/nature" instance=ExtResource("6_106fc")]
transform = Transform3D(0.0378488, 0, 0, 0, 0.0378488, 0, 0, 0, 0.0378488, -2.78499, 0.880813, -5.32234)
[node name="PalmYoung6" parent="Decorations/nature" instance=ExtResource("7_ill0p")]
transform = Transform3D(0.0324601, 0, -0.00519927, -0.000382867, 0.0327846, -0.00239032, 0.00518516, 0.00242079, 0.032372, -2.92514, 0.929941, -5.44034)
[node name="PalmYoung7" parent="Decorations/nature" instance=ExtResource("7_ill0p")]
transform = Transform3D(0.0247079, -4.21649e-12, -0.00395757, -0.00112831, 0.0239843, -0.0070443, 0.00379331, 0.00713409, 0.0236825, -2.48546, 1.27716, -5.5655)
[node name="rock1" parent="Decorations/nature" instance=ExtResource("8_lwun6")]
transform = Transform3D(2.22588, -0.121134, 0, 0.121134, 2.22588, 0, 0, 0, 2.22917, 1.5143, 1.55265, -0.92903)
[node name="rock2" parent="Decorations/nature" instance=ExtResource("9_ywqbr")]
transform = Transform3D(0.691597, 0, 2.18402, 0, 2.29091, 0, -2.18402, 0, 0.691597, -2.49043, 1.75613, -2.80585)
[node name="rock4" parent="Decorations/nature" instance=ExtResource("9_ywqbr")]
transform = Transform3D(1.07799, 0, -2.02144, 0, 2.29091, 0, 2.02144, 0, 1.07799, 2.91299, 1.48205, -2.24697)
[node name="rock3" parent="Decorations/nature" instance=ExtResource("10_pmsfa")]
transform = Transform3D(1.34711, 0, -1.03681, 0, 1.69991, 0, 1.03681, 0, 1.34711, -0.627084, 1.6587, -0.745724)
[node name="rock5" parent="Decorations/nature" instance=ExtResource("10_pmsfa")]
transform = Transform3D(2.17971, 0, 1.18206, 0, 2.4796, 0, -1.18206, 0, 2.17971, -2.78722, 1.02155, -5.94306)
[node name="buildings" type="Node3D" parent="Decorations"]
[node name="buildingtall" parent="Decorations/buildings" instance=ExtResource("11_wytos")]
transform = Transform3D(21.8862, 0, 0, 0, 21.8862, 0, 0, 0, 21.8862, -4.3809, 2.55474, 2.89074)
[node name="buildingtall2" parent="Decorations/buildings" instance=ExtResource("11_wytos")]
transform = Transform3D(13.5064, 0, 0, 0, 13.5064, 0, 0, 0, 13.5064, -1.47841, 2.55474, -12.1844)
[node name="buildingtall3" parent="Decorations/buildings" instance=ExtResource("11_wytos")]
transform = Transform3D(10.4606, 0, 0, 0, 10.4606, 0, 0, 0, 10.4606, 5.31898, 2.55474, -8.06938)
[node name="buildingtall5" parent="Decorations/buildings" instance=ExtResource("11_wytos")]
transform = Transform3D(-0.0729599, 0, 21.8861, 0, 21.8862, 0, -21.8861, 0, -0.0729599, 12.1925, 2.55474, -11.372)
[node name="buildingtall6" parent="Decorations/buildings" instance=ExtResource("11_wytos")]
transform = Transform3D(-0.0450251, 0, 13.5063, 0, 13.5064, 0, -13.5063, 0, -0.0450251, -2.89216, 2.55474, -14.2242)
[node name="buildingtall7" parent="Decorations/buildings" instance=ExtResource("11_wytos")]
transform = Transform3D(-0.0348714, 0, 10.4605, 0, 10.4606, 0, -10.4605, 0, -0.0348714, 1.20015, 2.55474, -21.0353)
[node name="buildingtall4" parent="Decorations/buildings" instance=ExtResource("11_wytos")]
transform = Transform3D(10.4606, 0, 0, 0, 10.4606, 0, 0, 0, 10.4606, 8.3496, 2.55474, 5.62082)
[node name="buildingdark" parent="Decorations/buildings" instance=ExtResource("12_soqmo")]
transform = Transform3D(4.44687, 0, 0, 0, 4.44687, 0, 0, 0, 4.44687, -4.40636, 1.95165, 3.4984)
[node name="buildingdark4" parent="Decorations/buildings" instance=ExtResource("12_soqmo")]
transform = Transform3D(6.78288, 0, 0, 0, 6.78288, 0, 0, 0, 6.78288, -6.16993, 1.95165, -3.65367)
[node name="buildingtall8" parent="Decorations/buildings" instance=ExtResource("11_wytos")]
transform = Transform3D(-0.0116848, 0, 10.4606, 0, 10.4606, 0, -10.4606, 0, -0.0116848, -14.3399, 2.55474, -17.0464)
[node name="buildingtall9" parent="Decorations/buildings" instance=ExtResource("11_wytos")]
transform = Transform3D(-13.5063, 0, -0.0601121, 0, 13.5064, 0, 0.0601121, 0, -13.5063, -20.4855, 2.55474, -8.82839)
[node name="buildingdark8" parent="Decorations/buildings" instance=ExtResource("12_soqmo")]
transform = Transform3D(-0.00757671, 0, 6.78287, 0, 6.78288, 0, -6.78287, 0, -0.00757671, -9.91133, 1.95165, -5.56244)
[node name="buildingdark2" parent="Decorations/buildings" instance=ExtResource("12_soqmo")]
transform = Transform3D(4.44687, 0, 0, 0, 4.44687, 0, 0, 0, 4.44687, 6.77348, 1.95165, 3.4984)
[node name="buildingdark3" parent="Decorations/buildings" instance=ExtResource("12_soqmo")]
transform = Transform3D(4.44687, 0, 0, 0, 4.44687, 0, 0, 0, 4.44687, 5.32956, 1.95165, 3.4984)
[node name="buildingdark5" parent="Decorations/buildings" instance=ExtResource("12_soqmo")]
transform = Transform3D(7.67301, 0, 0, 0, 7.67301, 0, 0, 0, 7.67301, -0.410835, 2.81886, 6.63391)
[node name="buildinggray" parent="Decorations/buildings" instance=ExtResource("13_bqbcp")]
transform = Transform3D(6.28093, 0, 0, 0, 6.28093, 0, 0, 0, 6.28093, 8.30197, 1.03036, -1.61307)
[node name="buildinggray2" parent="Decorations/buildings" instance=ExtResource("13_bqbcp")]
transform = Transform3D(6.28093, 0, 0, 0, 6.28093, 0, 0, 0, 6.28093, 8.30197, 1.03036, -3.69042)
[node name="buildinggray3" parent="Decorations/buildings" instance=ExtResource("13_bqbcp")]
transform = Transform3D(6.28093, 0, 0, 0, 6.28093, 0, 0, 0, 6.28093, 8.30197, 1.03036, -10.8574)
[node name="buildingshort" parent="Decorations/buildings" instance=ExtResource("14_26vp6")]
transform = Transform3D(4.16771, 0, 0, 0, 4.16771, 0, 0, 0, 4.16771, -0.459043, 1.40556, 3.90663)
[node name="buildingshort3" parent="Decorations/buildings" instance=ExtResource("14_26vp6")]
transform = Transform3D(4.57392, 0, 0, 0, 4.57392, 0, 0, 0, 4.57392, -6.12576, 1.40556, -10.1037)
[node name="buildingdark6" parent="Decorations/buildings" instance=ExtResource("12_soqmo")]
transform = Transform3D(-0.0169875, 0, -6.71246, 0, 6.71248, 0, 6.71246, 0, -0.0169875, -4.48605, 2.0444, 15.7302)
[node name="buildingdark7" parent="Decorations/buildings" instance=ExtResource("12_soqmo")]
transform = Transform3D(-0.0259113, 0, -10.2386, 0, 10.2386, 0, 10.2386, 0, -0.0259113, 6.31659, 2.0444, 13.0954)
[node name="buildingshort6" parent="Decorations/buildings" instance=ExtResource("14_26vp6")]
transform = Transform3D(-0.0174728, 0, -6.90423, 0, 6.90426, 0, 6.90423, 0, -0.0174728, 16.0526, 1.22007, 13.1868)
[node name="buildingshort2" parent="Decorations/buildings" instance=ExtResource("14_26vp6")]
transform = Transform3D(4.16771, 0, 0, 0, 4.16771, 0, 0, 0, 4.16771, 1.65087, 1.40556, 3.90663)
[node name="buildingshort4" parent="Decorations/buildings" instance=ExtResource("14_26vp6")]
transform = Transform3D(4.02251, 0, 0, 0, 4.02251, 0, 0, 0, 4.02251, 1.64013, 1.40556, -9.83171)
[node name="buildingshort5" parent="Decorations/buildings" instance=ExtResource("14_26vp6")]
transform = Transform3D(4.02251, 0, 0, 0, 4.02251, 0, 0, 0, 4.02251, 3.67653, 1.40556, -9.83171)
[node name="buildingruined" parent="Decorations/buildings" instance=ExtResource("15_pvu04")]
transform = Transform3D(3, 0, 0, 0, 7, 0, 0, 0, 3, 0.264704, 3.59073, -4.06142)
[node name="beach items" type="Node3D" parent="Decorations"]
[node name="Floatie" parent="Decorations/beach items" instance=ExtResource("16_o5f84")]
transform = Transform3D(0.15, 0, 0, 0, 0.15, 0, 0, 0, 0.15, -0.784158, 0.853456, 2.16031)
[node name="Floatie2" parent="Decorations/beach items" instance=ExtResource("16_o5f84")]
transform = Transform3D(0.142475, -0.0469124, 0, 0.0469124, 0.142475, 0, 0, 0, 0.15, -3.06407, 0.899973, -0.715843)
[node name="Floatie3" parent="Decorations/beach items" instance=ExtResource("16_o5f84")]
transform = Transform3D(0.130141, 0.074587, 0, -0.074587, 0.130141, 0, 0, 0, 0.15, 3.48612, 0.899973, -0.715843)
[node name="Floatie4" parent="Decorations/beach items" instance=ExtResource("16_o5f84")]
transform = Transform3D(0.130141, 0.074587, 0, -0.074587, 0.130141, 0, 0, 0, 0.15, 0.886782, 1.39103, -0.739674)
[node name="Parsol" parent="Decorations/beach items" instance=ExtResource("17_tvwlm")]
transform = Transform3D(0.15, 0, 0, 0, 0.15, 0, 0, 0, 0.15, -1.66573, 0.876208, 1.05714)
[node name="Parsol4" parent="Decorations/beach items" instance=ExtResource("17_tvwlm")]
transform = Transform3D(-0.0239309, 0.0261311, -0.145755, 0.020213, 0.14684, 0.023007, 0.146693, -0.0159705, -0.0269481, 1.76494, 1.33168, -0.229817)
[node name="Parsol5" parent="Decorations/beach items" instance=ExtResource("17_tvwlm")]
transform = Transform3D(-0.0239309, 0.0261311, -0.145755, 0.020213, 0.14684, 0.023007, 0.146693, -0.0159705, -0.0269481, 2.32692, 1.57535, -2.17909)
[node name="Parsol2" parent="Decorations/beach items" instance=ExtResource("17_tvwlm")]
transform = Transform3D(0.1347, -6.66134e-17, 0.0660003, -0.0146604, 0.146253, 0.0299204, -0.0643514, -0.0333191, 0.131334, -1.14782, 1.47649, -0.558166)
[node name="Parsol3" parent="Decorations/beach items" instance=ExtResource("17_tvwlm")]
transform = Transform3D(0.134699, 1.78109e-09, 0.0660003, 0.0272818, 0.136585, -0.0556792, -0.0600977, 0.0620038, 0.122653, -1.99932, 1.60507, -2.17045)
[node name="Cooler" parent="Decorations/beach items" instance=ExtResource("18_whrnr")]
transform = Transform3D(0.120432, 0, 0.0894211, 0, 0.15, 0, -0.0894211, 0, 0.120432, 0.152196, 1.35823, -1.06364)
[node name="Cooler3" parent="Decorations/beach items" instance=ExtResource("18_whrnr")]
transform = Transform3D(0.148429, 0.0216508, 0, -0.0216154, 0.148186, -0.00857972, -0.00123839, 0.00848987, 0.149754, 1.4826, 1.19789, 0.782173)
[node name="Cooler2" parent="Decorations/beach items" instance=ExtResource("18_whrnr")]
transform = Transform3D(0.0773985, -0.0174174, -0.127303, -0.0231678, 0.144288, -0.0338269, 0.126383, 0.0371166, 0.071761, -2.22704, 1.55195, -2.24528)
[node name="Bucket" parent="Decorations/beach items" instance=ExtResource("19_yg6e1")]
transform = Transform3D(0.15, 0, 0, 0, 0.15, 0, 0, 0, 0.15, 0.0735223, 1.38544, -0.541391)
[node name="slimepen" type="Node3D" parent="Decorations"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.406997, 0.0234586, 0.519028)
[node name="fence" parent="Decorations/slimepen" instance=ExtResource("20_k7apf")]
transform = Transform3D(0.75, 0, 0, 0, 1.8, 0, 0, 0, 1.8, -0.193081, 1.39007, -1.43506)
[node name="fence2" parent="Decorations/slimepen" instance=ExtResource("20_k7apf")]
transform = Transform3D(-6.55671e-08, 0, 1.5, 0, 1.5, 0, -1.5, 0, -6.55671e-08, 0, 1.40507, -1.34639)
[node name="fence3" parent="Decorations/slimepen" instance=ExtResource("20_k7apf")]
transform = Transform3D(-6.55671e-08, 0, -1.5, 0, 1.5, 0, 1.5, 0, -6.55671e-08, 0, 1.40507, -1.34639)
[node name="fence4" parent="Decorations/slimepen" instance=ExtResource("20_k7apf")]
transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 1.40507, -2.10425)
[node name="grape_man" parent="." instance=ExtResource("21_j8hpq")]
transform = Transform3D(0.065, 0, 0, 0, 0.065, 0, 0, 0, 0.065, -0.219532, 2.64323, 0)
[node name="slime" parent="." instance=ExtResource("22_f6psl")]
transform = Transform3D(0.035, 0, 0, 0, 0.035, 0, 0, 0, 0.035, -0.240886, 2.72271, 0.267039)
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.965509, 0.26037, 0, -0.26037, 0.965509, 0, 5.42228, 4.14616)
[node name="Player" parent="." instance=ExtResource("23_bmfvv")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.548558, 2.93052, 0.413536)

View File

@ -6,11 +6,13 @@
[sub_resource type="CapsuleMesh" id="CapsuleMesh_b3srs"]
[node name="Villager" type="CharacterBody3D"]
[node name="Node3D" type="Node3D"]
script = ExtResource("1_ardgw")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
[node name="RigidBody3D" type="RigidBody3D" parent="."]
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D"]
shape = SubResource("CapsuleShape3D_s4x8n")
[node name="MeshInstance3D" type="MeshInstance3D" parent="CollisionShape3D"]
[node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D/CollisionShape3D"]
mesh = SubResource("CapsuleMesh_b3srs")