Commit 05758f71 authored by Gavin An's avatar Gavin An

작업중

parent 3410532f
This source diff could not be displayed because it is too large. You can view the blob instead.
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bg7n7rsykomre"
path="res://.godot/imported/ranger.fbx-62c77c688e6616d5ee4187b382b9b47d.scn"
[deps]
source_file="res://assets/models/units/ranger/ranger.fbx"
dest_files=["res://.godot/imported/ranger.fbx-62c77c688e6616d5ee4187b382b9b47d.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2
This image diff could not be displayed because it is too large. You can view the blob instead.
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://co31j8b2pvws5"
path.s3tc="res://.godot/imported/ranger_0.png-a18a046e55419f80588b183fec27acb4.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={
"md5": "f4b08718f45e909212a9f3d8616fe8f4"
}
[deps]
source_file="res://assets/models/units/ranger/ranger_0.png"
dest_files=["res://.godot/imported/ranger_0.png-a18a046e55419f80588b183fec27acb4.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
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -35,16 +35,16 @@ func _initialize_unit_templates() -> void: ...@@ -35,16 +35,16 @@ func _initialize_unit_templates() -> void:
unit_templates.append(guardian) unit_templates.append(guardian)
# 3. Ranger (원거리 유닛) # 3. Ranger (원거리 유닛)
#var ranger: UnitData = UnitData.new() var ranger: UnitData = UnitData.new()
#ranger.unit_id = "Unit_Ranger" ranger.unit_id = "Unit_Ranger"
#ranger.unit_name = "Ranger" ranger.unit_name = "Ranger"
#ranger.damage = 18.0 ranger.damage = 18.0
#ranger.cooldown = 0.8 ranger.cooldown = 0.8
#ranger.move_speed = 4.5 ranger.move_speed = 4.5
#ranger.attack_range = 10.0 ranger.attack_range = 10.0
#ranger.is_ranged = true ranger.is_ranged = true
#ranger.unit_color = Color(0.12, 0.75, 0.25, 1.0) # 녹색 ranger.unit_color = Color(0.12, 0.75, 0.25, 1.0) # 녹색
#unit_templates.append(ranger) unit_templates.append(ranger)
# 4. Slayer (고화력 대형 유닛) # 4. Slayer (고화력 대형 유닛)
#var slayer: UnitData = UnitData.new() #var slayer: UnitData = UnitData.new()
......
class_name ClickIndicator
extends MeshInstance3D
## RTS 우클릭 클릭 표시 이펙트 클래스 (ClickIndicator)
## 씬 생성 시 자동으로 크기 확장 및 페이드아웃 애니메이션을 재생한 뒤 소멸합니다.
func setup_indicator(color: Color) -> void:
# 런타임에 머티리얼을 고유화(Duplicate)하여 개별 페이드아웃이 독립적으로 일어나도록 처리
var mat: StandardMaterial3D = material_override as StandardMaterial3D
if not mat:
# 만약 material_override가 지정되지 않았다면 새로 생성
mat = StandardMaterial3D.new()
mat.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA
mat.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED
material_override = mat
else:
# 공유되는 리소스 훼손 방지를 위해 복제
mat = mat.duplicate() as StandardMaterial3D
material_override = mat
mat.albedo_color = color
# Tween 연출 개시
var tween: Tween = create_tween()
tween.set_parallel(true)
# 1. 0.15초 동안 크기 확장 (0.2 -> 1.2)
scale = Vector3(0.2, 0.01, 0.2)
tween.tween_property(self, "scale", Vector3(1.2, 0.01, 1.2), 0.15)
# 2. 0.15초 동안 투명도 감쇠 (1.0 -> 0.0)
var target_color: Color = color
target_color.a = 0.0
tween.tween_property(mat, "albedo_color", target_color, 0.15)
# 3. 재생 완료 후 즉시 노드 해제
tween.chain().tween_callback(queue_free)
[gd_scene format=3 uid="uid://1m2v0njfnwjm"]
[ext_resource type="Script" uid="uid://bufqwienof5ws" path="res://src/core/click_indicator.gd" id="1_click_indicator"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_default"]
transparency = 1
shading_mode = 0
albedo_color = Color(0.1, 0.9, 0.1, 0.9)
[sub_resource type="TorusMesh" id="TorusMesh_ring"]
inner_radius = 0.1
outer_radius = 0.4
[node name="ClickIndicator" type="MeshInstance3D" unique_id=1933475700]
transform = Transform3D(0.2, 0, 0, 0, 0.01, 0, 0, 0, 0.2, 0, 0, 0)
material_override = SubResource("StandardMaterial3D_default")
mesh = SubResource("TorusMesh_ring")
script = ExtResource("1_click_indicator")
...@@ -150,6 +150,9 @@ func _perform_action(mouse_pos: Vector2) -> void: ...@@ -150,6 +150,9 @@ func _perform_action(mouse_pos: Vector2) -> void:
if is_instance_valid(unit) and unit.has_method("attack_target"): if is_instance_valid(unit) and unit.has_method("attack_target"):
unit.call("attack_target", monster_node) unit.call("attack_target", monster_node)
print("UnitController: Ordered units to attack monster: ", monster_node.name) print("UnitController: Ordered units to attack monster: ", monster_node.name)
# 공격 지시 클릭 표시 (빨간색) 스폰
_spawn_click_indicator(monster_node.global_position, true)
else: else:
# 바닥 또는 일반 지형인 경우 해당 좌표로 이동 명령 하달 # 바닥 또는 일반 지형인 경우 해당 좌표로 이동 명령 하달
# 다중 유닛 이동 시 겹침 방지를 위해 약간의 분산(Offset)을 주면 좋습니다. # 다중 유닛 이동 시 겹침 방지를 위해 약간의 분산(Offset)을 주면 좋습니다.
...@@ -172,6 +175,25 @@ func _perform_action(mouse_pos: Vector2) -> void: ...@@ -172,6 +175,25 @@ func _perform_action(mouse_pos: Vector2) -> void:
unit.call("move_to", target_destination) unit.call("move_to", target_destination)
print("UnitController: Ordered ", unit_count, " units to move to ", hit_pos) print("UnitController: Ordered ", unit_count, " units to move to ", hit_pos)
# 지면 이동 클릭 표시 (초록색) 스폰
_spawn_click_indicator(hit_pos, false)
## 우클릭 3D 인디케이터 스폰 (바닥 클릭 시 초록색, 공격 클릭 시 빨간색)
func _spawn_click_indicator(pos: Vector3, is_attack: bool) -> void:
var click_indicator_scene: PackedScene = preload("res://src/core/click_indicator.tscn")
var indicator: Node3D = click_indicator_scene.instantiate() as Node3D
if not indicator:
return
# 지형 위에 살짝 띄워 배치 (Y=0.1m로 뎁스 충돌 방지)
indicator.global_position = pos + Vector3(0.0, 0.1, 0.0)
get_tree().current_scene.add_child(indicator)
# 이펙트 색상 설정 및 연출 개시
var color: Color = Color(0.1, 0.9, 0.1, 0.9) if not is_attack else Color(0.9, 0.1, 0.1, 0.9)
if indicator.has_method("setup_indicator"):
indicator.call("setup_indicator", color)
## 마우스 포인터 방향으로 3D Raycast 실행 ## 마우스 포인터 방향으로 3D Raycast 실행
func _raycast_from_mouse(mouse_pos: Vector2) -> Dictionary: func _raycast_from_mouse(mouse_pos: Vector2) -> Dictionary:
......
[gd_scene format=3 uid="uid://dy3qfnuybgjg6"] [gd_scene format=3 uid="uid://dy3qfnuybgjg6"]
[ext_resource type="PackedScene" uid="uid://8pu2q731ei7i" path="res://assets/models/monsters/noble_man/noble_man.fbx" id="1_fbx"] [ext_resource type="PackedScene" uid="uid://8pu2q731ei7i" path="res://assets/models/monsters/noble_man/noble_man.fbx" id="1_fbx"]
[ext_resource type="AnimationLibrary" uid="uid://brbqx71vgdgnc" path="res://assets/models/monsters/noble_man/noble_man_animations.tres" id="2_am4si"]
[node name="noble_man" unique_id=1062436170 instance=ExtResource("1_fbx")] [node name="noble_man" unique_id=1062436170 instance=ExtResource("1_fbx")]
transform = Transform3D(1, 0, 0, 0, 0.8, 0, 0, 0, 1, 0, 0, 0) transform = Transform3D(1, 0, 0, 0, 0.8, 0, 0, 0, 1, 0, 0, 0)
[node name="Skeleton3D" parent="Armature" parent_id_path=PackedInt32Array(789802200) index="0" unique_id=1272502782]
bones/0/rotation = Quaternion(0.61798733, -0.23847091, -0.29544434, 0.68843013)
bones/0/scale = Vector3(1.1764706, 1.1764706, 1.1764708)
bones/1/rotation = Quaternion(0.948611, 0.16393991, -0.13692817, 0.23347755)
bones/2/rotation = Quaternion(0.45852306, 0.19937582, 0.07257126, 0.8629828)
bones/3/rotation = Quaternion(-0.58492714, -0.06132251, 0.009246678, 0.8087116)
bones/4/rotation = Quaternion(-0.36768854, -0.001687522, 0.01695024, 0.929793)
bones/5/rotation = Quaternion(0.97120684, -0.17415474, 0.16172291, 0.016525293)
bones/6/rotation = Quaternion(0.41857097, -0.0034188193, -0.012350971, 0.90809375)
bones/7/rotation = Quaternion(-0.6098559, 0.15362522, -0.09189053, 0.7720306)
bones/8/rotation = Quaternion(-0.41545272, 0.041144814, 0.034620646, 0.9080241)
bones/9/rotation = Quaternion(0.057457034, 0.05244976, 0.0038327165, 0.99696195)
bones/10/rotation = Quaternion(0.09807169, 0.08359734, -0.014605932, 0.9915544)
bones/11/rotation = Quaternion(0.04436318, 0.07711244, -0.0016378432, 0.9960336)
bones/12/rotation = Quaternion(0.56446123, 0.5134929, -0.49502933, 0.41551715)
bones/13/rotation = Quaternion(0.50597435, 0.2815535, 0.34607968, 0.73820496)
bones/14/rotation = Quaternion(-0.34847364, 0.062623285, 0.18896937, 0.91593397)
bones/15/rotation = Quaternion(0.04238946, 0.23705958, -0.05192386, 0.96918)
bones/16/rotation = Quaternion(-0.6090661, 0.47468537, -0.4630349, -0.4350989)
bones/17/rotation = Quaternion(0.6119551, -0.3172246, -0.11668171, 0.715028)
bones/18/rotation = Quaternion(-0.31137317, 0.04883886, -0.2067891, 0.9262288)
bones/19/rotation = Quaternion(0.1326664, -0.22648887, -0.21849182, 0.9398743)
bones/20/rotation = Quaternion(0.01384508, -0.0055730203, -0.0030556368, 0.999884)
bones/21/rotation = Quaternion(0.18938631, 0.16970475, -0.04936101, 0.96586573)
bones/22/rotation = Quaternion(-0.20926115, 0.001348063, 0.001918764, 0.977857)
bones/23/rotation = Quaternion(0.53147227, 2.0621675e-07, -3.5311455e-08, 0.84707576)
[node name="AnimationPlayer" parent="." index="1" unique_id=717041671]
libraries/ = ExtResource("2_am4si")
...@@ -49,7 +49,7 @@ func _ready() -> void: ...@@ -49,7 +49,7 @@ func _ready() -> void:
_apply_unit_style() _apply_unit_style()
# 자식 노드 중 3D 모델(striker, guardian 등) 노드 자동 탐색 및 초기화 # 자식 노드 중 3D 모델(striker, guardian 등) 노드 자동 탐색 및 초기화
var model_names: Array[String] = ["striker", "guardian"] var model_names: Array[String] = ["striker", "guardian", "ranger"]
var detected_model_node: Node3D = null var detected_model_node: Node3D = null
var detected_model_name: String = "" var detected_model_name: String = ""
...@@ -69,6 +69,9 @@ func _ready() -> void: ...@@ -69,6 +69,9 @@ func _ready() -> void:
elif detected_model_name == "guardian": elif detected_model_name == "guardian":
UnitHelper.apply_skin(_model_instance, "res://assets/models/units/guardian/guardian_0.png") UnitHelper.apply_skin(_model_instance, "res://assets/models/units/guardian/guardian_0.png")
UnitHelper.attach_weapon(_model_instance, unit_data) UnitHelper.attach_weapon(_model_instance, unit_data)
elif detected_model_name == "ranger":
UnitHelper.apply_skin(_model_instance, "res://assets/models/units/ranger/ranger_0.png")
UnitHelper.attach_weapon(_model_instance, unit_data)
_model_anim_player = UnitHelper.find_animation_player(_model_instance) _model_anim_player = UnitHelper.find_animation_player(_model_instance)
if _model_anim_player: if _model_anim_player:
...@@ -79,6 +82,8 @@ func _ready() -> void: ...@@ -79,6 +82,8 @@ func _ready() -> void:
if ResourceLoader.exists(anim_lib_path): if ResourceLoader.exists(anim_lib_path):
var lib: AnimationLibrary = load(anim_lib_path) as AnimationLibrary var lib: AnimationLibrary = load(anim_lib_path) as AnimationLibrary
if lib: if lib:
if _model_anim_player.has_animation_library(""):
_model_anim_player.remove_animation_library("")
_model_anim_player.add_animation_library(detected_model_name, lib) _model_anim_player.add_animation_library(detected_model_name, lib)
print("BaseUnit: Loaded and registered ", detected_model_name, " animations library successfully.") print("BaseUnit: Loaded and registered ", detected_model_name, " animations library successfully.")
UnitHelper.clean_root_animation_tracks(_model_anim_player) UnitHelper.clean_root_animation_tracks(_model_anim_player)
...@@ -240,7 +245,7 @@ func _try_attack() -> void: ...@@ -240,7 +245,7 @@ func _try_attack() -> void:
if _model_instance and _model_anim_player: if _model_instance and _model_anim_player:
var model_name: String = _model_instance.name.to_lower() var model_name: String = _model_instance.name.to_lower()
var library_prefix: String = model_name + "/" var library_prefix: String = model_name + "/"
var attack_anim: String = library_prefix + "attack" var attack_anim: String = library_prefix + "Slash"
if _model_anim_player.has_animation(attack_anim): if _model_anim_player.has_animation(attack_anim):
anim_length = _model_anim_player.get_animation(attack_anim).length anim_length = _model_anim_player.get_animation(attack_anim).length
...@@ -348,16 +353,16 @@ func _update_animations() -> void: ...@@ -348,16 +353,16 @@ func _update_animations() -> void:
model_name = _model_instance.name.to_lower() model_name = _model_instance.name.to_lower()
var library_prefix: String = model_name + "/" var library_prefix: String = model_name + "/"
var has_custom_anims: bool = _model_anim_player.has_animation(library_prefix + "idle") var has_custom_anims: bool = _model_anim_player.has_animation(library_prefix + "Idle")
var target_anim: String = "" var target_anim: String = ""
var play_speed: float = 1.0 var play_speed: float = 1.0
var blend_time: float = 0.2 # 뚝뚝 끊기는 현상을 없애기 위한 0.2초 부드러운 크로스페이드 var blend_time: float = 0.2 # 뚝뚝 끊기는 현상을 없애기 위한 0.2초 부드러운 크로스페이드
if has_custom_anims: if has_custom_anims:
var attack_anim: String = library_prefix + "attack" var attack_anim: String = library_prefix + "Slash"
var run_anim: String = library_prefix + "run" var run_anim: String = library_prefix + "Running"
var idle_anim: String = library_prefix + "idle" var idle_anim: String = library_prefix + "Idle"
# 1. 공격 락이 활성화되어 있는 동안에는 공격 애니메이션 강제 재생 # 1. 공격 락이 활성화되어 있는 동안에는 공격 애니메이션 강제 재생
if _attack_lock_timer > 0.0: if _attack_lock_timer > 0.0:
......
[gd_scene format=3 uid="uid://dh00osxx32ll"] [gd_scene format=3 uid="uid://dh00osxx32ll"]
[ext_resource type="PackedScene" uid="uid://ym45af2xwegi" path="res://assets/models/units/guardian/guardian.fbx" id="1_avjtn"] [ext_resource type="PackedScene" uid="uid://ym45af2xwegi" path="res://assets/models/units/guardian/guardian.fbx" id="1_avjtn"]
[ext_resource type="AnimationLibrary" uid="uid://wdrqljuuoobi" path="res://assets/models/units/guardian/guardian_animations.tres" id="2_brs6e"]
[node name="guardian" unique_id=1303946976 instance=ExtResource("1_avjtn")] [node name="guardian" unique_id=1303946976 instance=ExtResource("1_avjtn")]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0) transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0)
[node name="Skeleton3D" parent="Armature" parent_id_path=PackedInt32Array(42386791) index="0" unique_id=1547704068]
bones/0/rotation = Quaternion(0.16135524, 0.017289262, 0.8635694, -0.47740287)
bones/1/rotation = Quaternion(-0.11989136, -0.7847894, 0.48965573, 0.360512)
bones/2/rotation = Quaternion(0.30723146, 0.028167723, 0.019137163, 0.95102537)
bones/3/rotation = Quaternion(-0.48467338, -0.009461789, 0.084976375, 0.8705062)
bones/4/rotation = Quaternion(-0.44517812, -0.036251303, 0.0022491806, 0.8947051)
bones/5/rotation = Quaternion(-0.55861735, -0.34589392, 0.52776814, 0.53829813)
bones/6/rotation = Quaternion(0.24396187, -0.052610878, -0.041842297, 0.96745235)
bones/7/rotation = Quaternion(-0.51089776, 0.016207077, -0.10428674, 0.8531384)
bones/8/rotation = Quaternion(-0.46007094, 0.05177691, -0.0002939275, 0.8863712)
bones/9/rotation = Quaternion(0.51449835, 0.55558264, 0.55473185, 0.34480736)
bones/10/rotation = Quaternion(-0.010586703, 0.039760113, 0.028165929, 0.9987561)
bones/11/rotation = Quaternion(-0.044285484, -0.0022858628, 0.0065958304, 0.9989946)
bones/12/rotation = Quaternion(0.4713875, 0.61777264, -0.43904644, 0.45098686)
bones/13/rotation = Quaternion(0.515525, 0.4640335, 0.11964494, 0.71034634)
bones/14/rotation = Quaternion(-0.12525696, -0.120365754, 0.08248928, 0.98133504)
bones/15/rotation = Quaternion(-0.0055409265, -0.027728662, 0.026517618, 0.99924845)
bones/16/rotation = Quaternion(-0.47947365, 0.60535425, -0.38794234, -0.5031422)
bones/17/rotation = Quaternion(0.5574216, -0.17528728, -0.09270607, 0.80620176)
bones/18/rotation = Quaternion(-0.20086025, 0.21941167, -0.43810183, 0.84828097)
bones/19/rotation = Quaternion(0.042692166, -0.32304475, 0.07524356, 0.9424214)
bones/20/rotation = Quaternion(0.050158884, 0.06416708, 0.02680122, 0.9963174)
bones/21/rotation = Quaternion(0.38534346, 0.030087095, -0.03150925, 0.9217442)
bones/22/rotation = Quaternion(-0.16659413, -3.229459e-09, 0.002792912, 0.98602164)
bones/23/rotation = Quaternion(0.5757769, -4.7371287e-08, -0.0096528055, 0.81755)
[node name="AnimationPlayer" parent="." index="1" unique_id=87959484]
libraries/ = ExtResource("2_brs6e")
...@@ -42,30 +42,4 @@ mesh = SubResource("TorusMesh_selection") ...@@ -42,30 +42,4 @@ mesh = SubResource("TorusMesh_selection")
[node name="guardian" parent="." unique_id=1303946976 instance=ExtResource("2_y84tp")] [node name="guardian" parent="." unique_id=1303946976 instance=ExtResource("2_y84tp")]
[node name="Skeleton3D" parent="guardian/Armature" parent_id_path=PackedInt32Array(1303946976, 42386791) index="0" unique_id=1547704068]
bones/0/rotation = Quaternion(0.16135524, 0.017289262, 0.8635694, -0.47740287)
bones/1/rotation = Quaternion(-0.11989136, -0.7847894, 0.48965573, 0.360512)
bones/2/rotation = Quaternion(0.30723146, 0.028167723, 0.019137163, 0.95102537)
bones/3/rotation = Quaternion(-0.48467338, -0.009461789, 0.084976375, 0.8705062)
bones/4/rotation = Quaternion(-0.44517812, -0.036251303, 0.0022491806, 0.8947051)
bones/5/rotation = Quaternion(-0.55861735, -0.34589392, 0.52776814, 0.53829813)
bones/6/rotation = Quaternion(0.24396187, -0.052610878, -0.041842297, 0.96745235)
bones/7/rotation = Quaternion(-0.51089776, 0.016207077, -0.10428674, 0.8531384)
bones/8/rotation = Quaternion(-0.46007094, 0.05177691, -0.0002939275, 0.8863712)
bones/9/rotation = Quaternion(0.51449835, 0.55558264, 0.55473185, 0.34480736)
bones/10/rotation = Quaternion(-0.010586703, 0.039760113, 0.028165929, 0.9987561)
bones/11/rotation = Quaternion(-0.044285484, -0.0022858628, 0.0065958304, 0.9989946)
bones/12/rotation = Quaternion(0.4713875, 0.61777264, -0.43904644, 0.45098686)
bones/13/rotation = Quaternion(0.515525, 0.4640335, 0.11964494, 0.71034634)
bones/14/rotation = Quaternion(-0.12525696, -0.120365754, 0.08248928, 0.98133504)
bones/15/rotation = Quaternion(-0.0055409265, -0.027728662, 0.026517618, 0.99924845)
bones/16/rotation = Quaternion(-0.47947365, 0.60535425, -0.38794234, -0.5031422)
bones/17/rotation = Quaternion(0.5574216, -0.17528728, -0.09270607, 0.80620176)
bones/18/rotation = Quaternion(-0.20086025, 0.21941167, -0.43810183, 0.84828097)
bones/19/rotation = Quaternion(0.042692166, -0.32304475, 0.07524356, 0.9424214)
bones/20/rotation = Quaternion(0.050158884, 0.06416708, 0.02680122, 0.9963174)
bones/21/rotation = Quaternion(0.38534346, 0.030087095, -0.03150925, 0.9217442)
bones/22/rotation = Quaternion(-0.16659413, -3.229459e-09, 0.002792912, 0.98602164)
bones/23/rotation = Quaternion(0.5757769, -4.7371287e-08, -0.0096528055, 0.81755)
[editable path="guardian"] [editable path="guardian"]
[gd_scene format=3 uid="uid://ch457fojl2l5g"]
[ext_resource type="PackedScene" uid="uid://bg7n7rsykomre" path="res://assets/models/units/ranger/ranger.fbx" id="1_ranger_fbx"]
[ext_resource type="AnimationLibrary" uid="uid://dtqsrlmfwah8i" path="res://assets/models/units/ranger/ranger_animations.tres" id="2_ranger_anims"]
[node name="ranger" unique_id=753362073 instance=ExtResource("1_ranger_fbx")]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0)
[node name="Skeleton3D" parent="Armature" parent_id_path=PackedInt32Array(456601137) index="0" unique_id=1884876701]
bones/0/position = Vector3(0.009526689, 0.00890895, 0.63391894)
bones/0/rotation = Quaternion(0.34787953, -0.50787205, -0.67152256, 0.4124358)
bones/1/rotation = Quaternion(0.65668887, 0.52650666, -0.4935669, 0.21895747)
bones/2/rotation = Quaternion(0.6650878, 0.14805412, 0.041049335, 0.73078936)
bones/3/rotation = Quaternion(-0.68943536, -0.13675389, 0.111500554, 0.70252746)
bones/4/rotation = Quaternion(-0.27814108, -0.049392484, 0.057641834, 0.95753616)
bones/5/rotation = Quaternion(0.76398534, -0.05935912, 0.39321068, 0.5081223)
bones/6/rotation = Quaternion(0.56752205, 0.020972898, 0.34072942, 0.7492545)
bones/7/rotation = Quaternion(-0.5510819, 0.010665403, -0.08217243, 0.830327)
bones/8/rotation = Quaternion(-0.26788568, 0.073798016, -0.031191472, 0.96011364)
bones/9/rotation = Quaternion(0.3045851, 0.05863059, 0.009242283, 0.950634)
bones/10/rotation = Quaternion(-0.025334273, 0.053094994, -0.033819344, 0.997695)
bones/11/rotation = Quaternion(0.08160243, -0.02994328, -0.10501461, 0.99066466)
bones/12/rotation = Quaternion(0.53901494, 0.5072162, -0.33634436, 0.58229476)
bones/13/rotation = Quaternion(0.5442054, -0.27331173, -0.42037866, 0.672624)
bones/14/rotation = Quaternion(-0.22189373, -0.13944925, 0.32142338, 0.9099474)
bones/15/rotation = Quaternion(0.002734622, 0.14336169, 0.053758636, 0.98820543)
bones/16/rotation = Quaternion(-0.42183864, 0.5880897, -0.22300012, -0.6530496)
bones/17/rotation = Quaternion(0.5485272, 0.14820178, -0.1221298, 0.8137805)
bones/18/rotation = Quaternion(0.21534519, 0.3642813, -0.22312197, 0.87814707)
bones/19/rotation = Quaternion(-0.033562582, -0.33096007, -0.44027492, 0.8339646)
bones/20/rotation = Quaternion(0.019875612, 0.059954792, -0.025400154, 0.99768)
bones/21/rotation = Quaternion(0.22485383, 0.4876765, -0.40425393, 0.7403993)
bones/22/rotation = Quaternion(-0.23428716, -6.378701e-09, -0.002581273, 0.9721641)
[node name="AnimationPlayer" parent="." index="1" unique_id=1856227251]
libraries/ = ExtResource("2_ranger_anims")
[gd_scene format=3 uid="uid://qdvm4bgh48q6"]
[ext_resource type="Script" uid="uid://daq4ko8ryry3w" path="res://src/entities/units/base_unit.gd" id="1_base_unit"]
[ext_resource type="PackedScene" path="res://src/entities/units/ranger/ranger.tscn" id="2_ranger_scene"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_body"]
radius = 0.4
height = 1.2
[sub_resource type="CapsuleMesh" id="CapsuleMesh_unit"]
radius = 0.4
height = 1.2
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ring"]
albedo_color = Color(0.098039, 0.901961, 0.098039, 1)
emission_enabled = true
emission = Color(0.098039, 0.901961, 0.098039, 1)
emission_energy_multiplier = 2.0
[sub_resource type="TorusMesh" id="TorusMesh_selection"]
material = SubResource("StandardMaterial3D_ring")
inner_radius = 0.65
outer_radius = 0.7
[node name="RangerUnit" type="CharacterBody3D" unique_id=910499804]
script = ExtResource("1_base_unit")
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=403818653]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.6, 0)
shape = SubResource("CapsuleShape3D_body")
[node name="VisualMesh" type="MeshInstance3D" parent="." unique_id=1828850119]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.6, 0)
visible = false
mesh = SubResource("CapsuleMesh_unit")
[node name="SelectionRing" type="MeshInstance3D" parent="." unique_id=1006132212]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.02, 0)
mesh = SubResource("TorusMesh_selection")
[node name="NavigationAgent3D" type="NavigationAgent3D" parent="." unique_id=186266373]
[node name="ranger" parent="." unique_id=1235075234 instance=ExtResource("2_ranger_scene")]
[node name="Skeleton3D" parent="ranger/Armature" parent_id_path=PackedInt32Array(1235075234, 456601137) index="0" unique_id=1884876701]
bones/0/position = Vector3(0.03514373, 0.0034280196, 0.6635236)
bones/0/rotation = Quaternion(0.20349285, -0.5581575, -0.767251, 0.24161276)
bones/1/rotation = Quaternion(0.5304922, 0.57593215, -0.61864984, 0.06444053)
bones/2/rotation = Quaternion(0.59826106, 0.1739482, 0.06382933, 0.7795843)
bones/3/rotation = Quaternion(-0.6715887, -0.20650962, 0.092862934, 0.7054777)
bones/4/rotation = Quaternion(-0.27814108, -0.049392484, 0.057641834, 0.95753616)
bones/5/rotation = Quaternion(0.8261204, 0.0028015971, 0.36372316, 0.4303752)
bones/6/rotation = Quaternion(0.5529449, -0.009049176, 0.13317788, 0.82245594)
bones/7/rotation = Quaternion(-0.5409971, -0.107743785, 0.04905413, 0.83265066)
bones/8/rotation = Quaternion(-0.26788568, 0.073798016, -0.031191472, 0.96011364)
bones/9/rotation = Quaternion(0.3045851, 0.05863059, 0.009242283, 0.950634)
bones/10/rotation = Quaternion(-0.025334273, 0.053094994, -0.033819344, 0.997695)
bones/11/rotation = Quaternion(-0.0011097626, -0.049749736, -0.0720563, 0.9961584)
bones/12/rotation = Quaternion(0.49171034, 0.6453104, -0.13713944, 0.5683207)
bones/13/rotation = Quaternion(0.28274685, -0.08206125, -0.5247269, 0.79873765)
bones/14/rotation = Quaternion(-0.060595874, -0.09316963, 0.093224026, 0.9894225)
bones/15/rotation = Quaternion(0.002734622, 0.14336169, 0.053758636, 0.98820543)
bones/16/rotation = Quaternion(-0.22393328, 0.59772503, -0.31282783, -0.7033615)
bones/17/rotation = Quaternion(0.2881412, 0.53661305, -0.6094496, 0.50753546)
bones/18/rotation = Quaternion(0.43169993, 0.23694667, -0.78221, 0.38162687)
bones/19/rotation = Quaternion(-0.033562582, -0.33096007, -0.44027492, 0.8339646)
bones/20/rotation = Quaternion(0.019875612, 0.059954792, -0.025400154, 0.99768)
bones/21/rotation = Quaternion(0.15988994, 0.5659004, -0.5430847, 0.5993756)
bones/22/rotation = Quaternion(-0.23428716, -6.378701e-09, -0.002581273, 0.9721641)
[editable path="ranger"]
[gd_scene format=3 uid="uid://c2aiejcidlihv"] [gd_scene format=3 uid="uid://c2aiejcidlihv"]
[ext_resource type="PackedScene" uid="uid://ddqbm4y6brray" path="res://assets/models/units/striker/striker.fbx" id="1_o8xnq"] [ext_resource type="PackedScene" uid="uid://ddqbm4y6brray" path="res://assets/models/units/striker/striker.fbx" id="1_o8xnq"]
[ext_resource type="AnimationLibrary" uid="uid://08h0jdofeqjh" path="res://assets/models/units/striker/striker_animations.tres" id="2_3y3ie"]
[node name="striker" unique_id=1533136548 instance=ExtResource("1_o8xnq")] [node name="striker" unique_id=1533136548 instance=ExtResource("1_o8xnq")]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0) transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0)
[node name="Skeleton3D" parent="Armature" parent_id_path=PackedInt32Array(1984558724) index="0" unique_id=550080659]
bones/0/position = Vector3(-0.07593487, -0.11580749, 1.0055236)
bones/0/rotation = Quaternion(0.10636933, -0.010761774, 0.9278658, -0.35726014)
bones/1/rotation = Quaternion(-0.3992232, -0.76478696, 0.32690945, 0.38581344)
bones/2/rotation = Quaternion(0.4915073, 0.17696312, 0.014548965, 0.8525802)
bones/3/rotation = Quaternion(-0.6221705, 0.14250483, 0.18804844, 0.7464811)
bones/4/rotation = Quaternion(-0.3181853, 0.089018926, 0.04370703, 0.94282734)
bones/5/rotation = Quaternion(-0.6471634, -0.33475423, 0.50315934, 0.46470422)
bones/6/rotation = Quaternion(0.47004598, -0.025201898, 0.0033712722, 0.88227564)
bones/7/rotation = Quaternion(-0.7216642, -0.08517742, -0.24045335, 0.64352757)
bones/8/rotation = Quaternion(-0.31206164, -0.091231756, -0.011618443, 0.94560003)
bones/9/rotation = Quaternion(0.507673, 0.55611384, 0.518061, 0.40573192)
bones/10/rotation = Quaternion(0.09781179, 0.08439563, -0.011313036, 0.9915556)
bones/11/rotation = Quaternion(0.052174386, 0.08322716, 0.0014392042, 0.9951628)
bones/12/rotation = Quaternion(0.5576085, 0.5272101, -0.49115944, 0.4121708)
bones/13/rotation = Quaternion(0.45507017, 0.34419686, 0.3153991, 0.7582632)
bones/14/rotation = Quaternion(-0.48338068, -0.008683227, 0.21203578, 0.84929883)
bones/15/rotation = Quaternion(-0.0067131408, 0.25461575, 0.03839887, 0.9662563)
bones/16/rotation = Quaternion(-0.6152923, 0.47222814, -0.46918163, -0.42223755)
bones/17/rotation = Quaternion(0.54883194, -0.3734153, -0.1059764, 0.7403469)
bones/18/rotation = Quaternion(-0.43201977, 0.12073633, -0.20203601, 0.8706107)
bones/19/rotation = Quaternion(0.0029188972, -0.11325944, -0.31018323, 0.94390154)
bones/20/rotation = Quaternion(0.0021174871, -0.013983027, 0.0034143268, 0.9998942)
bones/21/rotation = Quaternion(0.2352985, 0.1686747, -0.052965716, 0.95570815)
bones/22/rotation = Quaternion(-0.279603, 0.0036110622, 0.00633247, 0.9600881)
bones/23/rotation = Quaternion(0.5067053, 5.5902456e-09, -0.0042108293, 0.8621091)
[node name="AnimationPlayer" parent="." index="1" unique_id=587634742]
libraries/ = ExtResource("2_3y3ie")
...@@ -42,74 +42,4 @@ mesh = SubResource("TorusMesh_selection") ...@@ -42,74 +42,4 @@ mesh = SubResource("TorusMesh_selection")
[node name="striker" parent="." unique_id=1533136548 instance=ExtResource("2_iytoq")] [node name="striker" parent="." unique_id=1533136548 instance=ExtResource("2_iytoq")]
[node name="Skeleton3D" parent="striker/Armature" parent_id_path=PackedInt32Array(1533136548, 1984558724) index="0" unique_id=550080659]
bones/1/position = Vector3(-0.009245856, 0.10684185, -0.08534299)
bones/1/rotation = Quaternion(-0.3946281, -0.5851939, 0.4950765, 0.5066716)
bones/1/scale = Vector3(0.9999999, 0.99999976, 0.9999998)
bones/2/position = Vector3(4.0177046e-08, 0.37424818, -5.7404237e-09)
bones/2/rotation = Quaternion(0.22904597, 0.049435183, 0.02473484, 0.9718448)
bones/2/scale = Vector3(0.99999994, 1.0000002, 1.0000001)
bones/3/position = Vector3(-7.3599966e-09, 0.39098525, -2.9937866e-08)
bones/3/rotation = Quaternion(-0.5872217, 0.15762651, 0.13399802, 0.78254014)
bones/3/scale = Vector3(1.0000002, 1.0000002, 1.0000001)
bones/4/position = Vector3(1.5942128e-08, 0.14149617, 1.0303725e-07)
bones/4/rotation = Quaternion(-0.30617896, 0.065858394, 0.021237794, 0.9494557)
bones/4/scale = Vector3(0.9999999, 1, 1)
bones/5/position = Vector3(0.0036682812, -0.099147506, -0.10001065)
bones/5/rotation = Quaternion(-0.52583873, -0.4626684, 0.5070811, 0.50229514)
bones/5/scale = Vector3(0.9999998, 0.99999976, 0.9999998)
bones/6/position = Vector3(-3.467779e-08, 0.37455207, 1.3075294e-09)
bones/6/rotation = Quaternion(0.22768684, -0.058178127, -0.033373367, 0.9714218)
bones/6/scale = Vector3(0.99999994, 1.0000001, 0.9999999)
bones/7/position = Vector3(4.8904596e-08, 0.39415786, 5.608108e-08)
bones/7/rotation = Quaternion(-0.59334075, -0.15218514, -0.12479036, 0.7805215)
bones/7/scale = Vector3(1, 0.99999994, 0.99999994)
bones/8/position = Vector3(-1.6673427e-08, 0.13848819, -6.759635e-08)
bones/8/rotation = Quaternion(-0.29838693, -0.062468614, -0.019575853, 0.9521973)
bones/8/scale = Vector3(1, 1.0000001, 0.9999998)
bones/9/position = Vector3(0.005577588, -0.007694399, 0.1075227)
bones/9/rotation = Quaternion(0.51487464, 0.5084793, 0.5201398, 0.45366022)
bones/9/scale = Vector3(1.0000001, 0.99999994, 1.0000001)
bones/10/position = Vector3(1.5086567e-08, 0.10794247, 6.622832e-08)
bones/10/rotation = Quaternion(-8.8156206e-08, -1.87987e-09, -3.36835e-08, 1)
bones/10/scale = Vector3(1, 1.0000002, 1)
bones/11/position = Vector3(8.530954e-10, 0.10794168, 3.5929886e-09)
bones/11/rotation = Quaternion(-0.040583152, 0.0015551058, -0.0012895135, 0.9991741)
bones/11/scale = Vector3(1.0000001, 0.9999999, 1.0000001)
bones/12/position = Vector3(0.04353781, 0.03531092, -0.0030698292)
bones/12/rotation = Quaternion(0.5250489, 0.55181277, -0.4698363, 0.44618404)
bones/12/scale = Vector3(0.99999994, 1.0000001, 0.9999998)
bones/13/position = Vector3(4.727004e-09, 0.17426345, 1.5116144e-07)
bones/13/rotation = Quaternion(0.43775213, 0.4600656, 0.24920914, 0.7311686)
bones/13/scale = Vector3(0.9999998, 0.99999994, 0.9999999)
bones/14/position = Vector3(8.776334e-08, 0.23198953, -6.857497e-08)
bones/14/rotation = Quaternion(-0.2913251, -0.06808489, 0.09079868, 0.94986826)
bones/14/scale = Vector3(1.0000001, 0.99999994, 1)
bones/15/position = Vector3(4.1469697e-08, 0.22962049, -2.772342e-08)
bones/15/rotation = Quaternion(0.060298253, 0.088367015, 0.15107544, 0.98271644)
bones/15/scale = Vector3(1, 0.9999999, 1)
bones/16/position = Vector3(-0.043009352, 0.042757466, -0.0026530903)
bones/16/rotation = Quaternion(-0.52353424, 0.5532499, -0.4701969, -0.44580418)
bones/17/position = Vector3(-1.1183744e-08, 0.17242841, -1.0977752e-10)
bones/17/rotation = Quaternion(0.4489792, -0.4744633, -0.259063, 0.71146935)
bones/17/scale = Vector3(1, 0.99999976, 0.99999994)
bones/18/position = Vector3(4.941189e-08, 0.2238568, 1.910303e-10)
bones/18/rotation = Quaternion(-0.3088141, 0.094151855, -0.06252116, 0.9443836)
bones/18/scale = Vector3(1.0000001, 0.99999994, 0.99999994)
bones/19/position = Vector3(3.3851437e-09, 0.2501638, -3.294978e-08)
bones/19/rotation = Quaternion(0.025533091, -0.080310486, -0.16123544, 0.9833115)
bones/19/scale = Vector3(1, 0.99999994, 0.9999999)
bones/20/position = Vector3(-0.0005284538, 0.07033285, 0.0057227863)
bones/20/rotation = Quaternion(0.040597998, -0.004242022, 0.003575142, 0.9991602)
bones/20/scale = Vector3(1, 1, 0.99999994)
bones/21/position = Vector3(-1.4515692e-09, 0.068219535, 3.4225291e-09)
bones/21/rotation = Quaternion(0.28972286, 3.414819e-05, -0.0024657808, 0.9571074)
bones/21/scale = Vector3(0.99999994, 1.0000001, 1)
bones/22/position = Vector3(-0.0007895178, 0.15207383, -0.095004424)
bones/22/rotation = Quaternion(-0.2755856, 3.6028815e-09, 0.0022902042, 0.9612738)
bones/22/scale = Vector3(1, 0.99999994, 1)
bones/23/position = Vector3(0.0007895144, 0.052899048, 0.0950043)
bones/23/rotation = Quaternion(0.5067053, -3.3353768e-08, -0.0042108977, 0.86210907)
bones/23/scale = Vector3(1.0000001, 1, 0.99999994)
[editable path="striker"] [editable path="striker"]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment