Commit 1b7d06bc authored by Gavin An's avatar Gavin An

noble man 제거

parent 7444c7c3
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://8pu2q731ei7i"
path="res://.godot/imported/noble_man.fbx-80379b336d6564d95d818f6c95855444.scn"
[deps]
source_file="res://assets/models/monsters/noble_man/noble_man.fbx"
dest_files=["res://.godot/imported/noble_man.fbx-80379b336d6564d95d818f6c95855444.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
mesh_library/use_node_names_as_mesh_names=false
array_mesh/deduplicate_surfaces=true
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
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ci7uko0kt5ggc"
path.s3tc="res://.godot/imported/noble_man_0.png-c89c315cc96625e1b3c7d50a395d7a2a.s3tc.ctex"
path.etc2="res://.godot/imported/noble_man_0.png-c89c315cc96625e1b3c7d50a395d7a2a.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
generator_parameters={
"md5": "0c6aa6755e0a85b8056f439c30891ea3"
}
[deps]
source_file="res://assets/models/monsters/noble_man/noble_man_0.png"
dest_files=["res://.godot/imported/noble_man_0.png-c89c315cc96625e1b3c7d50a395d7a2a.s3tc.ctex", "res://.godot/imported/noble_man_0.png-c89c315cc96625e1b3c7d50a395d7a2a.etc2.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/high_quality_mode=0
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.
...@@ -70,17 +70,7 @@ func _initialize_hero_templates() -> void: ...@@ -70,17 +70,7 @@ func _initialize_hero_templates() -> void:
## 몬스터 능력치 데이터 초기 셋업 ## 몬스터 능력치 데이터 초기 셋업
func _initialize_monster_templates() -> void: func _initialize_monster_templates() -> void:
# 1. Noble Man (기본 밸런스형 몬스터) # 1. Zombie (고체력 저속형 몬스터)
var noble_man: MonsterData = MonsterData.new()
noble_man.monster_id = "noble_man"
noble_man.monster_name = "Noble Man"
noble_man.hp = 100.0
noble_man.speed = 2.0
noble_man.gold_reward = 15
noble_man.model_name = "noble_man"
monster_templates.append(noble_man)
# 2. Zombie (고체력 저속형 몬스터)
var zombie: MonsterData = MonsterData.new() var zombie: MonsterData = MonsterData.new()
zombie.monster_id = "zombie" zombie.monster_id = "zombie"
zombie.monster_name = "Zombie" zombie.monster_name = "Zombie"
...@@ -90,7 +80,7 @@ func _initialize_monster_templates() -> void: ...@@ -90,7 +80,7 @@ func _initialize_monster_templates() -> void:
zombie.model_name = "zombie" zombie.model_name = "zombie"
monster_templates.append(zombie) monster_templates.append(zombie)
# 3. Skeleton (저체력 고속형 몬스터) # 2. Skeleton (저체력 고속형 몬스터)
var skeleton: MonsterData = MonsterData.new() var skeleton: MonsterData = MonsterData.new()
skeleton.monster_id = "skeleton" skeleton.monster_id = "skeleton"
skeleton.monster_name = "Skeleton" skeleton.monster_name = "Skeleton"
......
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
[ext_resource type="Script" uid="uid://cinnjs2c10i2a" path="res://src/core/main.gd" id="1_main"] [ext_resource type="Script" uid="uid://cinnjs2c10i2a" path="res://src/core/main.gd" id="1_main"]
[ext_resource type="Script" uid="uid://dd1xgi6hnpuvs" path="res://src/core/rts_camera.gd" id="1_rts_cam"] [ext_resource type="Script" uid="uid://dd1xgi6hnpuvs" path="res://src/core/rts_camera.gd" id="1_rts_cam"]
[ext_resource type="Script" uid="uid://cq7r51whh6po" path="res://src/core/stage_manager.gd" id="2_stage_mgr"] [ext_resource type="Script" uid="uid://cq7r51whh6po" path="res://src/core/stage_manager.gd" id="2_stage_mgr"]
[ext_resource type="PackedScene" uid="uid://ygm6ry4fu5x0" path="res://src/entities/monsters/noble_man/noble_man_monster.tscn" id="4_nxx65"]
[ext_resource type="Script" uid="uid://dkplkt6q8e3b5" path="res://src/core/unit_controller.gd" id="4_unit_ctrl"] [ext_resource type="Script" uid="uid://dkplkt6q8e3b5" path="res://src/core/unit_controller.gd" id="4_unit_ctrl"]
[ext_resource type="PackedScene" uid="uid://dfsvswt2g4422" path="res://src/entities/monsters/zombie/zombie_monster.tscn" id="5_2uitn"] [ext_resource type="PackedScene" uid="uid://dfsvswt2g4422" path="res://src/entities/monsters/zombie/zombie_monster.tscn" id="5_2uitn"]
[ext_resource type="PackedScene" uid="uid://bqga1rvcjyydy" path="res://src/ui/hud.tscn" id="5_hud"] [ext_resource type="PackedScene" uid="uid://bqga1rvcjyydy" path="res://src/ui/hud.tscn" id="5_hud"]
...@@ -54,7 +53,7 @@ script = ExtResource("1_rts_cam") ...@@ -54,7 +53,7 @@ script = ExtResource("1_rts_cam")
[node name="StageManager" type="Node" parent="." unique_id=132524356] [node name="StageManager" type="Node" parent="." unique_id=132524356]
script = ExtResource("2_stage_mgr") script = ExtResource("2_stage_mgr")
monster_scenes = Array[PackedScene]([ExtResource("4_nxx65"), ExtResource("5_2uitn"), ExtResource("6_skeleton")]) monster_scenes = Array[PackedScene]([ExtResource("5_2uitn"), ExtResource("6_skeleton")])
[node name="UnitController" type="Control" parent="." unique_id=552898295] [node name="UnitController" type="Control" parent="." unique_id=552898295]
layout_mode = 3 layout_mode = 3
......
...@@ -94,7 +94,7 @@ func _on_spawn_timer_timeout() -> void: ...@@ -94,7 +94,7 @@ func _on_spawn_timer_timeout() -> void:
# 몬스터 초기화 (리소스 ID 판정 및 스테이지 데이터 획득) # 몬스터 초기화 (리소스 ID 판정 및 스테이지 데이터 획득)
var stage: int = GameManager.current_stage var stage: int = GameManager.current_stage
var monster_id: String = "noble_man" # 기본값 var monster_id: String = "" # 기본값
var scene_path: String = selected_scene.resource_path.to_lower() var scene_path: String = selected_scene.resource_path.to_lower()
if "zombie" in scene_path: if "zombie" in scene_path:
monster_id = "zombie" monster_id = "zombie"
......
...@@ -7,4 +7,4 @@ extends Resource ...@@ -7,4 +7,4 @@ extends Resource
@export var hp: float = 100.0 @export var hp: float = 100.0
@export var speed: float = 2.0 @export var speed: float = 2.0
@export var gold_reward: int = 15 @export var gold_reward: int = 15
@export var model_name: String = "" # 자식 노드로 들어갈 3D 모델 노드 이름 (예: "noble_man", "zombie") @export var model_name: String = "" # 자식 노드로 들어갈 3D 모델 노드 이름 (예: "zombie")
[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="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")]
transform = Transform3D(1, 0, 0, 0, 0.8, 0, 0, 0, 1, 0, 0, 0)
[node name="Skeleton3D" parent="Armature" parent_id_path=PackedInt32Array(123217386) index="0" unique_id=1431623613]
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=2113489952]
libraries/ = ExtResource("2_am4si")
class_name NobleManMonster
extends BaseMonster
## Noble Man 전용 동작 및 비주얼 제어를 담당하는 클래스
func _setup_skin_and_animations() -> void:
_apply_noble_man_skin(_model_instance)
_model_anim_player = _find_animation_player(_model_instance)
if _model_anim_player:
var init_idle: String = _resolve_anim_name(_model_anim_player, "noble_man", "Idle")
if init_idle != "":
_model_anim_player.play(init_idle)
## 몬스터 자식 메쉬에 noble_man_0.png 텍스처를 입히는 재귀 함수
func _apply_noble_man_skin(node: Node) -> void:
if node is MeshInstance3D:
var mesh_inst: MeshInstance3D = node as MeshInstance3D
var texture_path: String = "res://assets/models/monsters/noble_man/noble_man_0.png"
if ResourceLoader.exists(texture_path):
var texture: Texture2D = load(texture_path) as Texture2D
if texture:
var mat: StandardMaterial3D = StandardMaterial3D.new()
mat.albedo_texture = texture
mat.roughness = 0.5
mesh_inst.material_override = mat
for child: Node in node.get_children():
_apply_noble_man_skin(child)
## Noble Man 걷는 애니메이션 갱신 제어
func _update_monster_animation() -> void:
if not _model_anim_player:
return
var anim_name: String = _resolve_anim_name(_model_anim_player, "noble_man", "Walking")
if anim_name != "":
var anim: Animation = _model_anim_player.get_animation(anim_name)
if anim:
anim.loop_mode = Animation.LOOP_LINEAR
if _last_anim_state != "walking":
_last_anim_state = "walking"
_model_anim_player.play(anim_name, -1, 1.2) # 1.2배속 재생
[gd_scene format=3 uid="uid://ygm6ry4fu5x0"]
[ext_resource type="Script" uid="uid://dk2xux8f0hp7m" path="res://src/entities/monsters/noble_man/noble_man_monster.gd" id="1_base_monster"]
[ext_resource type="PackedScene" uid="uid://dy3qfnuybgjg6" path="res://src/entities/monsters/noble_man/noble_man.tscn" id="2_noble_man"]
[sub_resource type="SphereShape3D" id="SphereShape3D_collision"]
radius = 0.6
[node name="NobleManMonster" type="PathFollow3D" unique_id=1485091855]
script = ExtResource("1_base_monster")
[node name="noble_man" parent="." unique_id=174344433 instance=ExtResource("2_noble_man")]
transform = Transform3D(-1, 0, 1.509958e-07, 0, 1, 0, -1.509958e-07, 0, -1, 0, 0, 0)
[node name="Skeleton3D" parent="noble_man/Armature" parent_id_path=PackedInt32Array(174344433, 123217386) index="0" unique_id=1431623613]
bones/1/position = Vector3(0.10183821, -0.10193097, -0.0022784735)
bones/1/scale = Vector3(1.0000077, 1, 1)
bones/2/position = Vector3(8.925652e-09, 0.417691, -5.1505884e-09)
bones/2/scale = Vector3(1.0000001, 1.0000004, 1.0000002)
bones/3/position = Vector3(-2.5261881e-09, 0.42174494, 7.2241504e-11)
bones/3/scale = Vector3(1, 1, 1)
bones/4/position = Vector3(1.2221635e-08, 0.13995555, 2.1287123e-08)
bones/4/scale = Vector3(0.9999998, 1, 0.9999998)
bones/5/position = Vector3(-0.099749625, -0.1055433, -0.00022072843)
bones/5/scale = Vector3(1.000016, 0.99999976, 1.0000005)
bones/6/position = Vector3(-2.6841812e-08, 0.4172189, 1.4898632e-08)
bones/6/scale = Vector3(1.0000001, 1, 1.0000001)
bones/7/position = Vector3(-1.1679395e-08, 0.41914502, -1.1094577e-07)
bones/7/scale = Vector3(1, 1.0000001, 1)
bones/8/position = Vector3(5.047954e-10, 0.12296724, -2.2279302e-08)
bones/8/scale = Vector3(0.9999999, 0.9999999, 0.9999999)
bones/9/position = Vector3(-0.0020885684, 0.116008654, 0.0024992328)
bones/9/scale = Vector3(0.99999994, 0.9999998, 0.99999976)
bones/10/position = Vector3(-2.2647062e-09, 0.11605439, -9.138862e-09)
bones/10/scale = Vector3(1.0000001, 1.0000002, 1.0000002)
bones/11/position = Vector3(5.6057953e-16, 0.11605399, -1.8735637e-09)
bones/11/scale = Vector3(0.9999999, 1, 1)
bones/12/position = Vector3(0.042316522, 0.018807229, -0.0012655992)
bones/12/scale = Vector3(1.0000001, 1.0000001, 1.0000002)
bones/13/position = Vector3(1.2083032e-07, 0.1687637, -1.5166692e-07)
bones/13/scale = Vector3(1.0000001, 1.0000001, 1)
bones/14/position = Vector3(7.0695954e-08, 0.28124455, -4.496629e-08)
bones/14/scale = Vector3(0.99999994, 1, 1)
bones/15/position = Vector3(5.1876157e-08, 0.2978702, 1.1475281e-07)
bones/15/scale = Vector3(1, 0.99999994, 0.99999994)
bones/16/position = Vector3(-0.042962536, 0.012112379, -0.0065097106)
bones/16/scale = Vector3(0.9999999, 1, 1)
bones/17/position = Vector3(-1.3961997e-07, 0.17218974, -1.2206406e-06)
bones/17/scale = Vector3(1.0000001, 1, 1.0000002)
bones/18/position = Vector3(4.2020838e-07, 0.26897195, 9.862248e-08)
bones/18/scale = Vector3(0.99999994, 1, 1)
bones/19/position = Vector3(-8.227692e-08, 0.2969355, 4.939664e-09)
bones/19/scale = Vector3(0.99999994, 0.9999998, 0.9999998)
bones/20/position = Vector3(0.00064602116, 0.07547628, 0.007775514)
bones/20/scale = Vector3(1, 1, 0.9999998)
bones/21/position = Vector3(-2.7577591e-09, 0.07526942, -1.1876011e-07)
bones/21/scale = Vector3(1, 1.0000001, 1.0000002)
bones/22/position = Vector3(-3.6878883e-10, 0.30715173, -0.13331519)
bones/22/scale = Vector3(1, 1.0000001, 1)
bones/23/position = Vector3(3.687908e-10, 0.06441903, 0.13331476)
bones/23/scale = Vector3(1, 1, 1.0000001)
[node name="MonsterArea" type="Area3D" parent="." unique_id=2000374352]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="MonsterArea" unique_id=1747323172]
shape = SubResource("SphereShape3D_collision")
[editable path="noble_man"]
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