Act
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=15 format=3 uid="uid://bj2318o3y68x2"]
|
||||
[gd_scene load_steps=12 format=3 uid="uid://bj2318o3y68x2"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://ds6jy3s0hhmwt" path="res://_game/DemoScript.gd" id="1_2tycc"]
|
||||
[ext_resource type="PackedScene" uid="uid://cvqehvdjpoar4" path="res://_player/player_controller.tscn" id="2_gslp7"]
|
||||
|
|
@ -11,13 +11,13 @@
|
|||
[ext_resource type="Script" uid="uid://dn0ksjoswquf5" path="res://addons/reedscene/scene/SceneManager.gd" id="8_3ihdv"]
|
||||
[ext_resource type="Script" uid="uid://dsgl7lbyjsiif" path="res://addons/reedscene/act/ActManager.gd" id="9_hc6q0"]
|
||||
[ext_resource type="Script" uid="uid://pxjf5vst08eo" path="res://addons/reedscene/prop/PropManager.gd" id="10_mwuv1"]
|
||||
[ext_resource type="Script" uid="uid://b4menkyub4ce7" path="res://addons/reedscene/prop/PropComponent.gd" id="12_m325v"]
|
||||
[ext_resource type="Script" uid="uid://di41kt2tj34c2" path="res://addons/reedscene/prop/StateManager.gd" id="13_j8v5a"]
|
||||
[ext_resource type="Script" uid="uid://7lml6d1t5xtq" path="res://addons/reedscene/prop/PropState.gd" id="14_acyif"]
|
||||
|
||||
[node name="Game" type="Node2D"]
|
||||
script = ExtResource("1_2tycc")
|
||||
|
||||
[node name="PlayerController" parent="." node_paths=PackedStringArray("auto_controlled_avatar") instance=ExtResource("2_gslp7")]
|
||||
auto_controlled_avatar = NodePath("../Avatar")
|
||||
|
||||
[node name="Avatar" parent="." instance=ExtResource("3_6jw57")]
|
||||
position = Vector2(283, 253)
|
||||
collision_mask = 4
|
||||
|
|
@ -45,29 +45,3 @@ script = ExtResource("9_hc6q0")
|
|||
|
||||
[node name="Props" type="Node2D" parent="ReedScene"]
|
||||
script = ExtResource("10_mwuv1")
|
||||
|
||||
[node name="PlayerController" parent="ReedScene/Props" node_paths=PackedStringArray("auto_controlled_avatar") instance=ExtResource("2_gslp7")]
|
||||
auto_controlled_avatar = NodePath("../../../Avatar")
|
||||
|
||||
[node name="[Prop_0000]" type="Node" parent="ReedScene/Props/PlayerController"]
|
||||
script = ExtResource("12_m325v")
|
||||
prop_id = 0
|
||||
|
||||
[node name="States" type="Node" parent="ReedScene/Props/PlayerController/[Prop_0000]"]
|
||||
script = ExtResource("13_j8v5a")
|
||||
|
||||
[node name="[ID_0] 修改修改修改" type="Node" parent="ReedScene/Props/PlayerController/[Prop_0000]/States"]
|
||||
script = ExtResource("14_acyif")
|
||||
state_id = 0
|
||||
|
||||
[node name="[ID_1] 修改名稱" type="Node" parent="ReedScene/Props/PlayerController/[Prop_0000]/States"]
|
||||
script = ExtResource("14_acyif")
|
||||
state_id = 1
|
||||
|
||||
[node name="[ID_2] 修改名稱3" type="Node" parent="ReedScene/Props/PlayerController/[Prop_0000]/States"]
|
||||
script = ExtResource("14_acyif")
|
||||
state_id = 2
|
||||
|
||||
[node name="[ID_3] 修改名稱4" type="Node" parent="ReedScene/Props/PlayerController/[Prop_0000]/States"]
|
||||
script = ExtResource("14_acyif")
|
||||
state_id = 3
|
||||
|
|
|
|||
|
|
@ -203,6 +203,7 @@ metadata/_custom_type_script = "uid://jeybblac0kg2"
|
|||
[node name="SceneStaticCamera" parent="Props" instance=ExtResource("14_s6kod")]
|
||||
position = Vector2(334, 183)
|
||||
tween_on_load = false
|
||||
draw_limits = true
|
||||
|
||||
[node name="[Prop_0002]" type="Node" parent="Props/SceneStaticCamera"]
|
||||
script = ExtResource("7_s6kod")
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@ script = ExtResource("8_d42ye")
|
|||
[node name="Fall" type="LimboState" parent="PlayerHSM/Normal/Airbone"]
|
||||
unique_name_in_owner = true
|
||||
script = ExtResource("9_iqoog")
|
||||
jump_grace_time = 0.16
|
||||
|
||||
[node name="Jump" type="LimboState" parent="PlayerHSM/Normal/Airbone"]
|
||||
unique_name_in_owner = true
|
||||
|
|
@ -145,8 +146,11 @@ dash_speed = 400.0
|
|||
end_dash_speed = 190.0
|
||||
climb_hop_velocity_x = 180.0
|
||||
climb_hop_velocity_y = 334.0
|
||||
jump_force = 270.0
|
||||
jump_horizontal_Boost = 235.0
|
||||
jump_force = 290.0
|
||||
jump_hold_maxium_time = 0.135
|
||||
jump_horizontal_Boost = 265.0
|
||||
light_gravity_threshold = 120.0
|
||||
light_gravity_mult = 0.6
|
||||
wall_jump_base_force_x = 260.0
|
||||
wall_jump_base_force_y = 220.0
|
||||
fall_maxium_speed = 430.0
|
||||
|
|
@ -184,6 +188,7 @@ metadata/_custom_type_script = "uid://ta2r2bc1nrwe"
|
|||
position = Vector2(50, -75)
|
||||
script = ExtResource("32_u7cua")
|
||||
tween_resource = SubResource("Resource_1a1t3")
|
||||
draw_limits = true
|
||||
metadata/_custom_type_script = "uid://bhexx6mj1xv3q"
|
||||
|
||||
[node name="Locker" type="Node" parent="PhantomCamera2D" node_paths=PackedStringArray("target_camera")]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
extends LimboState
|
||||
|
||||
##土狼跳缓存时间
|
||||
##跳輸入缓存时间
|
||||
@export var jump_grace_time: float = .14
|
||||
|
||||
var jump_grace_timer: float
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ extends LimboState
|
|||
|
||||
@onready var root: Normal = %Normal
|
||||
|
||||
##TODO:后续把JumpGrace在JumpState也写一下,或者直接写到AirBoneState,目前的JumpGrace由于只能在Fall触发,会卡手
|
||||
|
||||
func _setup() -> void:
|
||||
self.add_event_handler(&"completed_jump",_handler_completed_jump)
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
uid://dm28i1f2r18b8
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
extends ReedTransition
|
||||
|
||||
func execute(from: ReedPropState, to: ReedPropState, ctx: Dictionary) -> bool:
|
||||
super.execute(from,to,ctx)
|
||||
to._owner.call
|
||||
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://csbvukpwc7g6p
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
#####################
|
||||
EXAMPLE ASSET CREDITS
|
||||
#####################
|
||||
|
||||
# level_spritesheet
|
||||
https://opengameart.org/content/a-platformer-in-the-forest
|
||||
https://opengameart.org/users/buch
|
||||
|
|
@ -1,120 +0,0 @@
|
|||
[gd_scene load_steps=10 format=3 uid="uid://7kh0xydx0b1o"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cb46ypjv5p72s" path="res://addons/phantom_camera/examples/scripts/2D/player_character_body_2d.gd" id="1_jnc14"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="2_62b2n"]
|
||||
[ext_resource type="Texture2D" uid="uid://cscjjt55iw2cu" path="res://addons/phantom_camera/examples/textures/2D/player_sprite.svg" id="2_yr8cm"]
|
||||
[ext_resource type="Script" uid="uid://bhexx6mj1xv3q" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd" id="4_rloon"]
|
||||
[ext_resource type="Resource" uid="uid://cecrnq0wnkexh" path="res://addons/phantom_camera/examples/resources/tween/item_focus_phantom_camera_2d_tween.tres" id="5_4iyk1"]
|
||||
[ext_resource type="Resource" uid="uid://cllveybboaqk5" path="res://addons/phantom_camera/examples/resources/tween/inventory_phantom_camera_2d_tween.tres" id="6_2h6fv"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5hryl"]
|
||||
bg_color = Color(0.85098, 0.894118, 0.937255, 1)
|
||||
border_width_left = 2
|
||||
border_width_top = 2
|
||||
border_width_right = 2
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0.113725, 0.113725, 0.113725, 1)
|
||||
corner_radius_top_left = 7
|
||||
corner_radius_top_right = 7
|
||||
corner_radius_bottom_right = 7
|
||||
corner_radius_bottom_left = 7
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_xj4ar"]
|
||||
size = Vector2(64, 57)
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_18i13"]
|
||||
size = Vector2(64, 57)
|
||||
|
||||
[node name="CharacterBody2D" type="CharacterBody2D"]
|
||||
script = ExtResource("1_jnc14")
|
||||
|
||||
[node name="DarkOverlay" type="ColorRect" parent="."]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -1000.0
|
||||
offset_top = -1000.0
|
||||
offset_right = 1000.0
|
||||
offset_bottom = 1000.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0, 0, 0, 0.615686)
|
||||
|
||||
[node name="PlayerVisuals" type="Node2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="PlayerSprite" type="Sprite2D" parent="PlayerVisuals"]
|
||||
unique_name_in_owner = true
|
||||
scale = Vector2(0.5, 0.5)
|
||||
texture = ExtResource("2_yr8cm")
|
||||
|
||||
[node name="InteractionPrompt" type="Panel" parent="PlayerVisuals"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -16.0
|
||||
offset_top = -66.0
|
||||
offset_right = 16.0
|
||||
offset_bottom = -34.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
size_flags_vertical = 0
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_5hryl")
|
||||
|
||||
[node name="Label" type="Label" parent="PlayerVisuals/InteractionPrompt"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -3.0
|
||||
offset_bottom = 5.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||
theme_override_fonts/font = ExtResource("2_62b2n")
|
||||
theme_override_font_sizes/font_size = 26
|
||||
text = "F"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(0, -0.5)
|
||||
shape = SubResource("RectangleShape2D_xj4ar")
|
||||
|
||||
[node name="PlayerArea2D" type="Area2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
collision_layer = 2
|
||||
collision_mask = 2
|
||||
priority = 20
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerArea2D"]
|
||||
position = Vector2(0, -0.5)
|
||||
shape = SubResource("RectangleShape2D_18i13")
|
||||
|
||||
[node name="ItemFocusPhantomCamera2D" type="Node2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
position = Vector2(0, -122)
|
||||
script = ExtResource("4_rloon")
|
||||
zoom = Vector2(2, 2)
|
||||
frame_preview = false
|
||||
tween_resource = ExtResource("5_4iyk1")
|
||||
follow_damping_value = Vector2(0, 0)
|
||||
draw_limits = true
|
||||
|
||||
[node name="InventoryPhantomCamera2D" type="Node2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
position = Vector2(-183, -5)
|
||||
script = ExtResource("4_rloon")
|
||||
zoom = Vector2(2.5, 2.5)
|
||||
frame_preview = false
|
||||
tween_resource = ExtResource("6_2h6fv")
|
||||
follow_damping_value = Vector2(0, 0)
|
||||
draw_limits = true
|
||||
|
|
@ -1,357 +0,0 @@
|
|||
[gd_scene load_steps=40 format=3 uid="uid://cypbptekk8etg"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_u86qq"]
|
||||
[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="2_jl1he"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="3_an0dt"]
|
||||
[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="4_iy6qn"]
|
||||
[ext_resource type="Resource" uid="uid://cptfoggk2ok67" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres" id="5_0ku52"]
|
||||
[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="6_prr6u"]
|
||||
[ext_resource type="Script" uid="uid://uvw6pg1ut0ms" path="res://addons/phantom_camera/examples/scripts/3D/npc.gd" id="7_nl3ax"]
|
||||
[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="8_xvqcg"]
|
||||
[ext_resource type="Script" uid="uid://bnhxcejvr6wi3" path="res://addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd" id="9_hqgwi"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="10_cd0kn"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_jtk1d"]
|
||||
script = ExtResource("6_prr6u")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_o161n"]
|
||||
script = ExtResource("6_prr6u")
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_7tjw4"]
|
||||
size = Vector3(2, 0.5, 4)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hpllm"]
|
||||
transparency = 1
|
||||
albedo_color = Color(0.988235, 0.478431, 0.905882, 0.0901961)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_65o6h"]
|
||||
size = Vector3(2, 0.5, 4)
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_tpc7d"]
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_g0eml"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_v5iy7"]
|
||||
albedo_color = Color(0.988235, 0.478431, 0.905882, 1)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_tpvee"]
|
||||
script = ExtResource("8_xvqcg")
|
||||
duration = 0.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bxbnv"]
|
||||
script = ExtResource("6_prr6u")
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_wcrbb"]
|
||||
size = Vector3(6.8, 0.1, 5.4)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_7ih0k"]
|
||||
script = ExtResource("8_xvqcg")
|
||||
duration = 0.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_4iyps"]
|
||||
script = ExtResource("6_prr6u")
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ctyr8"]
|
||||
size = Vector3(7.4, 0.1, 3.6)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_x5y0u"]
|
||||
script = ExtResource("8_xvqcg")
|
||||
duration = 0.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_pgiyx"]
|
||||
script = ExtResource("6_prr6u")
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ua072"]
|
||||
size = Vector3(6.8, 0.1, 3.6)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_ugc3s"]
|
||||
size = Vector3(1, 1, 2)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_68thd"]
|
||||
albedo_color = Color(0.34902, 0.862745, 0.854902, 1)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_wphly"]
|
||||
size = Vector3(1, 0.5, 1)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_gyp5s"]
|
||||
size = Vector3(20, 40, 30)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_lfaqs"]
|
||||
size = Vector3(20, 40, 30)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_n70lt"]
|
||||
size = Vector3(14, 40, 6)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_jxmqm"]
|
||||
size = Vector3(14, 40, 6)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_x0tgm"]
|
||||
size = Vector3(8, 40, 1)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_t67ef"]
|
||||
size = Vector3(50, 40, 1)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_rmslh"]
|
||||
size = Vector3(0.5, 6, 13.5)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_242ij"]
|
||||
size = Vector3(2, 3, 3)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_niuda"]
|
||||
size = Vector3(8, 6, 0.5)
|
||||
|
||||
[node name="Root" type="Node3D"]
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
physics_interpolation_mode = 1
|
||||
transform = Transform3D(0.999858, 0, 0, 0, 0.94884, 0.315632, 0, -0.315637, 0.948825, -2.53871, 2, 9.76232)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
process_priority = 300
|
||||
process_physics_priority = 300
|
||||
script = ExtResource("1_u86qq")
|
||||
|
||||
[node name="PlayerGroup" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerCharacterBody3D" parent="PlayerGroup" instance=ExtResource("2_jl1he")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.53871, 0.5, 7.26232)
|
||||
|
||||
[node name="MovementInstructionsLabel" type="Label3D" parent="PlayerGroup"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, -2.47682, -0.0708016, 7.93048)
|
||||
modulate = Color(0.294118, 1, 0.631373, 1)
|
||||
text = "[WASD] to move"
|
||||
font = ExtResource("3_an0dt")
|
||||
font_size = 48
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="PlayerGroup" node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999858, 0, 0, 0, 0.94884, 0.315632, 0, -0.315637, 0.948825, -2.53871, 2, 9.76232)
|
||||
top_level = true
|
||||
script = ExtResource("4_iy6qn")
|
||||
priority = 10
|
||||
follow_mode = 2
|
||||
follow_target = NodePath("../PlayerCharacterBody3D")
|
||||
tween_resource = ExtResource("5_0ku52")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_jtk1d")
|
||||
follow_offset = Vector3(0, 1.5, 2.5)
|
||||
follow_damping = true
|
||||
align_transform_with_view = Callable()
|
||||
align_position_with_view = Callable()
|
||||
|
||||
[node name="NPCGroup" type="Node" parent="."]
|
||||
|
||||
[node name="NPCPhantomCamera3D" type="Node3D" parent="NPCGroup"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.616596, -0.109786, 0.779587, -2.23517e-08, 0.990229, 0.13945, -0.78728, -0.0859841, 0.610571, -2.98802, 1.50739, 1.19719)
|
||||
script = ExtResource("4_iy6qn")
|
||||
tween_resource = ExtResource("5_0ku52")
|
||||
camera_3d_resource = SubResource("Resource_o161n")
|
||||
|
||||
[node name="NPCDescriptionLabel" type="Label3D" parent="NPCGroup"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.866026, 0.5, 0, -0.5, 0.866025, -3.04693, 0.367287, 0.953757)
|
||||
text = "Input Example"
|
||||
font = ExtResource("3_an0dt")
|
||||
|
||||
[node name="NPCDialogueExampleLabel" type="Label3D" parent="NPCGroup"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 4.54671e-10, 1.65487e-10, 4.25644e-10, 0.939693, 0.34202, 0, -0.34202, 0.939693, -4.46738, 1.58641, -0.253679)
|
||||
modulate = Color(1, 0.603922, 0.254902, 1)
|
||||
text = "Press [ F ] to change camera"
|
||||
font = ExtResource("3_an0dt")
|
||||
|
||||
[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="NPCGroup"]
|
||||
transform = Transform3D(0.819152, 4.83851e-10, -0.573576, -3.92481e-09, 1, -6.3473e-09, 0.573576, 7.45058e-09, 0.819152, -3.46138, -0.4, 0.875321)
|
||||
mesh = SubResource("BoxMesh_7tjw4")
|
||||
skeleton = NodePath("../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_hpllm")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="NPCInteractionArea3D" type="Area3D" parent="NPCGroup/NPCInteractionZoneMesh"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, -2.68591e-26, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
|
||||
monitorable = false
|
||||
|
||||
[node name="NPCInterationCollisionShape3D" type="CollisionShape3D" parent="NPCGroup/NPCInteractionZoneMesh/NPCInteractionArea3D"]
|
||||
shape = SubResource("BoxShape3D_65o6h")
|
||||
|
||||
[node name="NPC" type="StaticBody3D" parent="NPCGroup"]
|
||||
transform = Transform3D(1, 4.83851e-10, 0, 4.25644e-10, 1, -7.45058e-09, 0, 7.45058e-09, 1, -4.56338, 0.5, -0.272679)
|
||||
script = ExtResource("7_nl3ax")
|
||||
|
||||
[node name="PlayerCollisionShape3D2" type="CollisionShape3D" parent="NPCGroup/NPC"]
|
||||
transform = Transform3D(1, -2.68591e-26, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
|
||||
shape = SubResource("CapsuleShape3D_tpc7d")
|
||||
|
||||
[node name="NPCMesh" type="MeshInstance3D" parent="NPCGroup/NPC"]
|
||||
transform = Transform3D(1, -2.68591e-26, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
|
||||
mesh = SubResource("CapsuleMesh_g0eml")
|
||||
skeleton = NodePath("../../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_v5iy7")
|
||||
|
||||
[node name="MoveToLocation" type="Node3D" parent="NPCGroup"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.70084, 0.5, 0.962891)
|
||||
|
||||
[node name="FixedCameraTriggerZone" type="Node" parent="."]
|
||||
|
||||
[node name="FixedCameraLabel" type="Label3D" parent="FixedCameraTriggerZone"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.939693, 0.280167, -0.196175, 1.49012e-08, 0.573577, 0.819152, 0.34202, -0.769751, 0.538986, -0.538716, -0.247626, 3.13456)
|
||||
text = "Fixed Camera
|
||||
Example"
|
||||
font = ExtResource("3_an0dt")
|
||||
|
||||
[node name="NorthRoomPhantomCamera3D" type="Node3D" parent="FixedCameraTriggerZone"]
|
||||
transform = Transform3D(0.38357, -0.555836, 0.737507, -0.105898, 0.766851, 0.633027, -0.917417, -0.320912, 0.235279, 6.89638, 4.73986, 0.115512)
|
||||
script = ExtResource("4_iy6qn")
|
||||
tween_resource = SubResource("Resource_tpvee")
|
||||
camera_3d_resource = SubResource("Resource_bxbnv")
|
||||
|
||||
[node name="NorthRoomTrigger" type="Area3D" parent="FixedCameraTriggerZone" node_paths=PackedStringArray("area_pcam")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, -0.45, -0.9)
|
||||
priority = 5
|
||||
script = ExtResource("9_hqgwi")
|
||||
area_pcam = NodePath("../NorthRoomPhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="FixedCameraTriggerZone/NorthRoomTrigger"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0, -0.4)
|
||||
shape = SubResource("BoxShape3D_wcrbb")
|
||||
|
||||
[node name="EntryRoomPhantomCamera3D" type="Node3D" parent="FixedCameraTriggerZone"]
|
||||
transform = Transform3D(0.258818, -0.482963, 0.836515, 1.3027e-15, 0.866025, 0.499999, -0.965924, -0.129409, 0.224143, 6.69741, 4.73364, 4.02374)
|
||||
script = ExtResource("4_iy6qn")
|
||||
tween_resource = SubResource("Resource_7ih0k")
|
||||
camera_3d_resource = SubResource("Resource_4iyps")
|
||||
|
||||
[node name="EntryRoomTrigger" type="Area3D" parent="FixedCameraTriggerZone" node_paths=PackedStringArray("area_pcam")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.00003, -0.454982, 3.00572)
|
||||
priority = 5
|
||||
script = ExtResource("9_hqgwi")
|
||||
area_pcam = NodePath("../EntryRoomPhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="FixedCameraTriggerZone/EntryRoomTrigger"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, 0, 0.2)
|
||||
shape = SubResource("BoxShape3D_ctyr8")
|
||||
|
||||
[node name="SouthRoomPhantomCamera3D" type="Node3D" parent="FixedCameraTriggerZone"]
|
||||
transform = Transform3D(-0.766043, -0.492403, 0.413175, 0, 0.642787, 0.766043, -0.642786, 0.586825, -0.492403, 6.89741, 4.73364, 5.62374)
|
||||
script = ExtResource("4_iy6qn")
|
||||
tween_resource = SubResource("Resource_x5y0u")
|
||||
camera_3d_resource = SubResource("Resource_pgiyx")
|
||||
|
||||
[node name="SouthRoomTrigger" type="Area3D" parent="FixedCameraTriggerZone" node_paths=PackedStringArray("area_pcam")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, -0.45, 6.7)
|
||||
priority = 5
|
||||
script = ExtResource("9_hqgwi")
|
||||
area_pcam = NodePath("../SouthRoomPhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="FixedCameraTriggerZone/SouthRoomTrigger"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0, 0.1)
|
||||
shape = SubResource("BoxShape3D_ua072")
|
||||
|
||||
[node name="CSGMesh3D" type="CSGMesh3D" parent="FixedCameraTriggerZone"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.14238, 1.82571, 2.88655)
|
||||
mesh = SubResource("BoxMesh_ugc3s")
|
||||
material = SubResource("StandardMaterial3D_68thd")
|
||||
|
||||
[node name="CSGMesh3D2" type="CSGMesh3D" parent="FixedCameraTriggerZone/CSGMesh3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00192642, -0.0120339, 0.00494432)
|
||||
operation = 2
|
||||
mesh = SubResource("BoxMesh_wphly")
|
||||
material = SubResource("StandardMaterial3D_68thd")
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Environment" type="Node3D" parent="Environment"]
|
||||
|
||||
[node name="Floor" parent="Environment/Environment" instance=ExtResource("10_cd0kn")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="West Wall" type="StaticBody3D" parent="Environment/Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0.5, 0)
|
||||
metadata/_edit_group_ = true
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Environment/Environment/West Wall"]
|
||||
mesh = SubResource("BoxMesh_gyp5s")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Environment/Environment/West Wall"]
|
||||
shape = SubResource("BoxShape3D_lfaqs")
|
||||
|
||||
[node name="East Wall" type="StaticBody3D" parent="Environment/Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.999, 0.502, 0)
|
||||
metadata/_edit_group_ = true
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Environment/Environment/East Wall"]
|
||||
mesh = SubResource("BoxMesh_gyp5s")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Environment/Environment/East Wall"]
|
||||
shape = SubResource("BoxShape3D_lfaqs")
|
||||
|
||||
[node name="North Wall" type="StaticBody3D" parent="Environment/Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -6.90828)
|
||||
metadata/_edit_group_ = true
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Environment/Environment/North Wall"]
|
||||
mesh = SubResource("BoxMesh_n70lt")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Environment/Environment/North Wall"]
|
||||
shape = SubResource("BoxShape3D_jxmqm")
|
||||
|
||||
[node name="South Wall" type="StaticBody3D" parent="Environment/Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.25, 0.5, 9.087)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="Environment/Environment/South Wall"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 0)
|
||||
mesh = SubResource("BoxMesh_x0tgm")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Environment/Environment/South Wall"]
|
||||
shape = SubResource("BoxShape3D_t67ef")
|
||||
|
||||
[node name="FixedCamOuterWall" type="CSGMesh3D" parent="Environment/Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, 2)
|
||||
use_collision = true
|
||||
mesh = SubResource("BoxMesh_rmslh")
|
||||
|
||||
[node name="FixedCamOuterDoorway" type="CSGMesh3D" parent="Environment/Environment/FixedCamOuterWall"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.5, 1)
|
||||
operation = 2
|
||||
mesh = SubResource("BoxMesh_242ij")
|
||||
|
||||
[node name="FixedCamNorthWall" type="CSGMesh3D" parent="Environment/Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 2.5, 1)
|
||||
use_collision = true
|
||||
mesh = SubResource("BoxMesh_niuda")
|
||||
|
||||
[node name="FixedCamNorthDoorway" type="CSGMesh3D" parent="Environment/Environment/FixedCamNorthWall"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.5, 0)
|
||||
operation = 2
|
||||
mesh = SubResource("BoxMesh_242ij")
|
||||
|
||||
[node name="FixedCamSouthWall" type="CSGMesh3D" parent="Environment/Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 2.5, 5.1)
|
||||
use_collision = true
|
||||
mesh = SubResource("BoxMesh_niuda")
|
||||
|
||||
[node name="FixedCamSouthDoorway" type="CSGMesh3D" parent="Environment/Environment/FixedCamSouthWall"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.50541, 1.19209e-07)
|
||||
operation = 2
|
||||
mesh = SubResource("BoxMesh_242ij")
|
||||
|
|
@ -1,148 +0,0 @@
|
|||
[gd_scene load_steps=10 format=3 uid="uid://cx7x48cpi8gcd"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_6uslv"]
|
||||
[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_5cpe8"]
|
||||
[ext_resource type="Resource" uid="uid://cptfoggk2ok67" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres" id="3_422w7"]
|
||||
[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_4qurp"]
|
||||
[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="5_uw36d"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="6_i060b"]
|
||||
[ext_resource type="Texture2D" uid="uid://bj7h2fc5jx4ax" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="7_iyghi"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_wg1pr"]
|
||||
script = ExtResource("4_4qurp")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_auy8m"]
|
||||
albedo_texture = ExtResource("7_iyghi")
|
||||
uv1_triplanar = true
|
||||
uv1_world_triplanar = true
|
||||
|
||||
[node name="Root" type="Node3D"]
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
physics_interpolation_mode = 1
|
||||
transform = Transform3D(0.99995, 0, 0, 0, 0.79324, 0.608671, 0, -0.608675, 0.793235, 0, 2.934684, 3.17294)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
process_priority = 300
|
||||
process_physics_priority = 300
|
||||
script = ExtResource("1_6uslv")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Player" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="Player" node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.99995, 0, 0, 0, 0.79324, 0.608671, 0, -0.608675, 0.793235, 0, 2.934684, 3.17294)
|
||||
top_level = true
|
||||
script = ExtResource("2_5cpe8")
|
||||
follow_mode = 5
|
||||
follow_target = NodePath("../PlayerCharacterBody3D")
|
||||
tween_resource = ExtResource("3_422w7")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_wg1pr")
|
||||
follow_damping = true
|
||||
follow_distance = 4.0
|
||||
dead_zone_width = 0.139
|
||||
dead_zone_height = 0.14
|
||||
show_viewfinder_in_play = true
|
||||
spring_length = 4.0
|
||||
align_transform_with_view = Callable()
|
||||
align_position_with_view = Callable()
|
||||
|
||||
[node name="PlayerCharacterBody3D" parent="Player" instance=ExtResource("5_uw36d")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("6_i060b")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.636134, 0.805455, -6.37532)
|
||||
use_collision = true
|
||||
radius = 1.71971
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.54597, -0.540694, -3.39517)
|
||||
use_collision = true
|
||||
radius = 1.53269
|
||||
height = 2.5036
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.64877, -1.50101, 1.22863)
|
||||
use_collision = true
|
||||
radius = 1.57419
|
||||
height = 3.47475
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.4732, 0.805455, -8.78984)
|
||||
use_collision = true
|
||||
radius = 0.956285
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGSphere3D" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.40027, -1.69814, 3.36997)
|
||||
use_collision = true
|
||||
radius = 3.34732
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D2" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.13768, -0.599204, -1.04651)
|
||||
use_collision = true
|
||||
radius = 2.65844
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D3" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.7976, -0.599204, -2.42244)
|
||||
use_collision = true
|
||||
radius = 2.14606
|
||||
rings = 32
|
||||
|
||||
[node name="CSGTorus3D2" type="CSGTorus3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.84078, -0.497663, 4.44352)
|
||||
use_collision = true
|
||||
inner_radius = 0.971543
|
||||
outer_radius = 2.15226
|
||||
sides = 32
|
||||
ring_sides = 18
|
||||
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.52545, 6.53866, -12.6331)
|
||||
use_collision = true
|
||||
size = Vector3(178.429, 14.0773, 1)
|
||||
material = SubResource("StandardMaterial3D_auy8m")
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.88916, 0.760708, -6.1376)
|
||||
use_collision = true
|
||||
size = Vector3(2.64182, 2.52142, 2.30997)
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.83837, -0.241718, 7.14677)
|
||||
use_collision = true
|
||||
size = Vector3(3.80964, 1.67049, 0.932048)
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.34377, 0.138478, -4.36159)
|
||||
use_collision = true
|
||||
size = Vector3(1.53893, 1.27695, 1.80814)
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.9834, 0.138478, -1.89037)
|
||||
use_collision = true
|
||||
size = Vector3(4.03502, 1.27695, 5.2198)
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.38147, 0.0440434, 8.36617)
|
||||
use_collision = true
|
||||
size = Vector3(4.57784, 1.08809, 3.11285)
|
||||
|
|
@ -1,198 +0,0 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://d2lx45noxq685"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_7a3wq"]
|
||||
[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_158c0"]
|
||||
[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="3_ganw1"]
|
||||
[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_kig2n"]
|
||||
[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="5_caky3"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="6_kkbaa"]
|
||||
[ext_resource type="Texture2D" uid="uid://bj7h2fc5jx4ax" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="7_i1dbs"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ucp3e"]
|
||||
script = ExtResource("3_ganw1")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ab013"]
|
||||
script = ExtResource("4_kig2n")
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_2h36r"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_w3olp"]
|
||||
albedo_color = Color(0.227451, 0.337255, 0.576471, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cw102"]
|
||||
albedo_color = Color(0.227451, 0.337255, 0.576471, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_auy8m"]
|
||||
albedo_texture = ExtResource("7_i1dbs")
|
||||
uv1_triplanar = true
|
||||
uv1_world_triplanar = true
|
||||
|
||||
[node name="Node3D" type="Node3D"]
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
physics_interpolation_mode = 1
|
||||
transform = Transform3D(0.999954, 0, 0, 0, 0.638683, 0.769345, 0, -0.769298, 0.638723, 0, 6.39, 7)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
process_priority = 300
|
||||
process_physics_priority = 300
|
||||
script = ExtResource("1_7a3wq")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Player" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="Player" node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999954, 0, 0, 0, 0.638683, 0.769345, 0, -0.769298, 0.638723, 0, 6.39, 7)
|
||||
top_level = true
|
||||
script = ExtResource("2_158c0")
|
||||
priority = 5
|
||||
follow_mode = 1
|
||||
follow_target = NodePath("../PlayerCharacterBody3D")
|
||||
tween_resource = SubResource("Resource_ucp3e")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_ab013")
|
||||
follow_damping = true
|
||||
follow_damping_value = Vector3(0.3, 0.3, 0.3)
|
||||
align_transform_with_view = Callable()
|
||||
align_position_with_view = Callable()
|
||||
|
||||
[node name="PlayerCharacterBody3D" parent="Player" instance=ExtResource("5_caky3")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6.39, 7)
|
||||
enable_gravity = false
|
||||
|
||||
[node name="PlayerVisual" parent="Player/PlayerCharacterBody3D" index="2"]
|
||||
visible = false
|
||||
|
||||
[node name="NPCs" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerMeshInstance3D" type="MeshInstance3D" parent="NPCs"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.04486, 0.519002, -1.52506)
|
||||
mesh = SubResource("CapsuleMesh_2h36r")
|
||||
skeleton = NodePath("")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_w3olp")
|
||||
|
||||
[node name="PlayerMeshInstance3D2" type="MeshInstance3D" parent="NPCs"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.51494, 0.519, 4.06618)
|
||||
mesh = SubResource("CapsuleMesh_2h36r")
|
||||
skeleton = NodePath("")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_cw102")
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("6_kkbaa")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.62737, 0.805455, -6.37532)
|
||||
use_collision = true
|
||||
radius = 1.71971
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.9378, 0.31181, -5.46661)
|
||||
use_collision = true
|
||||
radius = 2.77591
|
||||
height = 1.62362
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.58617, 0.31181, 6.6322)
|
||||
use_collision = true
|
||||
radius = 1.57419
|
||||
height = 3.47475
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.774, 0.201103, 2.71259)
|
||||
use_collision = true
|
||||
radius = 1.41311
|
||||
height = 1.40221
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.40488, 0.201101, 11.6804)
|
||||
use_collision = true
|
||||
radius = 2.21673
|
||||
height = 7.88261
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.20971, 0.805455, -8.78984)
|
||||
use_collision = true
|
||||
radius = 0.956285
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGSphere3D" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.9771, -1.69814, -6.51262)
|
||||
use_collision = true
|
||||
radius = 3.34732
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D2" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.555532, -0.599204, 8.81048)
|
||||
use_collision = true
|
||||
radius = 2.65844
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D3" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.0611, -0.599204, -2.42244)
|
||||
use_collision = true
|
||||
radius = 2.14606
|
||||
rings = 32
|
||||
|
||||
[node name="CSGTorus3D" type="CSGTorus3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.21187, -1.90735e-06, 0.346393)
|
||||
use_collision = true
|
||||
inner_radius = 1.3
|
||||
outer_radius = 2.0
|
||||
sides = 32
|
||||
ring_sides = 18
|
||||
|
||||
[node name="CSGTorus3D2" type="CSGTorus3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21.9283, -1.90735e-06, 7.89765)
|
||||
use_collision = true
|
||||
inner_radius = 0.971543
|
||||
outer_radius = 2.15226
|
||||
sides = 32
|
||||
ring_sides = 18
|
||||
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.49828, 6.53866, -12.6331)
|
||||
use_collision = true
|
||||
size = Vector3(178.429, 14.0773, 1)
|
||||
material = SubResource("StandardMaterial3D_auy8m")
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.15267, 0.760708, -6.1376)
|
||||
use_collision = true
|
||||
size = Vector3(2.64182, 2.52142, 2.30997)
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.3427, 0.335247, 8.22829)
|
||||
use_collision = true
|
||||
size = Vector3(3.80964, 1.67049, 0.932048)
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.08027, 0.138478, -4.36159)
|
||||
use_collision = true
|
||||
size = Vector3(1.53893, 1.27695, 1.80814)
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.7748, 0.138478, 5.20734)
|
||||
use_collision = true
|
||||
size = Vector3(4.03502, 1.27695, 5.2198)
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.1473, 1.78638, -1.60318)
|
||||
use_collision = true
|
||||
size = Vector3(4.57784, 4.57276, 3.11285)
|
||||
|
||||
[editable path="Player/PlayerCharacterBody3D"]
|
||||
|
|
@ -1,172 +0,0 @@
|
|||
[gd_scene load_steps=13 format=3 uid="uid://cqy81q5p0tsda"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_3iw7y"]
|
||||
[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="2_m6p13"]
|
||||
[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="3_65wck"]
|
||||
[ext_resource type="Resource" uid="uid://cptfoggk2ok67" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres" id="4_b0eay"]
|
||||
[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="5_i3ale"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="6_5hq8j"]
|
||||
[ext_resource type="Texture2D" uid="uid://bj7h2fc5jx4ax" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="7_7lab4"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_1iman"]
|
||||
script = ExtResource("5_i3ale")
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_2h36r"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_w3olp"]
|
||||
albedo_color = Color(0.227451, 0.337255, 0.576471, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cw102"]
|
||||
albedo_color = Color(0.227451, 0.337255, 0.576471, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_auy8m"]
|
||||
albedo_texture = ExtResource("7_7lab4")
|
||||
uv1_triplanar = true
|
||||
uv1_world_triplanar = true
|
||||
|
||||
[node name="Node3D" type="Node3D"]
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
physics_interpolation_mode = 1
|
||||
transform = Transform3D(0.999954, 0, 0, 0, 0.621285, 0.783464, 0, -0.783416, 0.621322, -7.2611566, 10.181164, 8.761762)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
process_priority = 300
|
||||
process_physics_priority = 300
|
||||
script = ExtResource("1_3iw7y")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Player" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerCharacterBody3D" parent="Player" instance=ExtResource("2_m6p13")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.083587, 0.5, 2.05493)
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="Player" node_paths=PackedStringArray("follow_targets")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999954, 0, 0, 0, 0.621285, 0.783464, 0, -0.783416, 0.621322, -7.2611566, 10.181164, 8.761762)
|
||||
top_level = true
|
||||
script = ExtResource("3_65wck")
|
||||
priority = 5
|
||||
follow_mode = 3
|
||||
follow_targets = [NodePath("../PlayerCharacterBody3D"), NodePath("../../NPCs/PlayerMeshInstance3D"), NodePath("../../NPCs/PlayerMeshInstance3D2")]
|
||||
tween_resource = ExtResource("4_b0eay")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_1iman")
|
||||
follow_damping = true
|
||||
follow_distance = 5.0
|
||||
auto_follow_distance = true
|
||||
auto_follow_distance_min = 5.0
|
||||
auto_follow_distance_max = 15.0
|
||||
auto_follow_distance_divisor = 20.0
|
||||
spring_length = 5.0
|
||||
align_transform_with_view = Callable()
|
||||
align_position_with_view = Callable()
|
||||
|
||||
[node name="NPCs" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerMeshInstance3D" type="MeshInstance3D" parent="NPCs"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.6059, 0.519002, 0.128472)
|
||||
mesh = SubResource("CapsuleMesh_2h36r")
|
||||
skeleton = NodePath("")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_w3olp")
|
||||
|
||||
[node name="PlayerMeshInstance3D2" type="MeshInstance3D" parent="NPCs"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.0461, 0.519, 0.249913)
|
||||
mesh = SubResource("CapsuleMesh_2h36r")
|
||||
skeleton = NodePath("")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_cw102")
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("6_5hq8j")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.52545, 6.53866, -12.6331)
|
||||
use_collision = true
|
||||
size = Vector3(178.429, 14.0773, 1)
|
||||
material = SubResource("StandardMaterial3D_auy8m")
|
||||
|
||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.6511, 0.805455, -6.37532)
|
||||
use_collision = true
|
||||
radius = 1.71971
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.9141, 0.31181, -5.46661)
|
||||
use_collision = true
|
||||
radius = 2.77591
|
||||
height = 1.62362
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.6099, 0.31181, 6.6322)
|
||||
use_collision = true
|
||||
radius = 1.57419
|
||||
height = 3.47475
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.81402, 0.805455, -8.78984)
|
||||
use_collision = true
|
||||
radius = 0.956285
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGSphere3D" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.95333, -1.69814, -6.51262)
|
||||
use_collision = true
|
||||
radius = 3.34732
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D2" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.4682, -0.599204, 8.81048)
|
||||
use_collision = true
|
||||
radius = 2.65844
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D3" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.0848, -0.599204, -2.42244)
|
||||
use_collision = true
|
||||
radius = 2.14606
|
||||
rings = 32
|
||||
|
||||
[node name="CSGTorus3D2" type="CSGTorus3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.90455, -1.90735e-06, 7.89765)
|
||||
use_collision = true
|
||||
inner_radius = 0.971543
|
||||
outer_radius = 2.15226
|
||||
sides = 32
|
||||
ring_sides = 18
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.1764, 0.760708, -6.1376)
|
||||
use_collision = true
|
||||
size = Vector3(2.64182, 2.52142, 2.30997)
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.31901, 0.335247, 8.22829)
|
||||
use_collision = true
|
||||
size = Vector3(3.80964, 1.67049, 0.932048)
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.94346, 0.138478, -4.36159)
|
||||
use_collision = true
|
||||
size = Vector3(1.53893, 1.27695, 1.80814)
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.7985, 0.138478, 5.20734)
|
||||
use_collision = true
|
||||
size = Vector3(4.03502, 1.27695, 5.2198)
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.1236, 1.78638, -1.60318)
|
||||
use_collision = true
|
||||
size = Vector3(4.57784, 4.57276, 3.11285)
|
||||
|
|
@ -1,217 +0,0 @@
|
|||
[gd_scene load_steps=24 format=3 uid="uid://oo1y1sjdmr6k"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_p8ccw"]
|
||||
[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_8itog"]
|
||||
[ext_resource type="Resource" uid="uid://cptfoggk2ok67" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres" id="3_xqpq0"]
|
||||
[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_akuuo"]
|
||||
[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="5_0nadx"]
|
||||
[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="6_mkxip"]
|
||||
[ext_resource type="Script" uid="uid://cgknbkjar73w" path="res://addons/phantom_camera/examples/scripts/3D/path_follow.gd" id="7_g1m51"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="8_a1h2k"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="9_rk5lh"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ofv2c"]
|
||||
script = ExtResource("4_akuuo")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_01tho"]
|
||||
script = ExtResource("6_mkxip")
|
||||
duration = 1.2
|
||||
transition = 3
|
||||
|
||||
[sub_resource type="Resource" id="Resource_syh5m"]
|
||||
script = ExtResource("4_akuuo")
|
||||
|
||||
[sub_resource type="Curve3D" id="Curve3D_b33df"]
|
||||
_data = {
|
||||
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10),
|
||||
"tilts": PackedFloat32Array(0, 0)
|
||||
}
|
||||
point_count = 2
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_aovgi"]
|
||||
size = Vector3(6, 0.1, 10)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_0hdeh"]
|
||||
size = Vector3(6, 0.1, 10)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fsm1b"]
|
||||
transparency = 1
|
||||
albedo_color = Color(0.988235, 0.478431, 0.905882, 0.0901961)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xci4c"]
|
||||
script = ExtResource("4_akuuo")
|
||||
|
||||
[sub_resource type="Curve3D" id="Curve3D_8uw2x"]
|
||||
_data = {
|
||||
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0),
|
||||
"tilts": PackedFloat32Array(0, 0)
|
||||
}
|
||||
point_count = 2
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ctnqu"]
|
||||
size = Vector3(12, 0.1, 4)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_f6dp8"]
|
||||
size = Vector3(12, 0.1, 4)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gwnkj"]
|
||||
transparency = 1
|
||||
albedo_color = Color(0.568403, 0.988235, 0.762724, 0.0901961)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_7l3dh"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_as6ok"]
|
||||
|
||||
[node name="Root" type="Node3D"]
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
physics_interpolation_mode = 1
|
||||
transform = Transform3D(0.999807, -0.00216249, 0.00184445, 0, 0.648836, 0.760728, -0.00284214, -0.760718, 0.648839, 0, 2.5, 1.5)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
process_priority = 300
|
||||
process_physics_priority = 300
|
||||
script = ExtResource("1_p8ccw")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999807, -0.00216249, 0.00184445, 0, 0.648836, 0.760728, -0.00284214, -0.760718, 0.648839, 0, 2.5, 1.5)
|
||||
top_level = true
|
||||
script = ExtResource("2_8itog")
|
||||
priority = 10
|
||||
follow_mode = 2
|
||||
follow_target = NodePath("../PlayerCharacterBody3D")
|
||||
tween_resource = ExtResource("3_xqpq0")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_ofv2c")
|
||||
follow_offset = Vector3(0, 2, 1.5)
|
||||
follow_damping = true
|
||||
align_transform_with_view = Callable()
|
||||
align_position_with_view = Callable()
|
||||
|
||||
[node name="PlayerCharacterBody3D" parent="." instance=ExtResource("5_0nadx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||
|
||||
[node name="Paths" type="Node" parent="."]
|
||||
|
||||
[node name="PathPhantomCamera3D" type="Node3D" parent="Paths" node_paths=PackedStringArray("follow_target", "follow_path")]
|
||||
transform = Transform3D(-4.37114e-08, -1, -4.37114e-08, 0, -4.37114e-08, 1, -1, 4.37114e-08, 1.91069e-15, -0.31028, 7.9199, -1.60976)
|
||||
top_level = true
|
||||
script = ExtResource("2_8itog")
|
||||
priority = 2
|
||||
follow_mode = 4
|
||||
follow_target = NodePath("../../PlayerCharacterBody3D")
|
||||
follow_path = NodePath("../FollowPath")
|
||||
tween_resource = SubResource("Resource_01tho")
|
||||
camera_3d_resource = SubResource("Resource_syh5m")
|
||||
follow_damping = true
|
||||
align_transform_with_view = Callable()
|
||||
align_position_with_view = Callable()
|
||||
|
||||
[node name="FollowPath" type="Path3D" parent="Paths"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.31028, 7.9199, -1.60976)
|
||||
curve = SubResource("Curve3D_b33df")
|
||||
|
||||
[node name="StraightPathFollowTrigger" type="Area3D" parent="Paths" node_paths=PackedStringArray("path_pcam")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0420399, -0.45, -6.73666)
|
||||
priority = 5
|
||||
script = ExtResource("7_g1m51")
|
||||
path_pcam = NodePath("../PathPhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Paths/StraightPathFollowTrigger"]
|
||||
shape = SubResource("BoxShape3D_aovgi")
|
||||
|
||||
[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Paths/StraightPathFollowTrigger/CollisionShape3D"]
|
||||
mesh = SubResource("BoxMesh_0hdeh")
|
||||
skeleton = NodePath("../../../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_fsm1b")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="PathPhantomCamera3D2" type="Node3D" parent="Paths" node_paths=PackedStringArray("follow_target", "follow_path")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 7.9199, -13.4572)
|
||||
top_level = true
|
||||
script = ExtResource("2_8itog")
|
||||
priority = 2
|
||||
follow_mode = 4
|
||||
follow_target = NodePath("../../PlayerCharacterBody3D")
|
||||
follow_path = NodePath("../FollowPath2")
|
||||
tween_resource = SubResource("Resource_01tho")
|
||||
camera_3d_resource = SubResource("Resource_xci4c")
|
||||
follow_damping = true
|
||||
follow_damping_value = Vector3(0.6, 0.1, 0.1)
|
||||
align_transform_with_view = Callable()
|
||||
align_position_with_view = Callable()
|
||||
|
||||
[node name="FollowPath2" type="Path3D" parent="Paths"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.97141, 7.9199, -13.4572)
|
||||
curve = SubResource("Curve3D_8uw2x")
|
||||
|
||||
[node name="StraightPathFollowTrigger2" type="Area3D" parent="Paths" node_paths=PackedStringArray("path_pcam")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0420399, 0, -13.7367)
|
||||
priority = 5
|
||||
script = ExtResource("7_g1m51")
|
||||
path_pcam = NodePath("../PathPhantomCamera3D2")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Paths/StraightPathFollowTrigger2"]
|
||||
shape = SubResource("BoxShape3D_ctnqu")
|
||||
|
||||
[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Paths/StraightPathFollowTrigger2/CollisionShape3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.45, 0)
|
||||
mesh = SubResource("BoxMesh_f6dp8")
|
||||
skeleton = NodePath("../../../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_gwnkj")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("8_a1h2k")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Floor3" parent="Environment" instance=ExtResource("8_a1h2k")]
|
||||
transform = Transform3D(6, 0, 0, 0, 1, 0, 0, 0, 1, -0.44204, 0, 1.76334)
|
||||
|
||||
[node name="Floor2" parent="Environment/Floor3" instance=ExtResource("8_a1h2k")]
|
||||
transform = Transform3D(0.166667, 0, 0, 0, 3, 0, 0, 0, 14, -0.516667, 1, -6.5)
|
||||
|
||||
[node name="Floor5" parent="Environment/Floor3" instance=ExtResource("8_a1h2k")]
|
||||
transform = Transform3D(0.166667, 0, 0, 0, 3, 0, 0, 0, 14, 0.65, 1, -6.5)
|
||||
|
||||
[node name="Floor4" parent="Environment/Floor3" instance=ExtResource("8_a1h2k")]
|
||||
transform = Transform3D(2, 0, 0, 0, 3, 0, 0, 0, 1, 0.0666667, 1, -18)
|
||||
|
||||
[node name="Floor6" parent="Environment/Floor3" instance=ExtResource("8_a1h2k")]
|
||||
transform = Transform3D(0.333333, 0, 0, 0, 3, 0, 0, 0, 1, -0.766667, 1, -13)
|
||||
mesh = SubResource("BoxMesh_7l3dh")
|
||||
|
||||
[node name="Floor8" parent="Environment/Floor3" instance=ExtResource("8_a1h2k")]
|
||||
transform = Transform3D(0.166667, 0, 0, 0, 3, 0, 0, 0, 6, -1.01667, 1, -15.5)
|
||||
mesh = SubResource("BoxMesh_as6ok")
|
||||
|
||||
[node name="Floor9" parent="Environment/Floor3" instance=ExtResource("8_a1h2k")]
|
||||
transform = Transform3D(0.166667, 0, 0, 0, 3, 0, 0, 0, 6, 1.15, 1, -15.5)
|
||||
mesh = SubResource("BoxMesh_as6ok")
|
||||
|
||||
[node name="Floor7" parent="Environment/Floor3" instance=ExtResource("8_a1h2k")]
|
||||
transform = Transform3D(0.333333, 0, 0, 0, 3, 0, 0, 0, 1, 0.9, 1, -13)
|
||||
mesh = SubResource("BoxMesh_7l3dh")
|
||||
|
||||
[node name="NPCDescriptionLabel" type="Label3D" parent="Environment"]
|
||||
transform = Transform3D(5.21541e-08, -1, -7.7486e-07, -1.10675e-15, 2.23517e-07, 0.999999, -0.999999, -7.45058e-08, -5.68829e-14, -3.47306, 2.59595, -5.51755)
|
||||
text = "Camera follows player while confined to a Path3D"
|
||||
font = ExtResource("9_rk5lh")
|
||||
font_size = 64
|
||||
|
||||
[node name="MovementInstructionsLabel" type="Label3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.02174, -0.455369, 0.570585)
|
||||
modulate = Color(0.294118, 1, 0.631373, 1)
|
||||
text = "[WASD] to move"
|
||||
font = ExtResource("9_rk5lh")
|
||||
font_size = 48
|
||||
|
|
@ -1,151 +0,0 @@
|
|||
[gd_scene load_steps=11 format=3 uid="uid://c7uyfhhnrmkbx"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_gt67h"]
|
||||
[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_4ltlo"]
|
||||
[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="3_hldrt"]
|
||||
[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_pqibl"]
|
||||
[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="5_o4k7v"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="6_m6ich"]
|
||||
[ext_resource type="Texture2D" uid="uid://bj7h2fc5jx4ax" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="7_pagh0"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_28vpp"]
|
||||
script = ExtResource("3_hldrt")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_axopo"]
|
||||
script = ExtResource("4_pqibl")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_auy8m"]
|
||||
albedo_texture = ExtResource("7_pagh0")
|
||||
uv1_triplanar = true
|
||||
uv1_world_triplanar = true
|
||||
|
||||
[node name="Node3D2" type="Node3D"]
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
physics_interpolation_mode = 1
|
||||
transform = Transform3D(0.999954, 0, 0, 0, 0.906188, 0.422588, 0, -0.422562, 0.906243, -13.2122, 2.5, 10.40162)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
process_priority = 300
|
||||
process_physics_priority = 300
|
||||
script = ExtResource("1_gt67h")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Player" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="Player" node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999954, 0, 0, 0, 0.906188, 0.422588, 0, -0.422562, 0.906243, -13.2122, 2.5, 10.40162)
|
||||
top_level = true
|
||||
script = ExtResource("2_4ltlo")
|
||||
priority = 10
|
||||
follow_mode = 2
|
||||
follow_target = NodePath("../PlayerCharacterBody3D")
|
||||
tween_resource = SubResource("Resource_28vpp")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_axopo")
|
||||
follow_offset = Vector3(0, 2, 2)
|
||||
follow_damping = true
|
||||
align_transform_with_view = Callable()
|
||||
align_position_with_view = Callable()
|
||||
|
||||
[node name="PlayerCharacterBody3D" parent="Player" instance=ExtResource("5_o4k7v")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.2122, 0.5, 8.40162)
|
||||
|
||||
[node name="NPCs" type="Node" parent="."]
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("6_m6ich")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.6511, 0.805455, -6.37532)
|
||||
use_collision = true
|
||||
radius = 1.71971
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.8332, -0.540694, -3.39517)
|
||||
use_collision = true
|
||||
radius = 1.53269
|
||||
height = 2.5036
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.936, -1.50101, 1.22863)
|
||||
use_collision = true
|
||||
radius = 1.57419
|
||||
height = 3.47475
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.81402, 0.805455, -8.78984)
|
||||
use_collision = true
|
||||
radius = 0.956285
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGSphere3D" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -23.6875, -1.69814, 3.36997)
|
||||
use_collision = true
|
||||
radius = 3.34732
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D2" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.14955, -0.599204, -1.04651)
|
||||
use_collision = true
|
||||
radius = 2.65844
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D3" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.0848, -0.599204, -2.42244)
|
||||
use_collision = true
|
||||
radius = 2.14606
|
||||
rings = 32
|
||||
|
||||
[node name="CSGTorus3D2" type="CSGTorus3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.44645, -0.497663, 4.44352)
|
||||
use_collision = true
|
||||
inner_radius = 0.971543
|
||||
outer_radius = 2.15226
|
||||
sides = 32
|
||||
ring_sides = 18
|
||||
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.52545, 6.53866, -12.6331)
|
||||
use_collision = true
|
||||
size = Vector3(178.429, 14.0773, 1)
|
||||
material = SubResource("StandardMaterial3D_auy8m")
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.1764, 0.760708, -6.1376)
|
||||
use_collision = true
|
||||
size = Vector3(2.64182, 2.52142, 2.30997)
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.1256, 0.335247, 7.14677)
|
||||
use_collision = true
|
||||
size = Vector3(3.80964, 1.67049, 0.932048)
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.94346, 0.138478, -4.36159)
|
||||
use_collision = true
|
||||
size = Vector3(1.53893, 1.27695, 1.80814)
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.30382, 0.138478, -1.89037)
|
||||
use_collision = true
|
||||
size = Vector3(4.03502, 1.27695, 5.2198)
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.04727, 0.0440434, 8.36617)
|
||||
use_collision = true
|
||||
size = Vector3(4.57784, 1.08809, 3.11285)
|
||||
|
|
@ -1,195 +0,0 @@
|
|||
[gd_scene load_steps=21 format=3 uid="uid://bklrp02eywxsx"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="1_s26cy"]
|
||||
[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="2_m2d6w"]
|
||||
[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="3_l7kg8"]
|
||||
[ext_resource type="PackedScene" uid="uid://bhd1kwv2fwj1y" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_third_person_3d.tscn" id="4_qcyfd"]
|
||||
[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="5_8von1"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="6_o1fj6"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="7_amcmx"]
|
||||
[ext_resource type="Texture2D" uid="uid://c3mskbmvnpwux" path="res://addons/phantom_camera/examples/textures/3D/target.png" id="8_rjcgw"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_8fhct"]
|
||||
script = ExtResource("2_m2d6w")
|
||||
duration = 0.3
|
||||
transition = 2
|
||||
ease = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_7m0fv"]
|
||||
script = ExtResource("3_l7kg8")
|
||||
|
||||
[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_i42vj"]
|
||||
dof_blur_far_enabled = true
|
||||
dof_blur_far_distance = 5.99
|
||||
dof_blur_near_enabled = true
|
||||
dof_blur_near_distance = 0.05
|
||||
dof_blur_amount = 0.21
|
||||
|
||||
[sub_resource type="Resource" id="Resource_e7t18"]
|
||||
script = ExtResource("2_m2d6w")
|
||||
duration = 0.4
|
||||
transition = 2
|
||||
ease = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_jogxh"]
|
||||
script = ExtResource("3_l7kg8")
|
||||
h_offset = 1.0
|
||||
|
||||
[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_fvhx5"]
|
||||
dof_blur_far_enabled = true
|
||||
dof_blur_far_distance = 31.1
|
||||
dof_blur_near_enabled = true
|
||||
dof_blur_near_distance = 1.79
|
||||
|
||||
[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_pst8q"]
|
||||
dof_blur_far_enabled = true
|
||||
dof_blur_far_distance = 5.99
|
||||
dof_blur_near_enabled = true
|
||||
dof_blur_near_distance = 0.05
|
||||
dof_blur_amount = 0.21
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_wsigl"]
|
||||
size = Vector3(1, 10, 20)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_afrr1"]
|
||||
script = ExtResource("2_m2d6w")
|
||||
duration = 0.6
|
||||
transition = 3
|
||||
ease = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_unpfd"]
|
||||
script = ExtResource("3_l7kg8")
|
||||
|
||||
[sub_resource type="CylinderMesh" id="CylinderMesh_sm466"]
|
||||
top_radius = 1.51
|
||||
height = 0.2
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hp48l"]
|
||||
transparency = 1
|
||||
albedo_texture = ExtResource("8_rjcgw")
|
||||
uv1_scale = Vector3(1.91, 1.91, 1.91)
|
||||
uv1_offset = Vector3(0.025, -0.927, 0)
|
||||
|
||||
[node name="Root" type="Node3D"]
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.99990255, 0.013962194, 0, -0.013962194, 0.99990255, 0, 0, 0, 1, -0.019, 0.5, 8.769)
|
||||
script = ExtResource("1_s26cy")
|
||||
priority = 10
|
||||
follow_mode = 6
|
||||
follow_target = NodePath("../PlayerCharacterBody3D")
|
||||
tween_resource = SubResource("Resource_8fhct")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_7m0fv")
|
||||
attributes = SubResource("CameraAttributesPractical_i42vj")
|
||||
follow_damping = true
|
||||
follow_distance = 3.5
|
||||
spring_length = 3.5
|
||||
align_transform_with_view = Callable()
|
||||
align_position_with_view = Callable()
|
||||
align_rotation_with_view = Callable()
|
||||
|
||||
[node name="PlayerAimPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.99990255, 0.013962194, 0, -0.013962194, 0.99990255, 0, 0, 0, 1, -0.019, 1.47, 6.37)
|
||||
script = ExtResource("1_s26cy")
|
||||
follow_mode = 6
|
||||
follow_target = NodePath("../PlayerCharacterBody3D")
|
||||
tween_resource = SubResource("Resource_e7t18")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_jogxh")
|
||||
attributes = SubResource("CameraAttributesPractical_fvhx5")
|
||||
follow_offset = Vector3(0, 0.97, -0.399)
|
||||
follow_damping_value = Vector3(0, 0, 0)
|
||||
follow_distance = 1.5
|
||||
spring_length = 1.5
|
||||
align_transform_with_view = Callable()
|
||||
align_position_with_view = Callable()
|
||||
align_rotation_with_view = Callable()
|
||||
|
||||
[node name="PlayerCharacterBody3D" parent="." instance=ExtResource("4_qcyfd")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999903, 0.0139622, 0, -0.0139622, 0.999903, 0, 0, 0, 1, -0.019, 0.5, 5.269)
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
physics_interpolation_mode = 1
|
||||
transform = Transform3D(0.99990255, 0.013962194, 0, -0.013962194, 0.99990255, 0, 0, 0, 1, -0.019, 0.5, 8.769)
|
||||
attributes = SubResource("CameraAttributesPractical_pst8q")
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
process_priority = 300
|
||||
process_physics_priority = 300
|
||||
script = ExtResource("5_8von1")
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("6_o1fj6")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall" parent="Environment" instance=ExtResource("6_o1fj6")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.5, 4.5, 0)
|
||||
mesh = SubResource("BoxMesh_wsigl")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall2" parent="Environment" instance=ExtResource("6_o1fj6")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.5, 4.5, 0)
|
||||
mesh = SubResource("BoxMesh_wsigl")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall3" parent="Environment" instance=ExtResource("6_o1fj6")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 4.5, 10.5)
|
||||
mesh = SubResource("BoxMesh_wsigl")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall4" parent="Environment" instance=ExtResource("6_o1fj6")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 4.5, -9.5)
|
||||
mesh = SubResource("BoxMesh_wsigl")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="CeilingPhantomCamera3D" type="Node3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.37114e-08, -1, 2.98023e-08, 0, 2.98023e-08, 1, -1, 4.37114e-08, -1.3027e-15, -0.200665, 13.366, -0.162648)
|
||||
script = ExtResource("1_s26cy")
|
||||
tween_resource = SubResource("Resource_afrr1")
|
||||
camera_3d_resource = SubResource("Resource_unpfd")
|
||||
|
||||
[node name="MovementInstructionsLabel" type="Label3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.0505604, -0.484909, 1.44357)
|
||||
visible = false
|
||||
modulate = Color(0.294118, 1, 0.631373, 1)
|
||||
text = "[WASD] to move"
|
||||
font = ExtResource("7_amcmx")
|
||||
font_size = 48
|
||||
|
||||
[node name="MovementInstructionsLabel3" type="Label3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.0505604, -0.484909, 0.817134)
|
||||
visible = false
|
||||
modulate = Color(0.294118, 1, 0.631373, 1)
|
||||
text = "[Right Mouse Click] to \"aim\""
|
||||
font = ExtResource("7_amcmx")
|
||||
font_size = 48
|
||||
|
||||
[node name="MovementInstructionsLabel2" type="Label3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.0440154, -0.490478, -6.30248)
|
||||
visible = false
|
||||
modulate = Color(0.294118, 1, 0.631373, 1)
|
||||
text = "[Space] to toggle PCam"
|
||||
font = ExtResource("7_amcmx")
|
||||
font_size = 48
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0.260217, 1.60477, -9.07797)
|
||||
mesh = SubResource("CylinderMesh_sm466")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_hp48l")
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-1, -8.74228e-08, 3.82137e-15, 0, -4.37114e-08, -1, 8.74228e-08, -1, 4.37114e-08, 0.0525861, 1.60477, 9.98156)
|
||||
mesh = SubResource("CylinderMesh_sm466")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_hp48l")
|
||||
|
|
@ -1,166 +0,0 @@
|
|||
[gd_scene load_steps=16 format=3 uid="uid://ceelq6qrb41uf"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="2_47xf2"]
|
||||
[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_whx47"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="4_lii5s"]
|
||||
[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="5_jt2lp"]
|
||||
[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="5_oc4q1"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="7_kg7u1"]
|
||||
[ext_resource type="PackedScene" uid="uid://bhd1kwv2fwj1y" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_third_person_3d.tscn" id="7_kut0u"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_8fhct"]
|
||||
script = ExtResource("2_47xf2")
|
||||
duration = 0.3
|
||||
transition = 2
|
||||
ease = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_7m0fv"]
|
||||
script = ExtResource("5_jt2lp")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_e7t18"]
|
||||
script = ExtResource("2_47xf2")
|
||||
duration = 0.3
|
||||
transition = 2
|
||||
ease = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_jogxh"]
|
||||
script = ExtResource("5_jt2lp")
|
||||
h_offset = 1.0
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_wsigl"]
|
||||
size = Vector3(1, 10, 20)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_bj3re"]
|
||||
size = Vector3(1, 7, 7)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_afrr1"]
|
||||
script = ExtResource("2_47xf2")
|
||||
duration = 0.6
|
||||
transition = 3
|
||||
ease = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ioijp"]
|
||||
script = ExtResource("5_jt2lp")
|
||||
|
||||
[node name="Root" type="Node3D"]
|
||||
|
||||
[node name="PlayerCharacterBody3D" parent="." instance=ExtResource("7_kut0u")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 0.8660252, 0.5000003, 0, -0.5000003, 0.8660252, 0, 2.250001, 3.0310884)
|
||||
script = ExtResource("2_whx47")
|
||||
priority = 10
|
||||
follow_mode = 6
|
||||
follow_target = NodePath("../PlayerCharacterBody3D")
|
||||
tween_resource = SubResource("Resource_8fhct")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_7m0fv")
|
||||
follow_damping = true
|
||||
follow_distance = 3.5
|
||||
vertical_rotation_offset = 0.523599
|
||||
spring_length = 3.5
|
||||
align_transform_with_view = Callable()
|
||||
align_position_with_view = Callable()
|
||||
align_rotation_with_view = Callable()
|
||||
|
||||
[node name="PlayerAimPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.584, 1.3, 1.1010001)
|
||||
script = ExtResource("2_whx47")
|
||||
follow_mode = 6
|
||||
follow_target = NodePath("../PlayerCharacterBody3D")
|
||||
tween_resource = SubResource("Resource_e7t18")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_jogxh")
|
||||
follow_offset = Vector3(0.584, 0.8, -0.399)
|
||||
follow_distance = 1.5
|
||||
spring_length = 1.5
|
||||
align_transform_with_view = Callable()
|
||||
align_position_with_view = Callable()
|
||||
align_rotation_with_view = Callable()
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
physics_interpolation_mode = 1
|
||||
transform = Transform3D(1, 0, 0, 0, 0.8660252, 0.5000003, 0, -0.5000003, 0.8660252, 0, 2.250001, 3.0310884)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
process_priority = 300
|
||||
process_physics_priority = 300
|
||||
script = ExtResource("5_oc4q1")
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.5, 4.5, 0)
|
||||
mesh = SubResource("BoxMesh_wsigl")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall5" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.133, 3, -6.5)
|
||||
mesh = SubResource("BoxMesh_bj3re")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall6" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 3, 0)
|
||||
mesh = SubResource("BoxMesh_bj3re")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall7" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5, 3, 0)
|
||||
mesh = SubResource("BoxMesh_bj3re")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall2" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.5, 4.5, 0)
|
||||
mesh = SubResource("BoxMesh_wsigl")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall3" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 4.5, 10.5)
|
||||
mesh = SubResource("BoxMesh_wsigl")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Wall4" parent="Environment" instance=ExtResource("4_lii5s")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 4.5, -9.5)
|
||||
mesh = SubResource("BoxMesh_wsigl")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="CeilingPhantomCamera3D" type="Node3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.37114e-08, -1, 2.98023e-08, 0, 2.98023e-08, 1, -1, 4.37114e-08, -1.3027e-15, -0.200665, 13.366, -0.162648)
|
||||
script = ExtResource("2_whx47")
|
||||
tween_resource = SubResource("Resource_afrr1")
|
||||
camera_3d_resource = SubResource("Resource_ioijp")
|
||||
|
||||
[node name="MovementInstructionsLabel" type="Label3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.0505604, -0.484909, 1.44357)
|
||||
modulate = Color(0.294118, 1, 0.631373, 1)
|
||||
text = "[WASD] to move"
|
||||
font = ExtResource("7_kg7u1")
|
||||
font_size = 48
|
||||
|
||||
[node name="MovementInstructionsLabel3" type="Label3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.0505604, -0.484909, 0.817134)
|
||||
modulate = Color(0.294118, 1, 0.631373, 1)
|
||||
text = "[Right Mouse Click] to \"aim\""
|
||||
font = ExtResource("7_kg7u1")
|
||||
font_size = 48
|
||||
|
||||
[node name="MovementInstructionsLabel2" type="Label3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.0440154, -0.490478, -6.30248)
|
||||
modulate = Color(0.294118, 1, 0.631373, 1)
|
||||
text = "[Space] to toggle PCam"
|
||||
font = ExtResource("7_kg7u1")
|
||||
font_size = 48
|
||||
|
|
@ -1,187 +0,0 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://dsfixtpa5xwqt"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_jbmnd"]
|
||||
[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_t3gk2"]
|
||||
[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="3_b2lea"]
|
||||
[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_mqo2b"]
|
||||
[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="5_pxkua"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="6_uuxs3"]
|
||||
[ext_resource type="Texture2D" uid="uid://bj7h2fc5jx4ax" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="7_0dyt0"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_pwcgo"]
|
||||
script = ExtResource("3_b2lea")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ft2w3"]
|
||||
script = ExtResource("4_mqo2b")
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_2h36r"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_w3olp"]
|
||||
albedo_color = Color(0.227451, 0.337255, 0.576471, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cw102"]
|
||||
albedo_color = Color(0.227451, 0.337255, 0.576471, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_auy8m"]
|
||||
albedo_texture = ExtResource("7_0dyt0")
|
||||
uv1_triplanar = true
|
||||
uv1_world_triplanar = true
|
||||
|
||||
[node name="Root" type="Node3D"]
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
physics_interpolation_mode = 1
|
||||
transform = Transform3D(0.99976534, 0.0105280895, -0.018931806, -4.656613e-10, 0.873953, 0.48601043, 0.021662269, -0.4858964, 0.87374794, -0.137901, 4.03222, 6.36446)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
process_priority = 300
|
||||
process_physics_priority = 300
|
||||
script = ExtResource("1_jbmnd")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="PhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("look_at_target")]
|
||||
transform = Transform3D(0.999765, 0.01052809, -0.018931821, -4.6566112e-10, 0.8739531, 0.48601085, 0.021662261, -0.48589647, 0.87374866, -0.137901, 4.03222, 6.36446)
|
||||
script = ExtResource("2_t3gk2")
|
||||
priority = 10
|
||||
look_at_mode = 2
|
||||
look_at_target = NodePath("../PlayerCharacterBody3D")
|
||||
tween_resource = SubResource("Resource_pwcgo")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_ft2w3")
|
||||
look_at_damping = true
|
||||
align_transform_with_view = Callable()
|
||||
align_rotation_with_view = Callable()
|
||||
|
||||
[node name="PlayerCharacterBody3D" parent="." instance=ExtResource("5_pxkua")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||
|
||||
[node name="NPCs" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerMeshInstance3D" type="MeshInstance3D" parent="NPCs"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.96028, 0.519002, -1.52506)
|
||||
mesh = SubResource("CapsuleMesh_2h36r")
|
||||
skeleton = NodePath("")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_w3olp")
|
||||
|
||||
[node name="PlayerMeshInstance3D2" type="MeshInstance3D" parent="NPCs"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.59952, 0.519, 4.06618)
|
||||
mesh = SubResource("CapsuleMesh_2h36r")
|
||||
skeleton = NodePath("")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_cw102")
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("6_uuxs3")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.00548, 0.805455, -6.37532)
|
||||
use_collision = true
|
||||
radius = 1.71971
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 25.5597, 0.31181, -5.46661)
|
||||
use_collision = true
|
||||
radius = 2.77591
|
||||
height = 1.62362
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.96428, 0.31181, 6.6322)
|
||||
use_collision = true
|
||||
radius = 1.57419
|
||||
height = 3.47475
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.3959, 0.201103, 2.71259)
|
||||
use_collision = true
|
||||
radius = 1.41311
|
||||
height = 1.40221
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.02677, 0.201101, 11.6804)
|
||||
use_collision = true
|
||||
radius = 2.21673
|
||||
height = 7.88261
|
||||
sides = 32
|
||||
|
||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.8316, 0.805455, -8.78984)
|
||||
use_collision = true
|
||||
radius = 0.956285
|
||||
height = 2.61091
|
||||
sides = 32
|
||||
|
||||
[node name="CSGSphere3D" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.5989, -1.69814, -6.51262)
|
||||
use_collision = true
|
||||
radius = 3.34732
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D2" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.17742, -0.599204, 8.81048)
|
||||
use_collision = true
|
||||
radius = 2.65844
|
||||
rings = 32
|
||||
|
||||
[node name="CSGSphere3D3" type="CSGSphere3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.4392, -0.599204, -2.42244)
|
||||
use_collision = true
|
||||
radius = 2.14606
|
||||
rings = 32
|
||||
|
||||
[node name="CSGTorus3D" type="CSGTorus3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.58998, -1.90735e-06, 0.346393)
|
||||
use_collision = true
|
||||
inner_radius = 1.3
|
||||
outer_radius = 2.0
|
||||
sides = 32
|
||||
ring_sides = 18
|
||||
|
||||
[node name="CSGTorus3D2" type="CSGTorus3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22.5502, -1.90735e-06, 7.89765)
|
||||
use_collision = true
|
||||
inner_radius = 0.971543
|
||||
outer_radius = 2.15226
|
||||
sides = 32
|
||||
ring_sides = 18
|
||||
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.1202, 6.53866, -12.6331)
|
||||
use_collision = true
|
||||
size = Vector3(178.429, 14.0773, 1)
|
||||
material = SubResource("StandardMaterial3D_auy8m")
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53078, 0.760708, -6.1376)
|
||||
use_collision = true
|
||||
size = Vector3(2.64182, 2.52142, 2.30997)
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.9646, 0.335247, 8.22829)
|
||||
use_collision = true
|
||||
size = Vector3(3.80964, 1.67049, 0.932048)
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.70216, 0.138478, -4.36159)
|
||||
use_collision = true
|
||||
size = Vector3(1.53893, 1.27695, 1.80814)
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.1529, 0.138478, 5.20734)
|
||||
use_collision = true
|
||||
size = Vector3(4.03502, 1.27695, 5.2198)
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.7692, 1.78638, -1.60318)
|
||||
use_collision = true
|
||||
size = Vector3(4.57784, 4.57276, 3.11285)
|
||||
|
|
@ -1,170 +0,0 @@
|
|||
[gd_scene load_steps=21 format=3 uid="uid://d0fyuvesb472p"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_25rmy"]
|
||||
[ext_resource type="Script" uid="uid://x5g7kf5k2mac" path="res://addons/phantom_camera/examples/scripts/3D/player_controller_first_person.gd" id="2_7nd2u"]
|
||||
[ext_resource type="Script" uid="uid://cuffvge5ad4aa" path="res://addons/phantom_camera/scripts/resources/phantom_camera_noise_3d.gd" id="3_t4fhv"]
|
||||
[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="4_tnm2f"]
|
||||
[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="5_4webr"]
|
||||
[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="6_dmm4a"]
|
||||
[ext_resource type="Script" uid="uid://ccmiitq0sdh7j" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_3d.gd" id="7_2vtho"]
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="8_bw5oq"]
|
||||
[ext_resource type="Texture2D" uid="uid://bj7h2fc5jx4ax" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="9_jpkpr"]
|
||||
[ext_resource type="FontFile" uid="uid://dve7mgsjik4dg" path="res://addons/phantom_camera/fonts/Nunito-Regular.ttf" id="10_8pr3k"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="11_vp57v"]
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_yvgu3"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vc6km"]
|
||||
albedo_color = Color(0.988235, 0.498039, 0.498039, 1)
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_lsrh7"]
|
||||
radius = 0.269454
|
||||
|
||||
[sub_resource type="Resource" id="Resource_lhgur"]
|
||||
script = ExtResource("5_4webr")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ghjuj"]
|
||||
script = ExtResource("6_dmm4a")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_2l4w0"]
|
||||
script = ExtResource("3_t4fhv")
|
||||
amplitude = 40.0
|
||||
randomize_noise_seed = 0
|
||||
rotational_multiplier_z = 0.0
|
||||
positional_multiplier_x = 0.1
|
||||
positional_multiplier_y = 0.1
|
||||
positional_multiplier_z = 0.1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_6tnhy"]
|
||||
script = ExtResource("3_t4fhv")
|
||||
frequency = 20.0
|
||||
randomize_noise_seed = 0
|
||||
noise_seed = 928
|
||||
rotational_multiplier_z = 0.1
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qi01t"]
|
||||
albedo_texture = ExtResource("9_jpkpr")
|
||||
uv1_triplanar = true
|
||||
uv1_world_triplanar = true
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ey47a"]
|
||||
bg_color = Color(0.0784314, 0.109804, 0.129412, 1)
|
||||
border_width_right = 4
|
||||
border_width_bottom = 4
|
||||
border_color = Color(0.227451, 0.72549, 0.603922, 1)
|
||||
corner_radius_bottom_right = 20
|
||||
expand_margin_bottom = 6.0
|
||||
|
||||
[node name="Root" type="Node3D"]
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
physics_interpolation_mode = 1
|
||||
transform = Transform3D(0.096600816, -0.02989527, 0.9948742, 0, 0.99954885, 0.030035738, -0.99532324, -0.0029014763, 0.09655723, -16.46, 0.5, 4.249)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
process_priority = 300
|
||||
process_physics_priority = 300
|
||||
script = ExtResource("1_25rmy")
|
||||
|
||||
[node name="PlayerCharacterBody3D" type="CharacterBody3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999897, 0.0143636, 0, -0.0143636, 0.999897, 0, 0, 0, 1, -16.46, 0.5, 4.249)
|
||||
script = ExtResource("2_7nd2u")
|
||||
|
||||
[node name="PlayerVisual" type="MeshInstance3D" parent="PlayerCharacterBody3D"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.76837e-05, 0.00331134, 0)
|
||||
mesh = SubResource("CapsuleMesh_yvgu3")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_vc6km")
|
||||
|
||||
[node name="PlayerArea3D" type="Area3D" parent="PlayerCharacterBody3D"]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerCharacterBody3D/PlayerArea3D"]
|
||||
shape = SubResource("CapsuleShape3D_lsrh7")
|
||||
|
||||
[node name="PlayerCollisionShape3D" type="CollisionShape3D" parent="PlayerCharacterBody3D"]
|
||||
shape = SubResource("CapsuleShape3D_lsrh7")
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.00441533, 0, 0.999915, 0, 0.999995, 0, -0.999923, 0, 0.00441529, -16.46, 0.5, 4.249)
|
||||
top_level = true
|
||||
script = ExtResource("4_tnm2f")
|
||||
priority = 10
|
||||
follow_mode = 2
|
||||
follow_target = NodePath("../PlayerCharacterBody3D")
|
||||
tween_resource = SubResource("Resource_lhgur")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_ghjuj")
|
||||
noise = SubResource("Resource_2l4w0")
|
||||
noise_emitter_layer = 1
|
||||
align_transform_with_view = Callable()
|
||||
align_position_with_view = Callable()
|
||||
|
||||
[node name="PlayerPhantomCameraNoiseEmitter3D" type="Node3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.37085e-08, 0, 0.999925, 0, 0.999995, 0, -0.999933, 0, -4.37081e-08, -16.46, 0.503767, 4.249)
|
||||
script = ExtResource("7_2vtho")
|
||||
noise = SubResource("Resource_6tnhy")
|
||||
duration = 0.1
|
||||
decay_time = 0.1
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("8_bw5oq")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.525, 6.539, 2.5)
|
||||
use_collision = true
|
||||
size = Vector3(178.429, 14.0773, 1)
|
||||
material = SubResource("StandardMaterial3D_qi01t")
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 8.83707, 6.53866, -1.80739)
|
||||
use_collision = true
|
||||
size = Vector3(178.429, 14.0773, 1)
|
||||
material = SubResource("StandardMaterial3D_qi01t")
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -38.9392, 6.53866, -1.80739)
|
||||
use_collision = true
|
||||
size = Vector3(178.429, 14.0773, 1)
|
||||
material = SubResource("StandardMaterial3D_qi01t")
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.525, 6.539, 6)
|
||||
use_collision = true
|
||||
size = Vector3(178.429, 14.0773, 1)
|
||||
material = SubResource("StandardMaterial3D_qi01t")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="EmitterTip" type="Panel" parent="."]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
anchors_preset = -1
|
||||
anchor_right = 0.3
|
||||
anchor_bottom = 0.1
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_ey47a")
|
||||
|
||||
[node name="Guidance" type="RichTextLabel" parent="EmitterTip"]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
size_flags_vertical = 8
|
||||
theme_override_fonts/normal_font = ExtResource("10_8pr3k")
|
||||
theme_override_fonts/bold_font = ExtResource("11_vp57v")
|
||||
theme_override_font_sizes/normal_font_size = 18
|
||||
theme_override_font_sizes/bold_font_size = 24
|
||||
bbcode_enabled = true
|
||||
text = "[center]Press [b]Q[/b] to trigger Noise Emitter"
|
||||
fit_content = true
|
||||
|
|
@ -1,238 +0,0 @@
|
|||
[gd_scene load_steps=22 format=3 uid="uid://cvnbgtbaxwj5p"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="1_d55xf"]
|
||||
[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="2_d1opf"]
|
||||
[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="3_4whss"]
|
||||
[ext_resource type="Resource" uid="uid://cptfoggk2ok67" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres" id="4_8ap1e"]
|
||||
[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="5_1sgnu"]
|
||||
[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="6_lr46m"]
|
||||
[ext_resource type="Script" uid="uid://bnhxcejvr6wi3" path="res://addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd" id="7_istoq"]
|
||||
[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="8_qepee"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="9_ptb3h"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_0dtvs"]
|
||||
script = ExtResource("5_1sgnu")
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_j6fha"]
|
||||
size = Vector3(5, 0.1, 4)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_xg4en"]
|
||||
size = Vector3(5, 0.1, 4)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2dct5"]
|
||||
transparency = 1
|
||||
albedo_color = Color(0.988235, 0.478431, 0.905882, 0.0901961)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_v8ndi"]
|
||||
script = ExtResource("8_qepee")
|
||||
duration = 0.6
|
||||
|
||||
[sub_resource type="Resource" id="Resource_kmep1"]
|
||||
script = ExtResource("5_1sgnu")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_uxg44"]
|
||||
script = ExtResource("8_qepee")
|
||||
duration = 0.3
|
||||
transition = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_eu3bc"]
|
||||
script = ExtResource("5_1sgnu")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_0nci0"]
|
||||
script = ExtResource("8_qepee")
|
||||
duration = 0.3
|
||||
transition = 8
|
||||
|
||||
[sub_resource type="Resource" id="Resource_u0lff"]
|
||||
script = ExtResource("5_1sgnu")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_50m5g"]
|
||||
script = ExtResource("8_qepee")
|
||||
duration = 1.2
|
||||
transition = 10
|
||||
|
||||
[sub_resource type="Resource" id="Resource_rexf8"]
|
||||
script = ExtResource("5_1sgnu")
|
||||
|
||||
[node name="Root" type="Node3D"]
|
||||
|
||||
[node name="Environment" type="Node" parent="."]
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Floor" parent="Environment" instance=ExtResource("1_d55xf")]
|
||||
transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0)
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="MainCamera3D" type="Camera3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
physics_interpolation_mode = 1
|
||||
transform = Transform3D(0.999889, 0, 0, 0, 0.707092, 0.707088, 0, -0.707092, 0.707088, 0, 2.5, 3.19136)
|
||||
|
||||
[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"]
|
||||
process_priority = 300
|
||||
process_physics_priority = 300
|
||||
script = ExtResource("2_d1opf")
|
||||
|
||||
[node name="------------------" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.999889, 0, 0, 0, 0.707092, 0.707088, 0, -0.707092, 0.707088, 0, 2.5, 3.19136)
|
||||
top_level = true
|
||||
script = ExtResource("3_4whss")
|
||||
priority = 3
|
||||
follow_mode = 2
|
||||
follow_target = NodePath("../PlayerCharacterBody3D")
|
||||
tween_resource = ExtResource("4_8ap1e")
|
||||
tween_on_load = false
|
||||
camera_3d_resource = SubResource("Resource_0dtvs")
|
||||
follow_offset = Vector3(0, 2, 2)
|
||||
follow_damping = true
|
||||
align_transform_with_view = Callable()
|
||||
align_position_with_view = Callable()
|
||||
|
||||
[node name="PlayerCharacterBody3D" parent="." instance=ExtResource("6_lr46m")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 1.19136)
|
||||
|
||||
[node name="-------------------" type="Node" parent="."]
|
||||
|
||||
[node name="Tweening Example" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.97)
|
||||
|
||||
[node name="Linear" type="Node3D" parent="Tweening Example"]
|
||||
|
||||
[node name="EntryRoomTrigger" type="Area3D" parent="Tweening Example/Linear" node_paths=PackedStringArray("area_pcam")]
|
||||
priority = 5
|
||||
script = ExtResource("7_istoq")
|
||||
area_pcam = NodePath("../PhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tweening Example/Linear/EntryRoomTrigger"]
|
||||
shape = SubResource("BoxShape3D_j6fha")
|
||||
|
||||
[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Tweening Example/Linear/EntryRoomTrigger"]
|
||||
mesh = SubResource("BoxMesh_xg4en")
|
||||
skeleton = NodePath("../../../../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_2dct5")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="PhantomCamera3D" type="Node3D" parent="Tweening Example/Linear"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.642788, 0.766044, 0, -0.766044, 0.642788, 0, 4.8, 3.3)
|
||||
script = ExtResource("3_4whss")
|
||||
tween_resource = SubResource("Resource_v8ndi")
|
||||
camera_3d_resource = SubResource("Resource_kmep1")
|
||||
|
||||
[node name="TweenNameLabel" type="Label3D" parent="Tweening Example/Linear"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.695913, 0.718126, 0, -0.718126, 0.695913, -1.8, 0.5, 0)
|
||||
text = "Transition Type:
|
||||
Linear
|
||||
|
||||
Duration:
|
||||
0.6s"
|
||||
font = ExtResource("9_ptb3h")
|
||||
font_size = 48
|
||||
|
||||
[node name="Sine" type="Node3D" parent="Tweening Example"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -7.4)
|
||||
|
||||
[node name="EntryRoomTrigger" type="Area3D" parent="Tweening Example/Sine" node_paths=PackedStringArray("area_pcam")]
|
||||
priority = 5
|
||||
script = ExtResource("7_istoq")
|
||||
area_pcam = NodePath("../PhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tweening Example/Sine/EntryRoomTrigger"]
|
||||
shape = SubResource("BoxShape3D_j6fha")
|
||||
|
||||
[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Tweening Example/Sine/EntryRoomTrigger"]
|
||||
mesh = SubResource("BoxMesh_xg4en")
|
||||
skeleton = NodePath("../../../../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_2dct5")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="PhantomCamera3D" type="Node3D" parent="Tweening Example/Sine"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.642788, 0.766044, 0, -0.766044, 0.642788, 0, 4.8, 3.3)
|
||||
script = ExtResource("3_4whss")
|
||||
tween_resource = SubResource("Resource_uxg44")
|
||||
camera_3d_resource = SubResource("Resource_eu3bc")
|
||||
|
||||
[node name="TweenNameLabel" type="Label3D" parent="Tweening Example/Sine"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.695913, 0.718126, 0, -0.718126, 0.695913, 1.7, 0.5, 0)
|
||||
text = "Transition Type:
|
||||
Sine
|
||||
|
||||
Duration:
|
||||
0.3s"
|
||||
font = ExtResource("9_ptb3h")
|
||||
font_size = 72
|
||||
|
||||
[node name="Circ" type="Node3D" parent="Tweening Example"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -14.1)
|
||||
|
||||
[node name="EntryRoomTrigger" type="Area3D" parent="Tweening Example/Circ" node_paths=PackedStringArray("area_pcam")]
|
||||
priority = 5
|
||||
script = ExtResource("7_istoq")
|
||||
area_pcam = NodePath("../PhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tweening Example/Circ/EntryRoomTrigger"]
|
||||
shape = SubResource("BoxShape3D_j6fha")
|
||||
|
||||
[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Tweening Example/Circ/EntryRoomTrigger"]
|
||||
mesh = SubResource("BoxMesh_xg4en")
|
||||
skeleton = NodePath("../../../../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_2dct5")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="PhantomCamera3D" type="Node3D" parent="Tweening Example/Circ"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.642788, 0.766044, 0, -0.766044, 0.642788, 0, 4.8, 3.3)
|
||||
script = ExtResource("3_4whss")
|
||||
tween_resource = SubResource("Resource_0nci0")
|
||||
camera_3d_resource = SubResource("Resource_u0lff")
|
||||
|
||||
[node name="TweenNameLabel" type="Label3D" parent="Tweening Example/Circ"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.695913, 0.718126, 0, -0.718126, 0.695913, -1.8, 0.5, 0)
|
||||
text = "Transition Type:
|
||||
Circ
|
||||
|
||||
Duration:
|
||||
0.3s"
|
||||
font = ExtResource("9_ptb3h")
|
||||
font_size = 72
|
||||
|
||||
[node name="Back" type="Node3D" parent="Tweening Example"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -21)
|
||||
|
||||
[node name="EntryRoomTrigger" type="Area3D" parent="Tweening Example/Back" node_paths=PackedStringArray("area_pcam")]
|
||||
priority = 5
|
||||
script = ExtResource("7_istoq")
|
||||
area_pcam = NodePath("../PhantomCamera3D")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tweening Example/Back/EntryRoomTrigger"]
|
||||
shape = SubResource("BoxShape3D_j6fha")
|
||||
|
||||
[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Tweening Example/Back/EntryRoomTrigger"]
|
||||
mesh = SubResource("BoxMesh_xg4en")
|
||||
skeleton = NodePath("../../../../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_2dct5")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="PhantomCamera3D" type="Node3D" parent="Tweening Example/Back"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.642788, 0.766044, 0, -0.766044, 0.642788, -0.8, 4.8, 3.3)
|
||||
script = ExtResource("3_4whss")
|
||||
tween_resource = SubResource("Resource_50m5g")
|
||||
camera_3d_resource = SubResource("Resource_rexf8")
|
||||
|
||||
[node name="TweenNameLabel" type="Label3D" parent="Tweening Example/Back"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.695913, 0.718126, 0, -0.718126, 0.695913, 1.7, 0.5, 0)
|
||||
text = "Transition Type:
|
||||
Back
|
||||
|
||||
Duration:
|
||||
1.2s"
|
||||
font = ExtResource("9_ptb3h")
|
||||
font_size = 48
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://cb83in8f0tbb1"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://tgv6xpi88sd0" path="res://addons/phantom_camera/examples/scripts/3D/player_controller.gd" id="1_pl87s"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_8efyg"]
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_2cfaw"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_r3ldp"]
|
||||
albedo_color = Color(0.988235, 0.498039, 0.498039, 1)
|
||||
|
||||
[node name="PlayerCharacterBody3D" type="CharacterBody3D"]
|
||||
script = ExtResource("1_pl87s")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="PlayerArea3D" type="Area3D" parent="."]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerArea3D"]
|
||||
shape = SubResource("CapsuleShape3D_8efyg")
|
||||
|
||||
[node name="PlayerCollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
shape = SubResource("CapsuleShape3D_8efyg")
|
||||
|
||||
[node name="PlayerVisual" type="Node3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="PlayerModel" type="MeshInstance3D" parent="PlayerVisual"]
|
||||
mesh = SubResource("CapsuleMesh_2cfaw")
|
||||
skeleton = NodePath("../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_r3ldp")
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
[gd_scene load_steps=6 format=3 uid="uid://bhd1kwv2fwj1y"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bkr71vxe2t18n" path="res://addons/phantom_camera/examples/scripts/3D/player_controller_third_person.gd" id="1_skas8"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_s61dn"]
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_47f0o"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_mv4do"]
|
||||
albedo_color = Color(0.988235, 0.498039, 0.498039, 1)
|
||||
|
||||
[sub_resource type="PrismMesh" id="PrismMesh_wg1x3"]
|
||||
size = Vector3(0.5, 0.5, 0.3)
|
||||
|
||||
[node name="PlayerCharacterBody3D" type="CharacterBody3D"]
|
||||
transform = Transform3D(0.999903, 0.0139622, 0, -0.0139622, 0.999903, 0, 0, 0, 1, -0.0194088, 0.506884, -0.0163251)
|
||||
collision_layer = 2
|
||||
script = ExtResource("1_skas8")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="PlayerArea3D" type="Area3D" parent="."]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerArea3D"]
|
||||
shape = SubResource("CapsuleShape3D_s61dn")
|
||||
|
||||
[node name="PlayerCollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
shape = SubResource("CapsuleShape3D_s61dn")
|
||||
|
||||
[node name="PlayerVisual" type="Node3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="PlayerMeshInstance3D" type="MeshInstance3D" parent="PlayerVisual"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 4.65661e-10, 0, 0, 1, 0, 0, 0)
|
||||
mesh = SubResource("CapsuleMesh_47f0o")
|
||||
skeleton = NodePath("../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_mv4do")
|
||||
|
||||
[node name="PlayerDirection" type="MeshInstance3D" parent="PlayerVisual"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, -9.31323e-10, 1, 4.65661e-10, 2.98023e-08, 0, 1, -0.0156226, 1.08631, 0)
|
||||
mesh = SubResource("PrismMesh_wg1x3")
|
||||
skeleton = NodePath("../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_mv4do")
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://cixlwqycoox8h"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bj7h2fc5jx4ax" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="1_836jx"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_d24c3"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_aox6v"]
|
||||
albedo_texture = ExtResource("1_836jx")
|
||||
uv1_triplanar = true
|
||||
uv1_world_triplanar = true
|
||||
|
||||
[node name="3DPrototypeCube" type="CSGMesh3D"]
|
||||
use_collision = true
|
||||
mesh = SubResource("BoxMesh_d24c3")
|
||||
material = SubResource("StandardMaterial3D_aox6v")
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
[gd_resource type="Resource" script_class="PhantomCameraTween" load_steps=2 format=3 uid="uid://c1v786g5agaw5"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="1_ptlie"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_ptlie")
|
||||
duration = 0.0
|
||||
transition = 0
|
||||
ease = 2
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
[gd_resource type="Resource" script_class="PhantomCameraTween" load_steps=2 format=3 uid="uid://cllveybboaqk5"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="1_7yoy0"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_7yoy0")
|
||||
duration = 0.6
|
||||
transition = 5
|
||||
ease = 1
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
[gd_resource type="Resource" script_class="PhantomCameraTween" load_steps=2 format=3 uid="uid://cecrnq0wnkexh"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="1_sq5ls"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_sq5ls")
|
||||
duration = 0.6
|
||||
transition = 8
|
||||
ease = 1
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
[gd_resource type="Resource" script_class="PhantomCameraTween" load_steps=2 format=3 uid="uid://euybd2w0bax"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="1_by4ei"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_by4ei")
|
||||
duration = 0.6
|
||||
transition = 3
|
||||
ease = 1
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
[gd_resource type="Resource" script_class="PhantomCameraTween" load_steps=2 format=3 uid="uid://cptfoggk2ok67"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="1_q5tix"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_q5tix")
|
||||
duration = 0.6
|
||||
transition = 3
|
||||
ease = 2
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
extends Node2D
|
||||
|
||||
@onready var pcam_room_left: PhantomCamera2D = %RoomLeftPhantomCamera2D
|
||||
@onready var pcam_room_centre: PhantomCamera2D = %RoomCentrePhantomCamera2D
|
||||
@onready var pcam_room_right: PhantomCamera2D = %RoomRightPhantomCamera2D
|
||||
|
||||
@onready var player: Node2D = %CharacterBody2D/%PlayerVisuals
|
||||
|
||||
@onready var area_2d_room_left: Area2D = %RoomLeftArea2D
|
||||
@onready var area_2d_room_centre: Area2D = %RoomCentreArea2D
|
||||
@onready var area_2d_room_right: Area2D = %RoomRightArea2D
|
||||
|
||||
|
||||
func _ready():
|
||||
pcam_room_left.set_follow_offset(Vector2(0, -80))
|
||||
pcam_room_right.set_follow_offset(Vector2(0, -80))
|
||||
|
||||
area_2d_room_left.body_entered.connect(_on_body_entered.bind(pcam_room_left))
|
||||
area_2d_room_centre.body_entered.connect(_on_body_entered.bind(pcam_room_centre))
|
||||
area_2d_room_right.body_entered.connect(_on_body_entered.bind(pcam_room_right))
|
||||
|
||||
area_2d_room_left.body_exited.connect(_on_body_exited.bind(pcam_room_left))
|
||||
area_2d_room_centre.body_exited.connect(_on_body_exited.bind(pcam_room_centre))
|
||||
area_2d_room_right.body_exited.connect(_on_body_exited.bind(pcam_room_right))
|
||||
|
||||
|
||||
func _on_body_entered(body: Node2D, pcam: PhantomCamera2D) -> void:
|
||||
if body == player.get_parent():
|
||||
pcam.set_follow_target(player)
|
||||
pcam.set_priority(20)
|
||||
|
||||
|
||||
func _on_body_exited(body: Node2D, pcam: PhantomCamera2D) -> void:
|
||||
if body == player.get_parent():
|
||||
pcam.set_priority(0)
|
||||
pcam.set_follow_target(null)
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://c5yewe1hewu7j
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
extends Node2D
|
||||
|
||||
@onready var pcam_room_left: PhantomCamera2D = %RoomLeftPhantomCamera2D
|
||||
@onready var pcam_room_centre: PhantomCamera2D = %RoomCentrePhantomCamera2D
|
||||
@onready var pcam_room_right: PhantomCamera2D = %RoomRightPhantomCamera2D
|
||||
|
||||
@onready var player: Node2D = %CharacterBody2D
|
||||
|
||||
@onready var area_2d_room_left: Area2D = %RoomLeftArea2D
|
||||
@onready var area_2d_room_centre: Area2D = %RoomCentreArea2D
|
||||
@onready var area_2d_room_right: Area2D = %RoomRightArea2D
|
||||
|
||||
|
||||
func _ready():
|
||||
area_2d_room_left.body_entered.connect(_on_body_entered.bind(pcam_room_left))
|
||||
area_2d_room_centre.body_entered.connect(_on_body_entered.bind(pcam_room_centre))
|
||||
area_2d_room_right.body_entered.connect(_on_body_entered.bind(pcam_room_right))
|
||||
|
||||
area_2d_room_left.body_exited.connect(_on_body_exited.bind(pcam_room_left))
|
||||
area_2d_room_centre.body_exited.connect(_on_body_exited.bind(pcam_room_centre))
|
||||
area_2d_room_right.body_exited.connect(_on_body_exited.bind(pcam_room_right))
|
||||
|
||||
|
||||
func _on_body_entered(body: Node2D, pcam: PhantomCamera2D) -> void:
|
||||
if body == player:
|
||||
pcam.set_follow_target(player)
|
||||
pcam.set_priority(20)
|
||||
|
||||
|
||||
func _on_body_exited(body: Node2D, pcam: PhantomCamera2D) -> void:
|
||||
if body == player:
|
||||
pcam.set_priority(0)
|
||||
pcam.set_follow_target(null)
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://dtcuvut1eklnd
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
extends Area2D
|
||||
|
||||
@export var area_pcam: PhantomCamera2D
|
||||
|
||||
func _ready() -> void:
|
||||
connect("area_entered", _entered_area)
|
||||
connect("area_exited", _exited_area)
|
||||
|
||||
func _entered_area(area_2d: Area2D) -> void:
|
||||
if area_2d.get_parent() is CharacterBody2D:
|
||||
area_pcam.set_priority(20)
|
||||
|
||||
func _exited_area(area_2d: Area2D) -> void:
|
||||
if area_2d.get_parent() is CharacterBody2D:
|
||||
area_pcam.set_priority(0)
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://t8wa4e5y5hcf
|
||||
|
|
@ -1,189 +0,0 @@
|
|||
extends CharacterBody2D
|
||||
|
||||
@onready var _player_area2d = %PlayerArea2D
|
||||
@onready var _player_visuals: Node2D = %PlayerVisuals
|
||||
@onready var _player_sprite: Sprite2D = %PlayerSprite
|
||||
@onready var _interaction_prompt: Panel = %InteractionPrompt
|
||||
@onready var _ui_sign: Control
|
||||
@onready var _dark_overlay: ColorRect = %DarkOverlay
|
||||
|
||||
const KEY_STRINGNAME: StringName = "Key"
|
||||
const ACTION_STRINGNAME: StringName = "Action"
|
||||
const INPUT_MOVE_LEFT_STRINGNAME: StringName = "move_left"
|
||||
const INPUT_MOVE_RIGHT_STRINGNAME: StringName = "move_right"
|
||||
|
||||
const SPEED = 350.0
|
||||
const JUMP_VELOCITY = -750.0
|
||||
|
||||
# Get the gravity from the project settings to be synced with RigidBody nodes.
|
||||
var gravity: int = 2400
|
||||
var _is_interactive: bool
|
||||
var _can_open_inventory: bool
|
||||
var _movement_disabled: bool
|
||||
var tween: Tween
|
||||
var _interactive_UI: Control
|
||||
var _active_pcam: PhantomCamera2D
|
||||
|
||||
var _physics_body_trans_last: Transform2D
|
||||
var _physics_body_trans_current: Transform2D
|
||||
|
||||
enum InteractiveType {
|
||||
NONE = 0,
|
||||
ITEM = 1,
|
||||
INVENTORY = 2,
|
||||
}
|
||||
var _interactive_object: InteractiveType = InteractiveType.NONE
|
||||
|
||||
var InputMovementDic: Dictionary = {
|
||||
INPUT_MOVE_LEFT_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_A,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_LEFT_STRINGNAME
|
||||
},
|
||||
INPUT_MOVE_RIGHT_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_D,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_RIGHT_STRINGNAME
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
_player_area2d.body_shape_entered.connect(_show_prompt)
|
||||
_player_area2d.body_shape_exited.connect(_hide_prompt)
|
||||
|
||||
_ui_sign = owner.get_node("%UISign")
|
||||
|
||||
for input in InputMovementDic:
|
||||
var key_val = InputMovementDic[input].get(KEY_STRINGNAME)
|
||||
var action_val = InputMovementDic[input].get(ACTION_STRINGNAME)
|
||||
|
||||
var movement_input = InputEventKey.new()
|
||||
movement_input.physical_keycode = key_val
|
||||
InputMap.add_action(action_val)
|
||||
InputMap.action_add_event(action_val, movement_input)
|
||||
|
||||
_player_visuals.top_level = true
|
||||
|
||||
if Engine.get_version_info().major == 4 and \
|
||||
Engine.get_version_info().minor >= 3:
|
||||
printerr("Please run the other 2D example scenes, in the 2D-4.3 directory, for more up-to-date example setups.")
|
||||
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if _is_interactive:
|
||||
if Input.is_physical_key_pressed(KEY_F):
|
||||
if tween:
|
||||
tween.kill()
|
||||
|
||||
if not _movement_disabled:
|
||||
tween = get_tree().create_tween()
|
||||
|
||||
_movement_disabled = true
|
||||
_active_pcam.set_priority(10)
|
||||
|
||||
_show_interactive_node(_interactive_UI)
|
||||
_interactive_node_logic()
|
||||
|
||||
else:
|
||||
_hide_interactive_node(_interactive_UI)
|
||||
_interactive_node_logic()
|
||||
|
||||
|
||||
if Input.is_physical_key_pressed(KEY_ESCAPE) and _movement_disabled:
|
||||
_hide_interactive_node(_interactive_UI)
|
||||
_interactive_node_logic()
|
||||
|
||||
|
||||
func _show_interactive_node(UI: Control) -> void:
|
||||
UI.modulate.a = 0
|
||||
UI.visible = true
|
||||
tween.tween_property(UI, "modulate", Color.WHITE, 1).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_CIRC)
|
||||
|
||||
|
||||
func _hide_interactive_node(UI: Control) -> void:
|
||||
_movement_disabled = false
|
||||
_active_pcam.set_priority(0)
|
||||
UI.visible = false
|
||||
|
||||
|
||||
func _interactive_node_logic() -> void:
|
||||
match _interactive_object:
|
||||
2:
|
||||
if _movement_disabled:
|
||||
_dark_overlay.set_visible(true)
|
||||
else:
|
||||
_dark_overlay.set_visible(false)
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
_physics_body_trans_last = _physics_body_trans_current
|
||||
_physics_body_trans_current = global_transform
|
||||
|
||||
if not is_on_floor():
|
||||
velocity.y += gravity * delta
|
||||
|
||||
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
|
||||
velocity.y = JUMP_VELOCITY
|
||||
|
||||
if _movement_disabled: return
|
||||
|
||||
var input_dir: = Input.get_axis(
|
||||
INPUT_MOVE_LEFT_STRINGNAME,
|
||||
INPUT_MOVE_RIGHT_STRINGNAME
|
||||
)
|
||||
|
||||
if input_dir:
|
||||
velocity.x = input_dir * SPEED
|
||||
if input_dir > 0:
|
||||
_player_sprite.set_flip_h(false)
|
||||
elif input_dir < 0:
|
||||
_player_sprite.set_flip_h(true)
|
||||
else:
|
||||
velocity.x = move_toward(velocity.x, 0, SPEED)
|
||||
|
||||
move_and_slide()
|
||||
|
||||
|
||||
func _process(delta) -> void:
|
||||
_player_visuals.global_position = _physics_body_trans_last.interpolate_with(
|
||||
_physics_body_trans_current,
|
||||
Engine.get_physics_interpolation_fraction()
|
||||
).origin
|
||||
|
||||
|
||||
func _show_prompt(body_rid: RID, body: Node2D, body_shape_index: int, local_shape: int) -> void:
|
||||
if body is TileMap:
|
||||
var tile_map: TileMap = body
|
||||
|
||||
var tile_coords: Vector2i = tile_map.get_coords_for_body_rid(body_rid)
|
||||
var cell_data: TileData = tile_map.get_cell_tile_data(1, tile_coords)
|
||||
|
||||
if cell_data:
|
||||
var cell_data_type: StringName = cell_data.get_custom_data("Type")
|
||||
# var cell_global_pos: Vector2 = tile_map.to_global(tile_map.map_to_local(tile_coords))
|
||||
_is_interactive = true
|
||||
_interaction_prompt.set_visible(true)
|
||||
|
||||
match cell_data_type:
|
||||
"Sign":
|
||||
_interactive_UI = owner.get_node("%UISign")
|
||||
_active_pcam = %ItemFocusPhantomCamera2D
|
||||
_interactive_object = InteractiveType.ITEM
|
||||
"Inventory":
|
||||
_interactive_UI = owner.get_node("%UIInventory")
|
||||
_interactive_object = InteractiveType.INVENTORY
|
||||
_active_pcam = %InventoryPhantomCamera2D
|
||||
|
||||
|
||||
func _hide_prompt(body_rid: RID, body: Node2D, body_shape_index: int, local_shape: int) -> void:
|
||||
if body is TileMap:
|
||||
var tile_map: TileMap = body
|
||||
|
||||
var tile_coords: Vector2i = tile_map.get_coords_for_body_rid(body_rid)
|
||||
var cell_data: TileData = tile_map.get_cell_tile_data(1, tile_coords)
|
||||
|
||||
if cell_data:
|
||||
_interaction_prompt.set_visible(false)
|
||||
_is_interactive = false
|
||||
_interactive_UI = null
|
||||
_interactive_object = InteractiveType.NONE
|
||||
_active_pcam = null
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://cb46ypjv5p72s
|
||||
|
|
@ -1,180 +0,0 @@
|
|||
extends CharacterBody2D
|
||||
|
||||
@onready var _player_area2d = %PlayerArea2D
|
||||
@onready var _player_visuals: Node2D = %PlayerVisuals
|
||||
@onready var _player_sprite: Sprite2D = %PlayerSprite
|
||||
@onready var _interaction_prompt: Panel = %InteractionPrompt
|
||||
@onready var _ui_sign: Control
|
||||
@onready var _dark_overlay: ColorRect = %DarkOverlay
|
||||
@onready var _noise_emitter: PhantomCameraNoiseEmitter2D
|
||||
|
||||
const KEY_STRINGNAME: StringName = "Key"
|
||||
const ACTION_STRINGNAME: StringName = "Action"
|
||||
const INPUT_MOVE_LEFT_STRINGNAME: StringName = "move_left"
|
||||
const INPUT_MOVE_RIGHT_STRINGNAME: StringName = "move_right"
|
||||
|
||||
const SPEED = 350.0
|
||||
const JUMP_VELOCITY = -750.0
|
||||
|
||||
# Get the gravity from the project settings to be synced with RigidBody nodes.
|
||||
var gravity: int = 2400
|
||||
var _is_interactive: bool
|
||||
var _can_open_inventory: bool
|
||||
var _movement_disabled: bool
|
||||
var tween: Tween
|
||||
var _interactive_UI: Control
|
||||
var _active_pcam: PhantomCamera2D
|
||||
|
||||
enum InteractiveType {
|
||||
NONE = 0,
|
||||
ITEM = 1,
|
||||
INVENTORY = 2,
|
||||
}
|
||||
var _interactive_object: InteractiveType = InteractiveType.NONE
|
||||
|
||||
var InputMovementDic: Dictionary = {
|
||||
INPUT_MOVE_LEFT_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_A,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_LEFT_STRINGNAME
|
||||
},
|
||||
INPUT_MOVE_RIGHT_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_D,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_RIGHT_STRINGNAME
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
_player_area2d.body_shape_entered.connect(_show_prompt)
|
||||
_player_area2d.body_shape_exited.connect(_hide_prompt)
|
||||
|
||||
_ui_sign = owner.get_node("%UISign")
|
||||
|
||||
for input in InputMovementDic:
|
||||
var key_val = InputMovementDic[input].get(KEY_STRINGNAME)
|
||||
var action_val = InputMovementDic[input].get(ACTION_STRINGNAME)
|
||||
|
||||
var movement_input = InputEventKey.new()
|
||||
movement_input.physical_keycode = key_val
|
||||
InputMap.add_action(action_val)
|
||||
InputMap.action_add_event(action_val, movement_input)
|
||||
|
||||
if Engine.get_version_info().major == 4 and \
|
||||
Engine.get_version_info().minor < 3:
|
||||
printerr("This scene is designed to only work properly in Godot 4.3 or later that supports 2D Physics Interpolation.")
|
||||
printerr("Please run the other 2D example scenes in the other directory.")
|
||||
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if _is_interactive:
|
||||
if Input.is_physical_key_pressed(KEY_F):
|
||||
if tween:
|
||||
tween.kill()
|
||||
|
||||
if not _movement_disabled:
|
||||
tween = get_tree().create_tween()
|
||||
|
||||
_movement_disabled = true
|
||||
_active_pcam.set_priority(10)
|
||||
|
||||
_show_interactive_node(_interactive_UI)
|
||||
_interactive_node_logic()
|
||||
|
||||
else:
|
||||
_hide_interactive_node(_interactive_UI)
|
||||
_interactive_node_logic()
|
||||
|
||||
|
||||
if Input.is_physical_key_pressed(KEY_ESCAPE) and _movement_disabled:
|
||||
_hide_interactive_node(_interactive_UI)
|
||||
_interactive_node_logic()
|
||||
|
||||
if Input.is_physical_key_pressed(KEY_Q):
|
||||
if get_node_or_null("%PlayerPhantomCameraNoiseEmitter2D"):
|
||||
%PlayerPhantomCameraNoiseEmitter2D.emit()
|
||||
|
||||
|
||||
func _show_interactive_node(UI: Control) -> void:
|
||||
UI.modulate.a = 0
|
||||
UI.visible = true
|
||||
tween.tween_property(UI, "modulate", Color.WHITE, 1).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_CIRC)
|
||||
|
||||
|
||||
func _hide_interactive_node(UI: Control) -> void:
|
||||
_movement_disabled = false
|
||||
_active_pcam.set_priority(0)
|
||||
UI.visible = false
|
||||
|
||||
|
||||
func _interactive_node_logic() -> void:
|
||||
match _interactive_object:
|
||||
2:
|
||||
if _movement_disabled:
|
||||
_dark_overlay.set_visible(true)
|
||||
else:
|
||||
_dark_overlay.set_visible(false)
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if not is_on_floor():
|
||||
velocity.y += gravity * delta
|
||||
|
||||
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
|
||||
velocity.y = JUMP_VELOCITY
|
||||
|
||||
if _movement_disabled: return
|
||||
|
||||
var input_dir: = Input.get_axis(
|
||||
INPUT_MOVE_LEFT_STRINGNAME,
|
||||
INPUT_MOVE_RIGHT_STRINGNAME
|
||||
)
|
||||
|
||||
if input_dir:
|
||||
velocity.x = input_dir * SPEED
|
||||
if input_dir > 0:
|
||||
_player_sprite.set_flip_h(false)
|
||||
elif input_dir < 0:
|
||||
_player_sprite.set_flip_h(true)
|
||||
else:
|
||||
velocity.x = move_toward(velocity.x, 0, SPEED)
|
||||
|
||||
move_and_slide()
|
||||
|
||||
|
||||
func _show_prompt(body_rid: RID, body: Node2D, body_shape_index: int, local_shape: int) -> void:
|
||||
if body.is_class("TileMapLayer"): # TODO - Using string reference to support Godot 4.2
|
||||
var tile_map := body
|
||||
tile_map.set("physics_quadrant_size", 1) # Fix for Godot 4.4
|
||||
var tile_coords: Vector2i = tile_map.get_coords_for_body_rid(body_rid)
|
||||
var cell_data: TileData = tile_map.get_cell_tile_data(tile_coords)
|
||||
|
||||
if cell_data:
|
||||
var cell_data_type: StringName = cell_data.get_custom_data("Type")
|
||||
# var cell_global_pos: Vector2 = tile_map.to_global(tile_map.map_to_local(tile_coords))
|
||||
_is_interactive = true
|
||||
_interaction_prompt.set_visible(true)
|
||||
|
||||
match cell_data_type:
|
||||
"Sign":
|
||||
_interactive_UI = owner.get_node("%UISign")
|
||||
_active_pcam = %ItemFocusPhantomCamera2D
|
||||
_interactive_object = InteractiveType.ITEM
|
||||
"Inventory":
|
||||
_interactive_UI = owner.get_node("%UIInventory")
|
||||
_interactive_object = InteractiveType.INVENTORY
|
||||
_active_pcam = %InventoryPhantomCamera2D
|
||||
|
||||
|
||||
func _hide_prompt(body_rid: RID, body: Node2D, body_shape_index: int, local_shape: int) -> void:
|
||||
if body.is_class("TileMapLayer"): # TODO - Using string reference to support Godot 4.2
|
||||
var tile_map := body
|
||||
|
||||
var tile_coords: Vector2i = tile_map.get_coords_for_body_rid(body_rid)
|
||||
var cell_data: TileData = tile_map.get_cell_tile_data(tile_coords)
|
||||
|
||||
if cell_data:
|
||||
_interaction_prompt.set_visible(false)
|
||||
_is_interactive = false
|
||||
_interactive_UI = null
|
||||
_interactive_object = InteractiveType.NONE
|
||||
_active_pcam = null
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://cnnaky2ns2pn4
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
extends Area3D
|
||||
|
||||
@export var area_pcam: PhantomCamera3D
|
||||
|
||||
var initial_camera_position: Vector3
|
||||
var initial_camera_rotation: Vector3
|
||||
|
||||
var tween: Tween
|
||||
var tween_duration: float = 0.9
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
connect("area_entered", _entered_area)
|
||||
connect("area_exited", _exited_area)
|
||||
|
||||
|
||||
func _entered_area(area_3D: Area3D) -> void:
|
||||
if area_3D.get_parent() is CharacterBody3D:
|
||||
area_pcam.set_priority(20)
|
||||
|
||||
|
||||
func _exited_area(area_3D: Area3D) -> void:
|
||||
if area_3D.get_parent() is CharacterBody3D:
|
||||
area_pcam.set_priority(0)
|
||||
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://bnhxcejvr6wi3
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
extends Node3D
|
||||
|
||||
@onready var npc_pcam: PhantomCamera3D = %NPCPhantomCamera3D
|
||||
@onready var dialogueArea: Area3D = %NPCInteractionArea3D
|
||||
@onready var dialogueLabel3D: Label3D = %NPCDialogueExampleLabel
|
||||
|
||||
@onready var player: CharacterBody3D = %PlayerCharacterBody3D
|
||||
|
||||
@onready var move_to_location: Vector3 = %MoveToLocation.get_global_position()
|
||||
|
||||
var dialogue_label_initial_position: Vector3
|
||||
var dialogue_label_initial_rotation: Vector3
|
||||
|
||||
var tween: Tween
|
||||
var tween_duration: float = 0.9
|
||||
var tween_transition: Tween.TransitionType = Tween.TRANS_QUAD
|
||||
|
||||
var interactable: bool
|
||||
var is_interacting: bool
|
||||
|
||||
func _ready() -> void:
|
||||
dialogueArea.connect("area_entered", _interactable)
|
||||
dialogueArea.connect("area_exited", _not_interactable)
|
||||
|
||||
dialogueLabel3D.set_visible(false)
|
||||
|
||||
dialogue_label_initial_position = dialogueLabel3D.get_global_position()
|
||||
dialogue_label_initial_rotation = dialogueLabel3D.get_global_rotation()
|
||||
|
||||
npc_pcam.tween_completed.connect(_on_tween_started)
|
||||
|
||||
|
||||
|
||||
func _on_tween_started() -> void:
|
||||
player.movement_enabled = false
|
||||
|
||||
|
||||
func _interactable(area_3D: Area3D) -> void:
|
||||
if area_3D.get_parent() is CharacterBody3D:
|
||||
dialogueLabel3D.set_visible(true)
|
||||
interactable = true
|
||||
|
||||
var tween: Tween = get_tree().create_tween().set_trans(tween_transition).set_ease(Tween.EASE_IN_OUT).set_loops()
|
||||
tween.tween_property(dialogueLabel3D, "global_position", dialogue_label_initial_position - Vector3(0, -0.2, 0), tween_duration)
|
||||
tween.tween_property(dialogueLabel3D, "position", dialogue_label_initial_position, tween_duration)
|
||||
|
||||
|
||||
func _not_interactable(area_3D: Area3D) -> void:
|
||||
if area_3D.get_parent() is CharacterBody3D:
|
||||
dialogueLabel3D.set_visible(false)
|
||||
interactable = false
|
||||
|
||||
|
||||
func _input(event) -> void:
|
||||
if not interactable: return
|
||||
|
||||
if event is InputEventKey and event.pressed:
|
||||
if event.keycode == KEY_F:
|
||||
var tween: Tween = get_tree().create_tween() \
|
||||
.set_parallel(true) \
|
||||
.set_trans(Tween.TRANS_QUART) \
|
||||
.set_ease(Tween.EASE_IN_OUT)
|
||||
if not is_interacting:
|
||||
npc_pcam.priority = 20
|
||||
tween.tween_property(player, "global_position", move_to_location, 0.6).set_trans(tween_transition)
|
||||
tween.tween_property(dialogueLabel3D, "rotation", Vector3(deg_to_rad(-20), deg_to_rad(53), 0), 0.6).set_trans(tween_transition)
|
||||
else:
|
||||
npc_pcam.priority = 0
|
||||
tween.tween_property(dialogueLabel3D, "rotation", dialogue_label_initial_rotation, 0.9)
|
||||
player.movement_enabled = true
|
||||
is_interacting = !is_interacting
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://uvw6pg1ut0ms
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
extends Area3D
|
||||
|
||||
@export var path_pcam: PhantomCamera3D
|
||||
|
||||
func _ready() -> void:
|
||||
area_shape_entered.connect(_area_shape_entered)
|
||||
area_shape_exited.connect(_area_shape_exited)
|
||||
|
||||
|
||||
func _area_shape_entered(area_rid: RID, area: Area3D, area_shape_index: int, local_shape_index: int) -> void:
|
||||
path_pcam.set_priority(20)
|
||||
|
||||
func _area_shape_exited(area_rid: RID, area: Area3D, area_shape_index: int, local_shape_index: int) -> void:
|
||||
path_pcam.set_priority(0)
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://cgknbkjar73w
|
||||
|
|
@ -1,84 +0,0 @@
|
|||
extends CharacterBody3D
|
||||
|
||||
@export var SPEED: float = 5.0
|
||||
@export var JUMP_VELOCITY: float = 4.5
|
||||
@export var enable_gravity = true
|
||||
|
||||
@onready var _camera: Camera3D
|
||||
|
||||
# Get the gravity from the project settings to be synced with RigidBody nodes.
|
||||
var gravity: float = 9.8
|
||||
|
||||
var movement_enabled: bool = true
|
||||
|
||||
const KEY_STRINGNAME: StringName = "Key"
|
||||
const ACTION_STRINGNAME: StringName = "Action"
|
||||
|
||||
const INPUT_MOVE_UP_STRINGNAME: StringName = "move_up"
|
||||
const INPUT_MOVE_DOWM_STRINGNAME: StringName = "move_down"
|
||||
const INPUT_MOVE_LEFT_STRINGNAME: StringName = "move_left"
|
||||
const INPUT_MOVE_RIGHT_STRINGNAME: StringName = "move_right"
|
||||
|
||||
var InputMovementDic: Dictionary = {
|
||||
INPUT_MOVE_UP_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_W,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_UP_STRINGNAME
|
||||
},
|
||||
INPUT_MOVE_DOWM_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_S,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_DOWM_STRINGNAME
|
||||
},
|
||||
INPUT_MOVE_LEFT_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_A,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_LEFT_STRINGNAME
|
||||
},
|
||||
INPUT_MOVE_RIGHT_STRINGNAME: {
|
||||
KEY_STRINGNAME: KEY_D,
|
||||
ACTION_STRINGNAME: INPUT_MOVE_RIGHT_STRINGNAME
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
for input in InputMovementDic:
|
||||
var key_val = InputMovementDic[input].get(KEY_STRINGNAME)
|
||||
var action_val = InputMovementDic[input].get(ACTION_STRINGNAME)
|
||||
|
||||
_camera = owner.get_node("%MainCamera3D")
|
||||
|
||||
var movement_input = InputEventKey.new()
|
||||
movement_input.physical_keycode = key_val
|
||||
InputMap.add_action(action_val)
|
||||
InputMap.action_add_event(action_val, movement_input)
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
# Add the gravity.
|
||||
if enable_gravity and not is_on_floor():
|
||||
velocity.y -= gravity * delta
|
||||
|
||||
if not movement_enabled: return
|
||||
|
||||
# Get the input direction and handle the movement/deceleration.
|
||||
# As good practice, you should replace UI actions with custom gameplay actions.
|
||||
var input_dir: Vector2 = Input.get_vector(
|
||||
INPUT_MOVE_LEFT_STRINGNAME,
|
||||
INPUT_MOVE_RIGHT_STRINGNAME,
|
||||
INPUT_MOVE_UP_STRINGNAME,
|
||||
INPUT_MOVE_DOWM_STRINGNAME
|
||||
)
|
||||
|
||||
var direction: Vector3 = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
|
||||
if direction:
|
||||
var move_dir: Vector3 = Vector3.ZERO
|
||||
move_dir.x = direction.x
|
||||
move_dir.z = direction.z
|
||||
|
||||
move_dir = move_dir.rotated(Vector3.UP, _camera.rotation.y).normalized()
|
||||
velocity.x = move_dir.x * SPEED
|
||||
velocity.z = move_dir.z * SPEED
|
||||
else:
|
||||
velocity.x = move_toward(velocity.x, 0, SPEED)
|
||||
velocity.z = move_toward(velocity.z, 0, SPEED)
|
||||
|
||||
move_and_slide()
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://tgv6xpi88sd0
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
extends "player_controller.gd"
|
||||
|
||||
@onready var _player_pcam: PhantomCamera3D = %PlayerPhantomCamera3D
|
||||
|
||||
@onready var _player_character: CharacterBody3D = %PlayerCharacterBody3D
|
||||
|
||||
@export var mouse_sensitivity: float = 0.05
|
||||
|
||||
@export var min_pitch: float = -89.9
|
||||
@export var max_pitch: float = 50
|
||||
|
||||
@export var min_yaw: float = 0
|
||||
@export var max_yaw: float = 360
|
||||
|
||||
@export var run_noise: PhantomCameraNoise3D
|
||||
|
||||
func _ready() -> void:
|
||||
super()
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||
|
||||
if get_node_or_null("%PlayerPhantomCameraNoiseEmitter3D"):
|
||||
%EmitterTip.visible = true
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
super(delta)
|
||||
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if event is InputEventKey:
|
||||
if get_node_or_null("%PlayerPhantomCameraNoiseEmitter3D"):
|
||||
if event.keycode == KEY_Q and event.is_pressed():
|
||||
%PlayerPhantomCameraNoiseEmitter3D.emit()
|
||||
|
||||
if event is InputEventMouseMotion:
|
||||
var pcam_rotation_degrees: Vector3
|
||||
|
||||
# Assigns the current 3D rotation of the SpringArm3D node - so it starts off where it is in the editor
|
||||
pcam_rotation_degrees = _player_pcam.rotation_degrees
|
||||
|
||||
# Change the X rotation
|
||||
pcam_rotation_degrees.x -= event.relative.y * mouse_sensitivity
|
||||
|
||||
# Clamp the rotation in the X axis so it go over or under the target
|
||||
pcam_rotation_degrees.x = clampf(pcam_rotation_degrees.x, min_pitch, max_pitch)
|
||||
|
||||
# Change the Y rotation value
|
||||
pcam_rotation_degrees.y -= event.relative.x * mouse_sensitivity
|
||||
|
||||
# Sets the rotation to fully loop around its target, but witout going below or exceeding 0 and 360 degrees respectively
|
||||
pcam_rotation_degrees.y = wrapf(pcam_rotation_degrees.y, min_yaw, max_yaw)
|
||||
|
||||
# Change the SpringArm3D node's rotation and rotate around its target
|
||||
_player_pcam.rotation_degrees = pcam_rotation_degrees
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://x5g7kf5k2mac
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
extends "player_controller.gd"
|
||||
|
||||
@onready var _player_pcam: PhantomCamera3D
|
||||
@onready var _aim_pcam: PhantomCamera3D
|
||||
@onready var _player_direction: Node3D = %PlayerDirection
|
||||
@onready var _ceiling_pcam: PhantomCamera3D
|
||||
|
||||
@export var mouse_sensitivity: float = 0.05
|
||||
|
||||
@export var min_pitch: float = -89.9
|
||||
@export var max_pitch: float = 50
|
||||
|
||||
@export var min_yaw: float = 0
|
||||
@export var max_yaw: float = 360
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super()
|
||||
|
||||
_player_pcam = owner.get_node("%PlayerPhantomCamera3D")
|
||||
_aim_pcam = owner.get_node("%PlayerAimPhantomCamera3D")
|
||||
_ceiling_pcam = owner.get_node("%CeilingPhantomCamera3D")
|
||||
|
||||
if _player_pcam.get_follow_mode() == _player_pcam.FollowMode.THIRD_PERSON:
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
super(delta)
|
||||
|
||||
if velocity.length() > 0.2:
|
||||
var look_direction: Vector2 = Vector2(velocity.z, velocity.x)
|
||||
_player_direction.rotation.y = look_direction.angle()
|
||||
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if _player_pcam.get_follow_mode() == _player_pcam.FollowMode.THIRD_PERSON:
|
||||
var active_pcam: PhantomCamera3D
|
||||
|
||||
_set_pcam_rotation(_player_pcam, event)
|
||||
_set_pcam_rotation(_aim_pcam, event)
|
||||
if _player_pcam.get_priority() > _aim_pcam.get_priority():
|
||||
_toggle_aim_pcam(event)
|
||||
else:
|
||||
_toggle_aim_pcam(event)
|
||||
|
||||
if event is InputEventKey and event.pressed:
|
||||
if event.keycode == KEY_SPACE:
|
||||
if _ceiling_pcam.get_priority() < 30 and _player_pcam.is_active():
|
||||
_ceiling_pcam.set_priority(30)
|
||||
else:
|
||||
_ceiling_pcam.set_priority(1)
|
||||
|
||||
|
||||
func _set_pcam_rotation(pcam: PhantomCamera3D, event: InputEvent) -> void:
|
||||
if event is InputEventMouseMotion:
|
||||
var pcam_rotation_degrees: Vector3
|
||||
|
||||
# Assigns the current 3D rotation of the SpringArm3D node - so it starts off where it is in the editor
|
||||
pcam_rotation_degrees = pcam.get_third_person_rotation_degrees()
|
||||
|
||||
# Change the X rotation
|
||||
pcam_rotation_degrees.x -= event.relative.y * mouse_sensitivity
|
||||
|
||||
# Clamp the rotation in the X axis so it go over or under the target
|
||||
pcam_rotation_degrees.x = clampf(pcam_rotation_degrees.x, min_pitch, max_pitch)
|
||||
|
||||
# Change the Y rotation value
|
||||
pcam_rotation_degrees.y -= event.relative.x * mouse_sensitivity
|
||||
|
||||
# Sets the rotation to fully loop around its target, but witout going below or exceeding 0 and 360 degrees respectively
|
||||
pcam_rotation_degrees.y = wrapf(pcam_rotation_degrees.y, min_yaw, max_yaw)
|
||||
|
||||
# Change the SpringArm3D node's rotation and rotate around its target
|
||||
pcam.set_third_person_rotation_degrees(pcam_rotation_degrees)
|
||||
|
||||
|
||||
func _toggle_aim_pcam(event: InputEvent) -> void:
|
||||
if event is InputEventMouseButton \
|
||||
and event.is_pressed() \
|
||||
and event.button_index == 2 \
|
||||
and (_player_pcam.is_active() or _aim_pcam.is_active()):
|
||||
if _player_pcam.get_priority() > _aim_pcam.get_priority():
|
||||
_aim_pcam.set_priority(30)
|
||||
else:
|
||||
_aim_pcam.set_priority(0)
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://bkr71vxe2t18n
|
||||
|
Before Width: | Height: | Size: 67 KiB |
|
|
@ -1,40 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b7cs6me43ufh3"
|
||||
path="res://.godot/imported/inventory_container.png-12241277f279bfc4bf7d5dad6b3e8ff2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/examples/textures/2D/inventory_container.png"
|
||||
dest_files=["res://.godot/imported/inventory_container.png-12241277f279bfc4bf7d5dad6b3e8ff2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
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=1
|
||||
|
Before Width: | Height: | Size: 10 KiB |
|
|
@ -1,40 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c77npili4pel4"
|
||||
path="res://.godot/imported/level_spritesheet.png-26a44dd21a040a5480d5ccba54377d99.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/examples/textures/2D/level_spritesheet.png"
|
||||
dest_files=["res://.godot/imported/level_spritesheet.png-26a44dd21a040a5480d5ccba54377d99.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
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=1
|
||||
|
Before Width: | Height: | Size: 1.5 KiB |
|
|
@ -1,40 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cwep0on2tthn7"
|
||||
path="res://.godot/imported/phantom_camera_2d_sprite.png-deab230b83ae03aeb308a08ff66b8dbc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/examples/textures/2D/phantom_camera_2d_sprite.png"
|
||||
dest_files=["res://.godot/imported/phantom_camera_2d_sprite.png-deab230b83ae03aeb308a08ff66b8dbc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
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=1
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.5361 7.10309C13.6839 7.10309 14.6144 7.94367 14.6144 8.98059C14.6144 9.5197 14.3629 10.0057 13.9601 10.3482C14.1589 10.5805 14.1526 10.8503 14.1526 11.1362L16 10.0236V14.1959L14.1526 13.0833V13.3614C14.1526 13.8223 13.739 14.1959 13.2289 14.1959H9.07216C8.56201 14.1959 8.14845 13.8223 8.14845 13.3614V12.0029C7.34123 11.7452 6.76289 11.0497 6.76289 10.2323C6.76289 9.19534 7.69339 8.35476 8.84124 8.35476C9.49502 8.35476 10.0783 8.62747 10.4593 9.05381C10.4454 8.72765 10.5274 8.40055 10.6897 8.11774C11.0356 7.51496 11.7326 7.10309 12.5361 7.10309Z" fill="#8DA5F3"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.8 1C7.45097 1 9.6 3.08749 9.6 5.66254V7.11532C9.38344 7.06886 9.16015 7.04201 8.93273 7.03632C9.02973 6.78223 9.08571 6.48275 9.08571 6.1621C9.08571 5.24244 8.62521 4.49691 8.05714 4.49691C7.48908 4.49691 7.02857 5.24244 7.02857 6.1621C7.02857 6.63483 7.15025 7.06155 7.34566 7.36466C6.25657 7.86676 5.4433 8.90657 5.4433 10.2323C5.4433 11.3311 6.01594 12.2448 6.82887 12.8078V13.3614C6.82887 13.4831 6.8386 13.6006 6.85714 13.7139V14.3216C6.85714 14.6894 6.55014 14.9876 6.17143 14.9876C5.79272 14.9876 5.48571 14.6894 5.48571 14.3216V13.6555C5.48571 13.2876 5.17871 12.9894 4.8 12.9894C4.42129 12.9894 4.11429 13.2876 4.11429 13.6555V14.3216C4.11429 14.6894 3.80728 14.9876 3.42857 14.9876C3.04986 14.9876 2.74286 14.6894 2.74286 14.3216V13.6555C2.74286 13.2876 2.43585 12.9894 2.05714 12.9894C1.67843 12.9894 1.37143 13.2876 1.37143 13.6555V14.3216C1.37143 14.6894 1.06442 14.9876 0.685714 14.9876C0.307005 14.9876 0 14.6894 0 14.3216V5.66254C0 3.08749 2.14903 1 4.8 1ZM4.62857 7.8273C5.19664 7.8273 5.65714 7.08176 5.65714 6.1621C5.65714 5.24244 5.19664 4.49691 4.62857 4.49691C4.06051 4.49691 3.6 5.24244 3.6 6.1621C3.6 7.08176 4.06051 7.8273 4.62857 7.8273Z" fill="#8DA5F3"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.9 KiB |
|
|
@ -1,43 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cscjjt55iw2cu"
|
||||
path="res://.godot/imported/player_sprite.svg-8862ecb19e12152eb892607676f3831f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/examples/textures/2D/player_sprite.svg"
|
||||
dest_files=["res://.godot/imported/player_sprite.svg-8862ecb19e12152eb892607676f3831f.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
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=1
|
||||
svg/scale=8.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
|
Before Width: | Height: | Size: 172 KiB |
|
|
@ -1,40 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bloouh2jtndx1"
|
||||
path="res://.godot/imported/sign_prompt.png-18d451127e1cd1a16367acd23cec47e5.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/examples/textures/2D/sign_prompt.png"
|
||||
dest_files=["res://.godot/imported/sign_prompt.png-18d451127e1cd1a16367acd23cec47e5.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
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=1
|
||||
|
Before Width: | Height: | Size: 2.8 KiB |
|
|
@ -1,41 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bj7h2fc5jx4ax"
|
||||
path.s3tc="res://.godot/imported/checker_pattern_dark.png-70cedad2d3abf4ad6166d6614eefa7fb.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png"
|
||||
dest_files=["res://.godot/imported/checker_pattern_dark.png-70cedad2d3abf4ad6166d6614eefa7fb.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
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/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
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
|
||||
|
Before Width: | Height: | Size: 94 KiB |
|
|
@ -1,41 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c3mskbmvnpwux"
|
||||
path.s3tc="res://.godot/imported/target.png-878c5e8d057c8a9a4c2322d4ab88e9ef.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/phantom_camera/examples/textures/3D/target.png"
|
||||
dest_files=["res://.godot/imported/target.png-878c5e8d057c8a9a4c2322d4ab88e9ef.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
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/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
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
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://dg7rhrymsrrrm"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://b7cs6me43ufh3" path="res://addons/phantom_camera/examples/textures/2D/inventory_container.png" id="1_pi2dp"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="2_0rdcn"]
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 4
|
||||
anchor_top = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = 28.0
|
||||
offset_top = -255.0
|
||||
offset_right = 908.0
|
||||
offset_bottom = 183.0
|
||||
grow_vertical = 2
|
||||
texture = ExtResource("1_pi2dp")
|
||||
|
||||
[node name="Label" type="Label" parent="TextureRect"]
|
||||
layout_mode = 0
|
||||
offset_left = 345.0
|
||||
offset_top = 12.0
|
||||
offset_right = 535.0
|
||||
offset_bottom = 60.0
|
||||
theme_override_colors/font_color = Color(0.356863, 0.105882, 0.133333, 1)
|
||||
theme_override_fonts/font = ExtResource("2_0rdcn")
|
||||
theme_override_font_sizes/font_size = 32
|
||||
text = "Inventory"
|
||||
horizontal_alignment = 1
|
||||
uppercase = true
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://iq5xd1ob1res"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bloouh2jtndx1" path="res://addons/phantom_camera/examples/textures/2D/sign_prompt.png" id="1_tftrk"]
|
||||
[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="2_y5454"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_r4h3u"]
|
||||
bg_color = Color(0.470588, 0.6, 0.45098, 1)
|
||||
corner_radius_top_right = 47
|
||||
corner_radius_bottom_left = 40
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -273.568
|
||||
offset_top = 47.0
|
||||
offset_right = 273.568
|
||||
offset_bottom = 413.0
|
||||
grow_horizontal = 2
|
||||
texture = ExtResource("1_tftrk")
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="Label" type="Label" parent="TextureRect"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 25.0
|
||||
offset_top = 64.0
|
||||
offset_right = -25.0
|
||||
offset_bottom = -88.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_colors/font_color = Color(0.207843, 0.0470588, 0.0666667, 1)
|
||||
theme_override_fonts/font = ExtResource("2_y5454")
|
||||
theme_override_font_sizes/font_size = 62
|
||||
text = "Stay Awhile
|
||||
and read"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
uppercase = true
|
||||
|
||||
[node name="Panel" type="Panel" parent="."]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -240.0
|
||||
offset_right = 240.0
|
||||
offset_bottom = 200.0
|
||||
grow_horizontal = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_r4h3u")
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="Panel"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="Label2" type="Label" parent="Panel/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Example Textsdadassa
|
||||
"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
extends EditorInspectorPlugin
|
||||
|
||||
const SLOT_SCENE:= preload("res://addons/reedscene/act/StateDrapSlot.tscn")
|
||||
const QUICK_CONFIG_SCENE:= preload("res://addons/reedscene/act/StateQuickConfigPanel.tscn")
|
||||
|
||||
func _can_handle(object) -> bool:
|
||||
return object is ActManager
|
||||
|
|
@ -9,7 +10,18 @@ func _can_handle(object) -> bool:
|
|||
func _parse_begin(object) -> void:
|
||||
var root := VBoxContainer.new()
|
||||
|
||||
var slot := SLOT_SCENE.instantiate()
|
||||
root.add_child(slot)
|
||||
var am = object as ActManager
|
||||
if not am: return
|
||||
var rs: ReedScene = am._get_owner_scene()
|
||||
if not rs: return
|
||||
var size: int = rs.get_prop_count()
|
||||
|
||||
|
||||
var quick_config_panel := QUICK_CONFIG_SCENE.instantiate()
|
||||
var info := {
|
||||
"size": size
|
||||
}
|
||||
quick_config_panel.init(info)
|
||||
|
||||
root.add_child(quick_config_panel)
|
||||
add_custom_control(root)
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ theme_override_constants/margin_bottom = 4
|
|||
layout_mode = 2
|
||||
|
||||
[node name="Index" type="Label" parent="MarginContainer/HBC_Main"]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(24, 0)
|
||||
layout_mode = 2
|
||||
text = "1"
|
||||
|
|
@ -44,7 +45,6 @@ mouse_filter = 1
|
|||
script = ExtResource("2_stte8")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="MarginContainer/HBC_Main/VBoxContainer/HBC_Drop/DropArea"]
|
||||
modulate = Color(0.7, 0.7, 0.7, 1)
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
texture = ExtResource("2_lwr2w")
|
||||
|
|
@ -58,6 +58,7 @@ theme_override_constants/margin_right = 4
|
|||
|
||||
[node name="StateLabel" type="Label" parent="MarginContainer/HBC_Main/VBoxContainer/HBC_Drop/MarginContainer"]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(0.74509805, 0.74509805, 0.74509805, 1)
|
||||
custom_minimum_size = Vector2(80, 0)
|
||||
layout_mode = 2
|
||||
text = "Drag state node to icon."
|
||||
|
|
@ -107,24 +108,9 @@ theme_override_constants/margin_bottom = 2
|
|||
|
||||
[node name="Context" type="RichTextLabel" parent="MarginContainer/HBC_Main/VBoxContainer/MarginContainer"]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(0.74509805, 0.74509805, 0.74509805, 1)
|
||||
custom_minimum_size = Vector2(0, 32)
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "Information will be show here."
|
||||
scroll_active = false
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="MarginContainer/HBC_Main/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/HBC_Main/VBoxContainer/VBoxContainer2"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AddButton" type="Button" parent="MarginContainer/HBC_Main/VBoxContainer/VBoxContainer2/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "+"
|
||||
|
||||
[node name="DeleteButton" type="Button" parent="MarginContainer/HBC_Main/VBoxContainer/VBoxContainer2/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "-"
|
||||
|
|
|
|||
|
|
@ -9,8 +9,11 @@ extends Control
|
|||
|
||||
@onready var cb_use_trans: CheckBox = %CB_UseTrans
|
||||
|
||||
@onready var index: Label = %Index
|
||||
|
||||
var _cached_single_act: SingleAct = null
|
||||
var _cached_prop_id: int = -1
|
||||
var _cached_info: Dictionary
|
||||
|
||||
const NORMAL_STATE_LABLE: String = "Drag state node to icon."
|
||||
const NORMAL_CONTEXT: String = "Information will be show here."
|
||||
|
|
@ -27,6 +30,8 @@ func _ready() -> void:
|
|||
if drop_area:
|
||||
drop_area.node_path_dropped.connect(_on_node_path_dropped)
|
||||
|
||||
func init(index: int) -> void:
|
||||
self.index.text = str(index)
|
||||
|
||||
func _on_node_path_dropped(path: NodePath) -> void:
|
||||
var state := StateResolveUtils.get_state_node_from_path(path)
|
||||
|
|
@ -41,36 +46,30 @@ func _on_node_path_dropped(path: NodePath) -> void:
|
|||
_reset_to_default()
|
||||
return
|
||||
|
||||
##缓存一遍有效的info
|
||||
_cached_info = info
|
||||
|
||||
# 创建 / 更新 cached
|
||||
_cached_single_act = SingleAct.new()
|
||||
_cached_single_act.state_id = state.state_id
|
||||
_cached_single_act.use_trans = false
|
||||
_cached_single_act.use_trans = cb_use_trans.button_pressed
|
||||
_cached_single_act.context = {}
|
||||
|
||||
_cached_prop_id = int(info.prop_id)
|
||||
|
||||
# 启用 CheckBox
|
||||
cb_use_trans.disabled = false
|
||||
cb_use_trans.button_pressed = _cached_single_act.use_trans
|
||||
## 启用 CheckBox
|
||||
#cb_use_trans.disabled = false
|
||||
#cb_use_trans.button_pressed = _cached_single_act.use_trans
|
||||
|
||||
# 直接用 info + cached 刷 UI
|
||||
_set_context(info)
|
||||
_update_context(info)
|
||||
|
||||
func _on_use_trans_toggled(pressed: bool) -> void:
|
||||
if _cached_single_act == null:
|
||||
cb_use_trans.button_pressed = false
|
||||
return
|
||||
|
||||
# ✅ 只改 cached
|
||||
# 如果存在就改,不存在無事發生
|
||||
if _cached_single_act:
|
||||
_cached_single_act.use_trans = pressed
|
||||
|
||||
# 重新 resolve 一次 info(简单、直观)
|
||||
var state := _resolve_state_from_cached()
|
||||
if state == null:
|
||||
return
|
||||
|
||||
var info := StateResolveUtils.resolve_state_display_info(state)
|
||||
_set_context(info)
|
||||
_update_context()
|
||||
|
||||
|
||||
func _resolve_state_from_path(path: NodePath) -> ReedPropState:
|
||||
|
|
@ -92,21 +91,14 @@ func _reset_to_default() ->void:
|
|||
context.text = NORMAL_CONTEXT
|
||||
context.modulate = COLOR_IDLE
|
||||
|
||||
_reset_cb_use_trans()
|
||||
|
||||
## 初始化use trans 的 check box
|
||||
func _reset_cb_use_trans() ->void:
|
||||
cb_use_trans.disabled = true
|
||||
cb_use_trans.button_pressed = false
|
||||
|
||||
if not cb_use_trans.toggled.is_connected(_on_use_trans_toggled):
|
||||
cb_use_trans.toggled.connect(_on_use_trans_toggled)
|
||||
|
||||
## 初始化启用use trans
|
||||
func _enable_cb_use_trans() -> void:
|
||||
cb_use_trans.disabled = false
|
||||
cb_use_trans.button_pressed = _cached_single_act.use_trans
|
||||
|
||||
|
||||
## 创建一个CachedAct
|
||||
func _build_cached_act(state: ReedPropState, info: Dictionary) -> void:
|
||||
|
|
@ -126,9 +118,14 @@ func _clear_cached_act() -> void:
|
|||
_cached_prop_id = -1
|
||||
|
||||
## 设置文本
|
||||
func _set_context(info) ->void:
|
||||
if _cached_single_act == null:
|
||||
func _update_context(info:Dictionary = {}) ->void:
|
||||
## 如果没有传入有效的info且没有cached过act,则直接返回
|
||||
## TODO:这里后续应该有一个报错的Message
|
||||
if info == {} :
|
||||
if _cached_info == {}:
|
||||
return
|
||||
else:
|
||||
info = _cached_info
|
||||
|
||||
context.clear()
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,61 @@
|
|||
@tool
|
||||
extends PanelContainer
|
||||
|
||||
@onready var spawn_slot_root: VBoxContainer = %SpawnSlotRoot
|
||||
@onready var add_button: Button = %AddButton
|
||||
@onready var remove_button: Button = %RemoveButton
|
||||
|
||||
var _inited: bool = false
|
||||
var _max_length: int = -1
|
||||
|
||||
## 默认的Slot
|
||||
const SLOT: PackedScene = preload("res://addons/reedscene/act/StateDrapSlot.tscn")
|
||||
|
||||
func _ready() -> void:
|
||||
if not Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
# 连接按钮
|
||||
add_button.pressed.connect(_on_add_pressed)
|
||||
remove_button.pressed.connect(_on_remove_pressed)
|
||||
|
||||
# 初始保证至少有一个 Slot
|
||||
if spawn_slot_root.get_child_count() == 0:
|
||||
_add_slot()
|
||||
|
||||
_update_remove_button_state()
|
||||
|
||||
func init(info:Dictionary) -> void:
|
||||
_inited = true
|
||||
if info.has("size"):
|
||||
self._max_length = info.get("size") as int
|
||||
|
||||
func _on_add_pressed() -> void:
|
||||
_add_slot()
|
||||
|
||||
func _on_remove_pressed() -> void:
|
||||
_remove_slot()
|
||||
|
||||
func _add_slot() -> void:
|
||||
if spawn_slot_root.get_child_count() >= _max_length:
|
||||
return
|
||||
|
||||
var slot := SLOT.instantiate()
|
||||
spawn_slot_root.add_child(slot)
|
||||
slot.owner = get_tree().edited_scene_root # 编辑器可保存
|
||||
slot.init(spawn_slot_root.get_children().size())
|
||||
|
||||
_update_remove_button_state()
|
||||
|
||||
func _remove_slot() -> void:
|
||||
var count := spawn_slot_root.get_child_count()
|
||||
if count <= 1:
|
||||
return
|
||||
|
||||
var last := spawn_slot_root.get_child(count - 1)
|
||||
last.queue_free()
|
||||
|
||||
_update_remove_button_state()
|
||||
|
||||
func _update_remove_button_state() -> void:
|
||||
remove_button.disabled = spawn_slot_root.get_child_count() <= 1
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://dynra0wgb72s2
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://bwq0mho8g44av"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dynra0wgb72s2" path="res://addons/reedscene/act/StateQuickConfigPanel.gd" id="1_8gjqu"]
|
||||
|
||||
[node name="StateQuickConfigPanel" type="PanelContainer"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_8gjqu")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 5
|
||||
theme_override_constants/margin_top = 4
|
||||
theme_override_constants/margin_right = 5
|
||||
theme_override_constants/margin_bottom = 4
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Header" type="Label" parent="MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "State Quick Config Panel"
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="MarginContainer/VBoxContainer"]
|
||||
custom_minimum_size = Vector2(0, 300)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="SpawnSlotRoot" type="VBoxContainer" parent="MarginContainer/VBoxContainer/ScrollContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="MarginContainer/VBoxContainer"]
|
||||
custom_minimum_size = Vector2(0, 32)
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "Context"
|
||||
fit_content = true
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AddButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(0, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Add"
|
||||
|
||||
[node name="RemoveButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Remove"
|
||||
|
||||
[node name="InsertButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(24, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Insert"
|
||||
|
|
@ -62,7 +62,7 @@ static func resolve_state_display_info(state: ReedPropState) -> Dictionary:
|
|||
# --------------------
|
||||
# State 信息
|
||||
# --------------------
|
||||
result.state_name = state.name
|
||||
result.state_name = state.get_state_name()
|
||||
result.state_id = str(state.state_id)
|
||||
|
||||
# --------------------
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@
|
|||
|
||||
[ext_resource type="Script" uid="uid://bi8dmt4ypmbhq" path="res://addons/reedscene/dock/SceneIDMainPanel.gd" id="1_vunhl"]
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
layout_mode = 3
|
||||
[node name="Control" type="PanelContainer"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
|
|
@ -14,12 +13,7 @@ size_flags_vertical = 3
|
|||
script = ExtResource("1_vunhl")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 15
|
||||
theme_override_constants/margin_top = 10
|
||||
theme_override_constants/margin_right = 15
|
||||
|
|
@ -28,7 +22,10 @@ theme_override_constants/margin_bottom = 10
|
|||
[node name="VBC_Main" type="VBoxContainer" parent="MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="MarginContainer/VBC_Main"]
|
||||
[node name="PanelContainer" type="PanelContainer" parent="MarginContainer/VBC_Main"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="MarginContainer/VBC_Main/PanelContainer"]
|
||||
custom_minimum_size = Vector2(0, 50)
|
||||
layout_mode = 2
|
||||
text = "ReedScene Manage Panel
|
||||
|
|
@ -57,11 +54,15 @@ text = "Load Database"
|
|||
custom_minimum_size = Vector2(60, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="MarginContainer/VBC_Main/VBoxContainer"]
|
||||
[node name="PanelContainer" type="PanelContainer" parent="MarginContainer/VBC_Main/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="GC_Rows" type="GridContainer" parent="MarginContainer/VBC_Main/VBoxContainer/ScrollContainer"]
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="MarginContainer/VBC_Main/VBoxContainer/PanelContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="GC_Rows" type="GridContainer" parent="MarginContainer/VBC_Main/VBoxContainer/PanelContainer/ScrollContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
|
|
|||
|
|
@ -18,6 +18,24 @@ var _owner
|
|||
var _owner_prop_comp
|
||||
## 是否已经初始化
|
||||
var _inited: bool = false
|
||||
## State的真实name,默认会去掉ID
|
||||
var _true_name: StringName = ""
|
||||
|
||||
func _enter_tree() -> void:
|
||||
_true_name = _get_true_name()
|
||||
|
||||
if not self.renamed.is_connected(_on_renamed):
|
||||
self.renamed.connect(_on_renamed)
|
||||
|
||||
## 在命名修改的时候,会自动的更正缓存的TrueName
|
||||
func _on_renamed() -> void:
|
||||
_true_name = _get_true_name()
|
||||
|
||||
func _get_true_name() -> String:
|
||||
var s = get_parent()
|
||||
if s and s.has_method(&"_strip_id_prefix"):
|
||||
return s._strip_id_prefix(self.name)
|
||||
return self.name
|
||||
|
||||
##初始化State
|
||||
func init(owner: Node, prop_comp: Node) -> bool:
|
||||
|
|
@ -55,3 +73,7 @@ func on_enter(_from: ReedPropState, _ctx: Dictionary) -> void:
|
|||
##State退出
|
||||
func on_exit(_to: ReedPropState, _ctx: Dictionary) -> void:
|
||||
pass
|
||||
|
||||
## 外部可以通过state的引用返回真实名
|
||||
func get_state_name() -> StringName:
|
||||
return _true_name
|
||||
|
|
|
|||
|
|
@ -11,15 +11,38 @@ const IS_PROP_STATES_ROOT := true
|
|||
|
||||
@export var auto_refresh: bool = true
|
||||
|
||||
func _enter_tree() -> void:
|
||||
if not Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
_connect_editor_signals()
|
||||
_refresh_states()
|
||||
|
||||
func _ready() -> void:
|
||||
if not Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
## 链接所有的功能信号
|
||||
func _connect_editor_signals() -> void:
|
||||
if not child_entered_tree.is_connected(_on_child_entered_tree):
|
||||
child_entered_tree.connect(_on_child_entered_tree)
|
||||
|
||||
if not child_exiting_tree.is_connected(_on_child_exiting_tree):
|
||||
child_exiting_tree.connect(_on_child_exiting_tree)
|
||||
|
||||
if not child_order_changed.is_connected(_on_child_order_changing):
|
||||
child_order_changed.connect(_on_child_order_changing)
|
||||
|
||||
_refresh_states()
|
||||
## 断开所有的功能型号
|
||||
func _disconnect_editor_signals() -> void:
|
||||
if child_entered_tree.is_connected(_on_child_entered_tree):
|
||||
child_entered_tree.disconnect(_on_child_entered_tree)
|
||||
|
||||
if child_exiting_tree.is_connected(_on_child_exiting_tree):
|
||||
child_exiting_tree.disconnect(_on_child_exiting_tree)
|
||||
|
||||
if child_order_changed.is_connected(_on_child_order_changing):
|
||||
child_order_changed.disconnect(_on_child_order_changing)
|
||||
|
||||
## 如果子節點進入管理器
|
||||
func _on_child_entered_tree(node: Node) -> void:
|
||||
|
|
|
|||
|
|
@ -3,9 +3,22 @@ extends EditorPlugin
|
|||
|
||||
var inspector_plugins: Array[EditorInspectorPlugin] = []
|
||||
|
||||
## Autoload的SceneRegistery的Name
|
||||
const AUTOLOAD_REED_SCENE_NAME : StringName = &"ReedSceneRegistry"
|
||||
## Autoload的SceneRegistery的PATH
|
||||
const AUTOLOAD_REED_SCENE_PATH := "res://addons/reedscene/scene/SceneRegistry.gd"
|
||||
|
||||
## Act的Inspector輔助面板
|
||||
const ACT_INSPECTOR_SCENE_PATH := "res://addons/reedscene/act/ActManagerInspector.gd"
|
||||
## ID的Inspector輔助面板
|
||||
const ID_INSEPCTOR_SCENE_PATH := "res://addons/reedscene/scene/ReedSceneIDInspector.gd"
|
||||
|
||||
## SceneID注冊查詢面板的位置
|
||||
const SCENE_ID_MAIN_PANEL_PATH := "res://addons/reedscene/dock/SceneIDMainPanel.tscn"
|
||||
|
||||
## 配置Json的地址
|
||||
const CONFIG_JSON_PATH:= "res://addons/reedscene/plugin_config.json"
|
||||
|
||||
var main_screen: Control
|
||||
|
||||
|
||||
|
|
@ -25,13 +38,11 @@ func _exit_tree() -> void:
|
|||
_unregister_inspectors()
|
||||
|
||||
|
||||
# ======================================================
|
||||
# Inspector Plugins
|
||||
# ======================================================
|
||||
## 注冊Inspector
|
||||
func _register_inspectors() -> void:
|
||||
# Inspector 1:ActManager
|
||||
var act_inspector := preload(
|
||||
"res://addons/reedscene/act/ActManagerInspector.gd"
|
||||
ACT_INSPECTOR_SCENE_PATH
|
||||
).new()
|
||||
|
||||
add_inspector_plugin(act_inspector)
|
||||
|
|
@ -39,23 +50,20 @@ func _register_inspectors() -> void:
|
|||
|
||||
# Inspector 2:ReedSceneID
|
||||
var scene_id_inspector := preload(
|
||||
"res://addons/reedscene/scene/ReedSceneIDInspector.gd"
|
||||
ID_INSEPCTOR_SCENE_PATH
|
||||
).new()
|
||||
|
||||
add_inspector_plugin(scene_id_inspector)
|
||||
inspector_plugins.append(scene_id_inspector)
|
||||
|
||||
|
||||
## 注銷Inspector
|
||||
func _unregister_inspectors() -> void:
|
||||
for plugin in inspector_plugins:
|
||||
remove_inspector_plugin(plugin)
|
||||
inspector_plugins.clear()
|
||||
|
||||
|
||||
# ======================================================
|
||||
# Autoload
|
||||
# ======================================================
|
||||
|
||||
## 注冊Autoload
|
||||
func _ensure_autoload() -> void:
|
||||
var key := "autoload/%s" % AUTOLOAD_REED_SCENE_NAME
|
||||
if not ProjectSettings.has_setting(key):
|
||||
|
|
@ -64,26 +72,22 @@ func _ensure_autoload() -> void:
|
|||
AUTOLOAD_REED_SCENE_PATH
|
||||
)
|
||||
|
||||
|
||||
## 注銷Autoload
|
||||
func _remove_autoload() -> void:
|
||||
var key := "autoload/%s" % AUTOLOAD_REED_SCENE_NAME
|
||||
if ProjectSettings.has_setting(key):
|
||||
remove_autoload_singleton(AUTOLOAD_REED_SCENE_NAME)
|
||||
|
||||
|
||||
# ======================================================
|
||||
# Main Screen
|
||||
# ======================================================
|
||||
|
||||
## 加載插件編輯面板
|
||||
func _load_mainscreen() -> void:
|
||||
main_screen = preload(
|
||||
"res://addons/reedscene/dock/SceneIDMainPanel.tscn"
|
||||
SCENE_ID_MAIN_PANEL_PATH
|
||||
).instantiate()
|
||||
|
||||
EditorInterface.get_editor_main_screen().add_child(main_screen)
|
||||
main_screen.visible = false
|
||||
|
||||
|
||||
## 注銷插件編輯面板
|
||||
func _unload_mainscreen() -> void:
|
||||
if main_screen:
|
||||
main_screen.queue_free()
|
||||
|
|
@ -117,3 +121,7 @@ func _get_plugin_icon() -> Texture2D:
|
|||
"Node",
|
||||
"EditorIcons"
|
||||
)
|
||||
|
||||
## 通過Json獲取到Plugin的基本配置
|
||||
func _get_config_data() -> Dictionary:
|
||||
return {}
|
||||
|
|
|
|||
|
|
@ -292,3 +292,7 @@ func get_scene_id() -> int:
|
|||
return get_scene_id_comp().scene_id
|
||||
|
||||
return -1
|
||||
|
||||
## Prop的数量
|
||||
func get_prop_count() -> int:
|
||||
return get_prop_map().values().size()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
''' 用來儲存所有的SceneID的數據集
|
||||
'''
|
||||
用來儲存所有的SceneID的數據集,通常,
|
||||
1. 你不應該通過面板修改這個DataBase。
|
||||
2. 每個項目通常只存在一個ID Database
|
||||
'''
|
||||
|
||||
@tool
|
||||
|
|
@ -9,6 +12,7 @@ var next_id: int = 10000
|
|||
|
||||
@export var entries: Array[SceneIDEntry] = []
|
||||
|
||||
## 請求一個ID
|
||||
func request_new_id(prefix: int) -> int:
|
||||
##合理性檢測
|
||||
if prefix < 0: return -1
|
||||
|
|
@ -29,6 +33,7 @@ func request_new_id(prefix: int) -> int:
|
|||
|
||||
return candidate
|
||||
|
||||
## 注冊SceneID
|
||||
func register_scene_id(
|
||||
scene_path: String,
|
||||
uid: String,
|
||||
|
|
@ -49,7 +54,7 @@ func register_scene_id(
|
|||
emit_changed()
|
||||
return true
|
||||
|
||||
|
||||
## 檢查SceneID 是否有效
|
||||
func validate_scene_id(
|
||||
scene_id: int,
|
||||
scene_uid: String,
|
||||
|
|
@ -82,5 +87,4 @@ func validate_scene_id(
|
|||
% [scene_id, matched_entry.scene_path, scene_path]
|
||||
)
|
||||
|
||||
# ✅ 无论有没有 warning,都返回 result
|
||||
return result
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
|
@ -3,15 +3,15 @@
|
|||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://p0oxphym6oqg"
|
||||
path="res://.godot/imported/scene.svg-8a320ae079b96f7816a22c69b2f9dc97.ctex"
|
||||
path="res://.godot/imported/scene.svg-c24b5af00be10e23fb72b4a388d5aa0d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/reedscene/scene/scene.svg"
|
||||
dest_files=["res://.godot/imported/scene.svg-8a320ae079b96f7816a22c69b2f9dc97.ctex"]
|
||||
source_file="res://addons/reedscene/scene/icon/scene.svg"
|
||||
dest_files=["res://.godot/imported/scene.svg-c24b5af00be10e23fb72b4a388d5aa0d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
extends Node
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://c0yvg1m6ot83j
|
||||
|
|
@ -1 +0,0 @@
|
|||
class_name GameViewContainer extends SubViewportContainer
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://du4xgapk8c7vb
|
||||