commit
7b0ae277b9
Binary file not shown.
@ -0,0 +1,22 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_image"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://cxubkr80cb33s"
|
||||||
|
path="res://.godot/imported/bpc_sans_black.png-e3582b1c8e2c9bd6420548f3683a65cb.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://2d/fonts/bpc_sans_black.png"
|
||||||
|
dest_files=["res://.godot/imported/bpc_sans_black.png-e3582b1c8e2c9bd6420548f3683a65cb.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
character_ranges=PackedStringArray()
|
||||||
|
columns=9
|
||||||
|
rows=9
|
||||||
|
image_margin=Rect2i(0, 0, 0, 0)
|
||||||
|
character_margin=Rect2i(0, 0, 0, 0)
|
||||||
|
fallbacks=[]
|
||||||
|
compress=true
|
||||||
|
scaling_mode=2
|
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,22 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wavefront_obj"
|
||||||
|
importer_version=1
|
||||||
|
type="Mesh"
|
||||||
|
uid="uid://n27p1yxk4rhn"
|
||||||
|
path="res://.godot/imported/ASST_Cloud.obj-09ed8f65149166927596cc124c0c9f65.mesh"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
files=["res://.godot/imported/ASST_Cloud.obj-09ed8f65149166927596cc124c0c9f65.mesh"]
|
||||||
|
|
||||||
|
source_file="res://3d/models/ASST_Cloud.obj"
|
||||||
|
dest_files=["res://.godot/imported/ASST_Cloud.obj-09ed8f65149166927596cc124c0c9f65.mesh", "res://.godot/imported/ASST_Cloud.obj-09ed8f65149166927596cc124c0c9f65.mesh"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
generate_tangents=true
|
||||||
|
scale_mesh=Vector3(1, 1, 1)
|
||||||
|
offset_mesh=Vector3(0, 0, 0)
|
||||||
|
optimize_mesh=true
|
||||||
|
force_disable_mesh_compression=false
|
||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,51 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://hxobkgpjv4xo"
|
||||||
|
path="res://.godot/imported/CHAR_Abe_v004.blend-ff0b60604a4ef1f914298c16427b1f8b.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/CHAR_Abe_v004.blend"
|
||||||
|
dest_files=["res://.godot/imported/CHAR_Abe_v004.blend-ff0b60604a4ef1f914298c16427b1f8b.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type=""
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
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=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
_subresources={}
|
||||||
|
blender/nodes/visible=0
|
||||||
|
blender/nodes/active_collection_only=false
|
||||||
|
blender/nodes/punctual_lights=true
|
||||||
|
blender/nodes/cameras=true
|
||||||
|
blender/nodes/custom_properties=true
|
||||||
|
blender/nodes/modifiers=1
|
||||||
|
blender/meshes/colors=false
|
||||||
|
blender/meshes/uvs=true
|
||||||
|
blender/meshes/normals=true
|
||||||
|
blender/meshes/tangents=true
|
||||||
|
blender/meshes/skins=2
|
||||||
|
blender/meshes/export_bones_deforming_mesh_only=false
|
||||||
|
blender/materials/unpack_enabled=true
|
||||||
|
blender/materials/export_materials=1
|
||||||
|
blender/animation/limit_playback=true
|
||||||
|
blender/animation/always_sample=true
|
||||||
|
blender/animation/group_tracks=true
|
||||||
Binary file not shown.
@ -0,0 +1,62 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://b8gjuyilsgnws"
|
||||||
|
path="res://.godot/imported/LVL_Dojo.blend-253a6672bbffd75a74429786686feb4a.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/LVL_Dojo.blend"
|
||||||
|
dest_files=["res://.godot/imported/LVL_Dojo.blend-253a6672bbffd75a74429786686feb4a.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type=""
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
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=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
_subresources={
|
||||||
|
"materials": {
|
||||||
|
"LVL_MAT_Grid": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/path": "res://Shaders/LVL_MAT_Dojo.tres"
|
||||||
|
},
|
||||||
|
"MAT_Trees": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/path": "res://Shaders/ASST_MAT_Trees.res"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
blender/nodes/visible=0
|
||||||
|
blender/nodes/active_collection_only=false
|
||||||
|
blender/nodes/punctual_lights=true
|
||||||
|
blender/nodes/cameras=true
|
||||||
|
blender/nodes/custom_properties=true
|
||||||
|
blender/nodes/modifiers=1
|
||||||
|
blender/meshes/colors=false
|
||||||
|
blender/meshes/uvs=true
|
||||||
|
blender/meshes/normals=true
|
||||||
|
blender/meshes/tangents=true
|
||||||
|
blender/meshes/skins=2
|
||||||
|
blender/meshes/export_bones_deforming_mesh_only=false
|
||||||
|
blender/materials/unpack_enabled=true
|
||||||
|
blender/materials/export_materials=1
|
||||||
|
blender/animation/limit_playback=true
|
||||||
|
blender/animation/always_sample=true
|
||||||
|
blender/animation/group_tracks=true
|
||||||
Binary file not shown.
@ -0,0 +1,58 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://b1seql40y0fmd"
|
||||||
|
path="res://.godot/imported/LVL_Promenade.blend-684bf91e67519ef5f3885b827db724df.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/LVL_Promenade.blend"
|
||||||
|
dest_files=["res://.godot/imported/LVL_Promenade.blend-684bf91e67519ef5f3885b827db724df.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type=""
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
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=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
_subresources={
|
||||||
|
"materials": {
|
||||||
|
"LVL_MAT_Grid": {
|
||||||
|
"use_external/enabled": true,
|
||||||
|
"use_external/path": "res://Shaders/LVL_MAT_Dojo.tres"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
blender/nodes/visible=0
|
||||||
|
blender/nodes/active_collection_only=false
|
||||||
|
blender/nodes/punctual_lights=true
|
||||||
|
blender/nodes/cameras=true
|
||||||
|
blender/nodes/custom_properties=true
|
||||||
|
blender/nodes/modifiers=1
|
||||||
|
blender/meshes/colors=false
|
||||||
|
blender/meshes/uvs=true
|
||||||
|
blender/meshes/normals=true
|
||||||
|
blender/meshes/tangents=true
|
||||||
|
blender/meshes/skins=2
|
||||||
|
blender/meshes/export_bones_deforming_mesh_only=false
|
||||||
|
blender/materials/unpack_enabled=true
|
||||||
|
blender/materials/export_materials=1
|
||||||
|
blender/animation/limit_playback=true
|
||||||
|
blender/animation/always_sample=true
|
||||||
|
blender/animation/group_tracks=true
|
||||||
Binary file not shown.
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cekq5a63l8u15"
|
||||||
|
path="res://.godot/imported/ASST_prBuildings_diffuse.png-5895f6e82e42f681b981bce948a31cc5.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/ASST_prBuildings_diffuse.png"
|
||||||
|
dest_files=["res://.godot/imported/ASST_prBuildings_diffuse.png-5895f6e82e42f681b981bce948a31cc5.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
Binary file not shown.
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://8iwjdih3bvj1"
|
||||||
|
path="res://.godot/imported/ASST_prBuildings_normal.png-a72e084e0da21d25a1fa6c03b6e40a85.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/ASST_prBuildings_normal.png"
|
||||||
|
dest_files=["res://.godot/imported/ASST_prBuildings_normal.png-a72e084e0da21d25a1fa6c03b6e40a85.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
Binary file not shown.
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c7g1lervup6pt"
|
||||||
|
path.s3tc="res://.godot/imported/CHAR_AbeFace_emit.png-75f6b275c9e4dba64f1dd6c9477906cb.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/CHAR_AbeFace_emit.png"
|
||||||
|
dest_files=["res://.godot/imported/CHAR_AbeFace_emit.png-75f6b275c9e4dba64f1dd6c9477906cb.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=2
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
Binary file not shown.
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bi3cljuc4dicl"
|
||||||
|
path.s3tc="res://.godot/imported/CHAR_Abe_diffuse.png-48d1477d9dd39856c915dd1d9227bc89.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/CHAR_Abe_diffuse.png"
|
||||||
|
dest_files=["res://.godot/imported/CHAR_Abe_diffuse.png-48d1477d9dd39856c915dd1d9227bc89.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
Binary file not shown.
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://45tpikb0js5i"
|
||||||
|
path.s3tc="res://.godot/imported/CHAR_Abe_emit.png-b756bebdd1a6664d0bf7f890d4102522.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/CHAR_Abe_emit.png"
|
||||||
|
dest_files=["res://.godot/imported/CHAR_Abe_emit.png-b756bebdd1a6664d0bf7f890d4102522.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
Binary file not shown.
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dhdeki5r0pg63"
|
||||||
|
path.s3tc="res://.godot/imported/CHAR_Abe_metal-CHAR_Abe_roughness.png-cca03751391afc6f5ba38d5f313846ba.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/CHAR_Abe_metal-CHAR_Abe_roughness.png"
|
||||||
|
dest_files=["res://.godot/imported/CHAR_Abe_metal-CHAR_Abe_roughness.png-cca03751391afc6f5ba38d5f313846ba.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
Binary file not shown.
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bcilhv0vmo23e"
|
||||||
|
path.s3tc="res://.godot/imported/CHAR_Abe_normal.png-eb7d6d0472051530dea234f8f63b391d.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/CHAR_Abe_normal.png"
|
||||||
|
dest_files=["res://.godot/imported/CHAR_Abe_normal.png-eb7d6d0472051530dea234f8f63b391d.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=1
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=1
|
||||||
|
roughness/src_normal="res://3d/models/textures/CHAR_Abe_normal.png"
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cj3ncv0ep6gcp"
|
||||||
|
path.s3tc="res://.godot/imported/LVL_Dojo_grid.jpg-8541ce5d007c5f96457ca4a2b0a1e7eb.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/LVL_Dojo_grid.jpg"
|
||||||
|
dest_files=["res://.godot/imported/LVL_Dojo_grid.jpg-8541ce5d007c5f96457ca4a2b0a1e7eb.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=1
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
Binary file not shown.
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://1xneemhylx7g"
|
||||||
|
path.s3tc="res://.godot/imported/LVL_Dojo_grid.png-882a584d5ae4101e969615d6f9b9acf4.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/LVL_Dojo_grid.png"
|
||||||
|
dest_files=["res://.godot/imported/LVL_Dojo_grid.png-882a584d5ae4101e969615d6f9b9acf4.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=1
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=1
|
||||||
|
roughness/src_normal="res://3d/models/textures/LVL_Dojo_grid.png"
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ba8nw16ss0gdk"
|
||||||
|
path.s3tc="res://.godot/imported/LVL_Dojo_grid.webp-b13641b424946ef2ead9968d95349f9f.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/LVL_Dojo_grid.webp"
|
||||||
|
dest_files=["res://.godot/imported/LVL_Dojo_grid.webp-b13641b424946ef2ead9968d95349f9f.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=1
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=1
|
||||||
|
roughness/src_normal="res://3d/models/textures/LVL_Dojo_grid.webp"
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
Binary file not shown.
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ckkmt8fxo5m1l"
|
||||||
|
path="res://.godot/imported/building.001.diff.blue.png-965a4c05496d26ecd92dc01efcb83f70.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/building.001.diff.blue.png"
|
||||||
|
dest_files=["res://.godot/imported/building.001.diff.blue.png-965a4c05496d26ecd92dc01efcb83f70.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
Binary file not shown.
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ckv3hfwlqfg2u"
|
||||||
|
path="res://.godot/imported/building.001.diff.red.png-7a762a2553a6bda335c159b3369115cd.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/building.001.diff.red.png"
|
||||||
|
dest_files=["res://.godot/imported/building.001.diff.red.png-7a762a2553a6bda335c159b3369115cd.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
Binary file not shown.
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://biv1wq2esi4jq"
|
||||||
|
path="res://.godot/imported/building.001.normals.png-0c39a9755f5eebbd263204093696cf66.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/building.001.normals.png"
|
||||||
|
dest_files=["res://.godot/imported/building.001.normals.png-0c39a9755f5eebbd263204093696cf66.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
Binary file not shown.
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bgd3uni2ldqow"
|
||||||
|
path="res://.godot/imported/construction.fence.diff.png-8d7d3b3869d22332c4a6230b2d9a733d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/construction.fence.diff.png"
|
||||||
|
dest_files=["res://.godot/imported/construction.fence.diff.png-8d7d3b3869d22332c4a6230b2d9a733d.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
Binary file not shown.
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bi23vaupci4cq"
|
||||||
|
path.s3tc="res://.godot/imported/displacement_01.png-e7f6e045e280b1f14e7ae1c10dfaa3c1.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/displacement_01.png"
|
||||||
|
dest_files=["res://.godot/imported/displacement_01.png-e7f6e045e280b1f14e7ae1c10dfaa3c1.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
Binary file not shown.
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dawb3pyro85uw"
|
||||||
|
path.s3tc="res://.godot/imported/green_metal_rust_disp_4k.png-cdf37fc4e8c93dedef62d5974a988aa1.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/green_metal_rust_disp_4k.png"
|
||||||
|
dest_files=["res://.godot/imported/green_metal_rust_disp_4k.png-cdf37fc4e8c93dedef62d5974a988aa1.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
Binary file not shown.
@ -0,0 +1,30 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cytidj4nu1lq4"
|
||||||
|
valid=false
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/green_metal_rust_nor_gl_4k.exr"
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
Binary file not shown.
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dpjvc7odynlvb"
|
||||||
|
path="res://.godot/imported/green_metal_rust_nor_gl_4k.png-fbb5e9feb2f17db7c43aea5009fd7d69.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/green_metal_rust_nor_gl_4k.png"
|
||||||
|
dest_files=["res://.godot/imported/green_metal_rust_nor_gl_4k.png-fbb5e9feb2f17db7c43aea5009fd7d69.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
Binary file not shown.
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bqpym0dd7www0"
|
||||||
|
path.s3tc="res://.godot/imported/green_metal_rust_rough_4k.jpg-bb4043ba6ef8bcffd47edf265e9c4461.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://3d/models/textures/green_metal_rust_rough_4k.jpg"
|
||||||
|
dest_files=["res://.godot/imported/green_metal_rust_rough_4k.jpg-bb4043ba6ef8bcffd47edf265e9c4461.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
[gd_scene load_steps=7 format=3 uid="uid://dqst72t4smkp"]
|
||||||
|
|
||||||
|
[ext_resource type="ArrayMesh" uid="uid://n27p1yxk4rhn" path="res://3d/models/ASST_Cloud.obj" id="1_6hp1t"]
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_peh0b"]
|
||||||
|
min_value = -360.0
|
||||||
|
max_value = 360.0
|
||||||
|
_data = [Vector2(0, -360), 0.0, 0.0, 0, 0, Vector2(1, 360), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 2
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id="CurveTexture_8dfsx"]
|
||||||
|
curve = SubResource("Curve_peh0b")
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_6320t"]
|
||||||
|
_data = [Vector2(0, 0.224738), 0.0, 4.1593, 0, 0, Vector2(0.503817, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 3
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id="CurveTexture_71r7k"]
|
||||||
|
curve = SubResource("Curve_6320t")
|
||||||
|
|
||||||
|
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_mwq43"]
|
||||||
|
particle_flag_align_y = true
|
||||||
|
particle_flag_rotate_y = true
|
||||||
|
angle_min = -180.0
|
||||||
|
angle_max = 180.0
|
||||||
|
velocity_pivot = Vector3(0, 0, 1)
|
||||||
|
direction = Vector3(0, 1, 0)
|
||||||
|
initial_velocity_min = 2.0
|
||||||
|
initial_velocity_max = 2.0
|
||||||
|
angular_velocity_max = 1.0
|
||||||
|
angular_velocity_curve = SubResource("CurveTexture_8dfsx")
|
||||||
|
gravity = Vector3(0, 0, 0)
|
||||||
|
scale_min = 0.0
|
||||||
|
scale_max = 0.5
|
||||||
|
scale_curve = SubResource("CurveTexture_71r7k")
|
||||||
|
turbulence_enabled = true
|
||||||
|
turbulence_noise_strength = 20.0
|
||||||
|
turbulence_noise_speed = Vector3(0, 0, 1)
|
||||||
|
|
||||||
|
[node name="GPUParticles3D" type="GPUParticles3D"]
|
||||||
|
amount = 64
|
||||||
|
process_material = SubResource("ParticleProcessMaterial_mwq43")
|
||||||
|
draw_pass_1 = ExtResource("1_6hp1t")
|
||||||
@ -0,0 +1,437 @@
|
|||||||
|
[gd_scene load_steps=13 format=3 uid="uid://dkt4b5x12c0o8"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://Scripts/Abe_v3.gd" id="1_03pdh"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bk1lpms6pjidx" path="res://3d/models/CHAR_Abe.blend" id="2_ec8d2"]
|
||||||
|
[ext_resource type="Material" uid="uid://cpx8gdyqdntn5" path="res://Shaders/CHAR_MAT_Abe.tres" id="3_l1nqp"]
|
||||||
|
[ext_resource type="Material" uid="uid://b3q4c07bt6rra" path="res://Shaders/CHAR_MAT_AbeFace.tres" id="4_qxawg"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dqst72t4smkp" path="res://Particles/PART_DustClouds.tscn" id="5_dtwkc"]
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_eph3m"]
|
||||||
|
animation = &"ANIM_Abe_Idle_01"
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_8e0pg"]
|
||||||
|
animation = &"ANIM_Abe_Run_01"
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_8ud4y"]
|
||||||
|
animation = &"ANIM_Abe_Walk_01"
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_2elp8"]
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_2bro7"]
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_seljc"]
|
||||||
|
nodes/ANIM_Idle/node = SubResource("AnimationNodeAnimation_eph3m")
|
||||||
|
nodes/ANIM_Idle/position = Vector2(-380, 80)
|
||||||
|
nodes/ANIM_Run/node = SubResource("AnimationNodeAnimation_8e0pg")
|
||||||
|
nodes/ANIM_Run/position = Vector2(360, 420)
|
||||||
|
nodes/ANIM_Walk/node = SubResource("AnimationNodeAnimation_8ud4y")
|
||||||
|
nodes/ANIM_Walk/position = Vector2(-360, 400)
|
||||||
|
nodes/Run/node = SubResource("AnimationNodeBlend2_2elp8")
|
||||||
|
nodes/Run/position = Vector2(640, 80)
|
||||||
|
nodes/Walk/node = SubResource("AnimationNodeBlend2_2bro7")
|
||||||
|
nodes/Walk/position = Vector2(160, 80)
|
||||||
|
nodes/output/position = Vector2(1120, 220)
|
||||||
|
node_connections = [&"Run", 0, &"Walk", &"Run", 1, &"ANIM_Run", &"Walk", 0, &"ANIM_Idle", &"Walk", 1, &"ANIM_Walk", &"output", 0, &"Run"]
|
||||||
|
|
||||||
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_8bcc1"]
|
||||||
|
radius = 0.360252
|
||||||
|
height = 1.47759
|
||||||
|
|
||||||
|
[node name="Abe" type="CharacterBody3D"]
|
||||||
|
script = ExtResource("1_03pdh")
|
||||||
|
|
||||||
|
[node name="Abe_Lo" parent="." instance=ExtResource("2_ec8d2")]
|
||||||
|
|
||||||
|
[node name="Skeleton3D" parent="Abe_Lo/CLOUDRIG_Abe" index="0"]
|
||||||
|
bones/0/position = Vector3(2.44296e-15, 0.846554, -0.339267)
|
||||||
|
bones/0/rotation = Quaternion(0.707107, -5.33851e-08, -5.33851e-08, 0.707107)
|
||||||
|
bones/0/scale = Vector3(1, 1, 1)
|
||||||
|
bones/1/position = Vector3(1.17192e-15, 0.846554, -0.109783)
|
||||||
|
bones/1/rotation = Quaternion(0.707107, -5.33851e-08, -5.33851e-08, 0.707107)
|
||||||
|
bones/2/position = Vector3(-1.02567e-14, 0.846554, 0.1197)
|
||||||
|
bones/2/rotation = Quaternion(0.707107, -5.33851e-08, -5.33851e-08, 0.707107)
|
||||||
|
bones/3/position = Vector3(0.108782, 0.452581, 0.687795)
|
||||||
|
bones/3/rotation = Quaternion(0.708387, -0.0281323, 0.0282804, 0.704696)
|
||||||
|
bones/3/scale = Vector3(1.00001, 1, 1)
|
||||||
|
bones/4/position = Vector3(1.15857e-08, -1.0361e-07, -2.15004e-08)
|
||||||
|
bones/5/rotation = Quaternion(-0.00149004, -2.66694e-11, 0.000911234, 0.999999)
|
||||||
|
bones/6/rotation = Quaternion(-6.46946e-08, 0.00149002, 0.999999, -0.000911244)
|
||||||
|
bones/6/scale = Vector3(1, 0.960708, 1)
|
||||||
|
bones/7/position = Vector3(0.115194, 0.455178, 0.60763)
|
||||||
|
bones/7/rotation = Quaternion(0.689093, 0.00521478, 0.724088, -0.0286373)
|
||||||
|
bones/7/scale = Vector3(1, 1, 1)
|
||||||
|
bones/8/position = Vector3(0.183301, 0.0320629, 0.168592)
|
||||||
|
bones/9/position = Vector3(0.139509, 0.772434, -0.0330334)
|
||||||
|
bones/9/rotation = Quaternion(0.998093, 0.0408963, 0.0408964, 0.0215775)
|
||||||
|
bones/11/rotation = Quaternion(0.0416217, -0.0157768, 0.0184478, 0.998839)
|
||||||
|
bones/11/scale = Vector3(1, 1, 1)
|
||||||
|
bones/12/rotation = Quaternion(-0.652949, -0.0462559, 0.0164149, 0.75581)
|
||||||
|
bones/13/rotation = Quaternion(0.708387, 0.0281323, -0.0282804, 0.704696)
|
||||||
|
bones/13/scale = Vector3(1.00001, 1, 1)
|
||||||
|
bones/14/position = Vector3(-1.15858e-08, -1.06171e-07, -2.14932e-08)
|
||||||
|
bones/15/rotation = Quaternion(-0.00149002, 2.31711e-11, -0.000911263, 0.999999)
|
||||||
|
bones/16/rotation = Quaternion(6.29591e-08, 0.00149002, 0.999999, 0.000911252)
|
||||||
|
bones/16/scale = Vector3(1, 0.960708, 1)
|
||||||
|
bones/17/position = Vector3(-0.115194, 0.455178, 0.60763)
|
||||||
|
bones/17/rotation = Quaternion(0.724088, -0.0286372, 0.689094, 0.00521482)
|
||||||
|
bones/17/scale = Vector3(1, 1, 1)
|
||||||
|
bones/18/position = Vector3(-0.183301, 0.0320629, 0.168592)
|
||||||
|
bones/19/position = Vector3(-0.139509, 0.772435, -0.0330334)
|
||||||
|
bones/19/rotation = Quaternion(0.998093, -0.0408963, -0.0408964, 0.0215775)
|
||||||
|
bones/21/rotation = Quaternion(0.0416217, 0.0157768, -0.0184478, 0.998839)
|
||||||
|
bones/21/scale = Vector3(1, 1, 1)
|
||||||
|
bones/22/rotation = Quaternion(-0.652949, 0.0462559, -0.0164149, 0.75581)
|
||||||
|
bones/23/rotation = Quaternion(-0.000598773, 0.707794, -0.706419, -0.000599891)
|
||||||
|
bones/23/scale = Vector3(1, 1, 1)
|
||||||
|
bones/24/position = Vector3(4.38533e-08, -1.0943e-08, 8.31342e-08)
|
||||||
|
bones/25/rotation = Quaternion(-0.167863, -2.81581e-09, 0.132465, 0.97687)
|
||||||
|
bones/26/rotation = Quaternion(-7.64918e-09, 0.167863, 0.97687, -0.132465)
|
||||||
|
bones/26/scale = Vector3(1, 0.752002, 1)
|
||||||
|
bones/27/position = Vector3(0.281916, 0.860277, -0.0319441)
|
||||||
|
bones/27/rotation = Quaternion(-0.00491779, 0.00628552, -0.706444, 0.707724)
|
||||||
|
bones/29/rotation = Quaternion(0.0146383, 1.06669e-06, 9.14342e-05, 0.999893)
|
||||||
|
bones/30/rotation = Quaternion(-0.00671585, 1.88861e-09, -0.000988972, 0.999977)
|
||||||
|
bones/31/position = Vector3(0.497069, 0.241987, 0.244877)
|
||||||
|
bones/31/rotation = Quaternion(0.843504, -0.245402, -0.115874, 0.463522)
|
||||||
|
bones/34/position = Vector3(0.431412, 0.341106, 0.148042)
|
||||||
|
bones/34/rotation = Quaternion(0.609001, -0.646138, 0.171796, 0.426743)
|
||||||
|
bones/37/scale = Vector3(1, 1, 1)
|
||||||
|
bones/38/position = Vector3(-4.38533e-08, -1.07102e-08, 8.31342e-08)
|
||||||
|
bones/39/rotation = Quaternion(-0.167863, 1.92891e-09, -0.132465, 0.97687)
|
||||||
|
bones/40/rotation = Quaternion(-1.37198e-07, 0.167863, 0.97687, 0.132465)
|
||||||
|
bones/40/scale = Vector3(1, 0.752002, 1)
|
||||||
|
bones/41/position = Vector3(-0.281916, 0.860277, -0.0319441)
|
||||||
|
bones/41/rotation = Quaternion(-0.00491779, -0.00628552, 0.706444, 0.707724)
|
||||||
|
bones/43/rotation = Quaternion(0.0146383, -1.06669e-06, -9.14342e-05, 0.999893)
|
||||||
|
bones/44/rotation = Quaternion(-0.00671585, -1.88861e-09, 0.000988972, 0.999977)
|
||||||
|
bones/45/position = Vector3(-0.497069, 0.241987, 0.244877)
|
||||||
|
bones/45/rotation = Quaternion(0.843504, 0.245402, 0.115874, 0.463522)
|
||||||
|
bones/48/position = Vector3(-0.431412, 0.341106, 0.148042)
|
||||||
|
bones/48/rotation = Quaternion(0.609001, 0.646138, -0.171796, 0.426743)
|
||||||
|
bones/53/position = Vector3(2.33451e-15, 0.339267, 0.846554)
|
||||||
|
bones/53/rotation = Quaternion(1, -8.60132e-15, -7.54979e-08, -3.46312e-07)
|
||||||
|
bones/54/position = Vector3(1.57101e-14, 0.229484, -4.30948e-08)
|
||||||
|
bones/54/rotation = Quaternion(-2.59734e-07, 3.17865e-08, 1.13533e-14, 1)
|
||||||
|
bones/55/position = Vector3(-1.28961e-14, 0.229484, -1.08855e-07)
|
||||||
|
bones/55/rotation = Quaternion(-3.46312e-07, -7.10543e-15, 1.75445e-14, 1)
|
||||||
|
bones/62/rotation = Quaternion(0.690501, 0.0578362, 5.94173e-08, 0.721016)
|
||||||
|
bones/63/rotation = Quaternion(-0.0431732, -0.00602341, -0.00197977, 0.999048)
|
||||||
|
bones/64/rotation = Quaternion(0.120842, -0.0142614, 0.0196429, 0.992375)
|
||||||
|
bones/64/scale = Vector3(1, 1, 1)
|
||||||
|
bones/65/position = Vector3(-3.52642e-08, 0.386825, -1.78805e-08)
|
||||||
|
bones/65/rotation = Quaternion(-0.679739, -0.0421004, 0.0208819, 0.731947)
|
||||||
|
bones/66/rotation = Quaternion(-0.0932356, -7.75849e-08, 0.00172522, 0.995643)
|
||||||
|
bones/67/rotation = Quaternion(0.0549193, -2.74158e-05, -0.00101757, 0.99849)
|
||||||
|
bones/67/scale = Vector3(1, 1, 1)
|
||||||
|
bones/68/position = Vector3(1.36182e-08, 0.143821, -1.3902e-09)
|
||||||
|
bones/69/rotation = Quaternion(0.0549193, -2.74866e-05, -0.00101776, 0.99849)
|
||||||
|
bones/69/scale = Vector3(1, 1, 1)
|
||||||
|
bones/70/position = Vector3(1.36182e-08, 0.143821, -1.3902e-09)
|
||||||
|
bones/70/rotation = Quaternion(7.4541e-09, -0.000163676, -4.41826e-11, 1)
|
||||||
|
bones/71/rotation = Quaternion(0.266022, 0.0610619, -0.00659357, 0.962009)
|
||||||
|
bones/71/scale = Vector3(1, 1, 1)
|
||||||
|
bones/72/rotation = Quaternion(0.466077, 0.0558265, -0.0107742, 0.882915)
|
||||||
|
bones/72/scale = Vector3(1, 1, 1)
|
||||||
|
bones/74/position = Vector3(-2.60188e-08, 0.128942, -1.53668e-08)
|
||||||
|
bones/74/rotation = Quaternion(-7.39819e-08, 0.0131227, 7.91839e-09, 0.999914)
|
||||||
|
bones/75/position = Vector3(-3.25963e-09, -4.61587e-08, 9.31323e-10)
|
||||||
|
bones/76/position = Vector3(-6.05361e-09, -1.19326e-08, -9.31322e-10)
|
||||||
|
bones/76/rotation = Quaternion(2.82307e-08, 3.87082e-09, 1.89466e-08, 1)
|
||||||
|
bones/77/position = Vector3(-3.25963e-09, 0.257883, -7.45058e-09)
|
||||||
|
bones/77/rotation = Quaternion(1.61607e-06, 0.00950054, 4.04271e-07, 0.999955)
|
||||||
|
bones/78/position = Vector3(3.6438e-08, 6.0536e-09, -1.86265e-09)
|
||||||
|
bones/79/position = Vector3(3.31784e-08, 1.47848e-08, -9.31323e-10)
|
||||||
|
bones/79/rotation = Quaternion(7.70669e-08, -8.64382e-09, -4.5431e-08, 1)
|
||||||
|
bones/80/position = Vector3(-3.69553e-10, 1.48274e-08, -3.17964e-09)
|
||||||
|
bones/80/rotation = Quaternion(-0.0549733, 0.0162937, -0.00904719, 0.998314)
|
||||||
|
bones/81/rotation = Quaternion(1.65871e-08, 0.707107, -1.75338e-08, 0.707107)
|
||||||
|
bones/82/position = Vector3(1.52717e-08, -3.24731e-08, -5.63805e-09)
|
||||||
|
bones/82/rotation = Quaternion(-0.0189144, 0.0160251, -0.00838864, 0.999658)
|
||||||
|
bones/83/position = Vector3(-3.84171e-09, 2.49001e-08, -6.66134e-16)
|
||||||
|
bones/84/rotation = Quaternion(1.80612e-06, 0.00574695, 1.25855e-07, 0.999984)
|
||||||
|
bones/85/rotation = Quaternion(-1.14052e-06, -6.17004e-09, -6.2806e-08, 1)
|
||||||
|
bones/86/rotation = Quaternion(8.14906e-10, 2.85218e-09, -2.73576e-09, 1)
|
||||||
|
bones/86/scale = Vector3(1, 0.999999, 1)
|
||||||
|
bones/87/rotation = Quaternion(-2.04891e-08, -1.47265e-08, -1.04134e-07, 1)
|
||||||
|
bones/88/rotation = Quaternion(0.120623, -0.0143199, 0.020949, 0.992374)
|
||||||
|
bones/88/scale = Vector3(1, 1, 1)
|
||||||
|
bones/89/rotation = Quaternion(7.7649e-08, -5.07862e-08, -1.07335e-07, 1)
|
||||||
|
bones/89/scale = Vector3(1, 1, 1)
|
||||||
|
bones/90/rotation = Quaternion(-5.47734e-08, 5.60831e-08, 1.09401e-07, 1)
|
||||||
|
bones/90/scale = Vector3(1, 1, 1)
|
||||||
|
bones/91/rotation = Quaternion(-0.679859, -0.0452708, 0.0165278, 0.731757)
|
||||||
|
bones/91/scale = Vector3(1, 1, 1)
|
||||||
|
bones/92/rotation = Quaternion(-0.0932345, 4.34894e-06, 0.0017757, 0.995643)
|
||||||
|
bones/92/scale = Vector3(1, 0.999999, 1)
|
||||||
|
bones/93/position = Vector3(-2.11876e-08, 0.107384, 2.79397e-09)
|
||||||
|
bones/93/rotation = Quaternion(-2.02721e-08, 0.00440498, 6.52444e-08, 0.99999)
|
||||||
|
bones/94/position = Vector3(2.00234e-08, -2.4098e-08, -1.86264e-09)
|
||||||
|
bones/95/position = Vector3(2.67755e-08, -5.59958e-08, -9.31323e-10)
|
||||||
|
bones/95/rotation = Quaternion(-5.12228e-09, -3.28873e-08, 1.04774e-08, 1)
|
||||||
|
bones/96/position = Vector3(-2.44472e-09, 0.214768, 4.65661e-09)
|
||||||
|
bones/96/rotation = Quaternion(4.11189e-07, 0.00334685, 8.15521e-08, 0.999994)
|
||||||
|
bones/97/position = Vector3(-1.01281e-08, -4.34229e-08, -9.31322e-10)
|
||||||
|
bones/98/position = Vector3(4.65675e-10, -1.52504e-08, -6.66134e-16)
|
||||||
|
bones/98/rotation = Quaternion(-6.89178e-08, -1.68802e-08, -2.25846e-08, 1)
|
||||||
|
bones/99/rotation = Quaternion(1.87195e-06, 0.00574696, 1.61908e-07, 0.999984)
|
||||||
|
bones/100/rotation = Quaternion(-0.0431732, -0.00602341, -0.00197977, 0.999048)
|
||||||
|
bones/101/rotation = Quaternion(0.120842, -0.0142614, 0.0196429, 0.992375)
|
||||||
|
bones/101/scale = Vector3(1, 1, 1)
|
||||||
|
bones/102/rotation = Quaternion(0.0660117, -0.00834247, 0.0111363, 0.997722)
|
||||||
|
bones/102/scale = Vector3(1, 0.993487, 1)
|
||||||
|
bones/103/rotation = Quaternion(0.0226449, -0.00878254, 0.0102272, 0.999653)
|
||||||
|
bones/103/scale = Vector3(1, 0.993487, 1)
|
||||||
|
bones/104/rotation = Quaternion(0.690501, -0.0578361, -1.03334e-07, 0.721016)
|
||||||
|
bones/104/scale = Vector3(1, 1, 1)
|
||||||
|
bones/105/rotation = Quaternion(-0.0431733, 0.00602337, 0.00197969, 0.999047)
|
||||||
|
bones/106/rotation = Quaternion(0.120843, 0.0142614, -0.0196429, 0.992375)
|
||||||
|
bones/106/scale = Vector3(1, 1, 1)
|
||||||
|
bones/107/position = Vector3(-3.67291e-09, 0.386825, -7.10854e-09)
|
||||||
|
bones/107/rotation = Quaternion(-0.679739, 0.0421005, -0.0208819, 0.731947)
|
||||||
|
bones/108/rotation = Quaternion(-0.0932356, 7.749e-08, -0.00172522, 0.995643)
|
||||||
|
bones/109/scale = Vector3(1, 1, 1)
|
||||||
|
bones/111/rotation = Quaternion(0.0549193, 2.74856e-05, 0.00101776, 0.99849)
|
||||||
|
bones/111/scale = Vector3(1, 1, 1)
|
||||||
|
bones/113/rotation = Quaternion(0.266022, -0.0610619, 0.00659351, 0.962009)
|
||||||
|
bones/113/scale = Vector3(1, 1, 1)
|
||||||
|
bones/114/rotation = Quaternion(0.466077, -0.0558265, 0.0107742, 0.882915)
|
||||||
|
bones/114/scale = Vector3(1, 1, 1)
|
||||||
|
bones/116/position = Vector3(8.32371e-09, 0.128941, 9.31326e-10)
|
||||||
|
bones/116/rotation = Quaternion(-2.97018e-08, -0.0131227, 3.48104e-08, 0.999914)
|
||||||
|
bones/117/position = Vector3(-1.86264e-09, -3.89991e-08, 3.72529e-09)
|
||||||
|
bones/118/position = Vector3(-1.16412e-09, -2.73576e-09, 5.58794e-09)
|
||||||
|
bones/118/rotation = Quaternion(5.52973e-09, 8.99308e-09, -5.14847e-08, 1)
|
||||||
|
bones/119/position = Vector3(-1.74622e-09, 0.257883, 7.91624e-09)
|
||||||
|
bones/119/rotation = Quaternion(1.61936e-06, -0.00950054, -3.3526e-07, 0.999955)
|
||||||
|
bones/120/position = Vector3(-8.26549e-09, -1.24564e-08, -2.79397e-09)
|
||||||
|
bones/121/position = Vector3(-9.66248e-09, -1.04773e-09, -2.79397e-09)
|
||||||
|
bones/121/rotation = Quaternion(9.01055e-08, 1.89175e-08, -1.09431e-08, 1)
|
||||||
|
bones/122/position = Vector3(-4.20612e-09, -3.23389e-08, -2.99743e-09)
|
||||||
|
bones/122/rotation = Quaternion(-0.0549734, -0.0162937, 0.00904716, 0.998314)
|
||||||
|
bones/123/scale = Vector3(1, 1, 1)
|
||||||
|
bones/124/position = Vector3(-5.77858e-09, -4.56626e-08, -4.87866e-09)
|
||||||
|
bones/124/rotation = Quaternion(-0.0189144, -0.0160251, 0.00838864, 0.999658)
|
||||||
|
bones/125/position = Vector3(-5.3551e-09, 8.49764e-09, 2.3283e-10)
|
||||||
|
bones/126/rotation = Quaternion(1.7499e-06, -0.00574691, -1.24082e-07, 0.999984)
|
||||||
|
bones/127/rotation = Quaternion(-1.05484e-06, 1.25147e-08, 7.22939e-08, 1)
|
||||||
|
bones/127/scale = Vector3(0.999999, 1, 1)
|
||||||
|
bones/128/rotation = Quaternion(2.1304e-08, 1.57161e-09, 6.2224e-08, 1)
|
||||||
|
bones/129/rotation = Quaternion(5.12227e-09, 1.30967e-08, -6.92671e-09, 1)
|
||||||
|
bones/129/scale = Vector3(1, 0.999999, 1)
|
||||||
|
bones/130/rotation = Quaternion(0.120623, 0.0143199, -0.0209492, 0.992374)
|
||||||
|
bones/130/scale = Vector3(1, 0.999999, 1)
|
||||||
|
bones/131/rotation = Quaternion(2.60188e-08, 5.09317e-08, 9.1124e-08, 1)
|
||||||
|
bones/132/rotation = Quaternion(3.7253e-09, -5.59667e-08, -5.02914e-08, 1)
|
||||||
|
bones/133/rotation = Quaternion(-0.679859, 0.0452709, -0.0165278, 0.731757)
|
||||||
|
bones/134/rotation = Quaternion(-0.0932345, -4.33605e-06, -0.0017757, 0.995643)
|
||||||
|
bones/135/position = Vector3(7.45058e-09, 0.107384, 1.86265e-09)
|
||||||
|
bones/135/rotation = Quaternion(-4.07517e-08, -0.00440498, 8.45847e-08, 0.99999)
|
||||||
|
bones/136/position = Vector3(3.25963e-09, 1.69966e-08, -1.86264e-09)
|
||||||
|
bones/137/position = Vector3(2.32825e-10, -1.32713e-08, -2.22045e-16)
|
||||||
|
bones/137/rotation = Quaternion(4.17931e-08, -8.44012e-08, -3.69037e-08, 1)
|
||||||
|
bones/138/position = Vector3(2.56114e-09, 0.214768, 4.65661e-09)
|
||||||
|
bones/138/rotation = Quaternion(-9.24356e-08, -0.00334687, 8.69841e-08, 0.999994)
|
||||||
|
bones/139/position = Vector3(1.04774e-08, -2.70084e-08, -2.79397e-09)
|
||||||
|
bones/140/position = Vector3(-2.32846e-10, -3.49246e-10, -1.86265e-09)
|
||||||
|
bones/140/rotation = Quaternion(2.51457e-08, 1.36206e-08, 1.45521e-09, 1)
|
||||||
|
bones/141/rotation = Quaternion(1.7649e-06, -0.00574693, -1.73661e-07, 0.999984)
|
||||||
|
bones/142/rotation = Quaternion(-0.0431733, 0.00602337, 0.00197969, 0.999047)
|
||||||
|
bones/143/rotation = Quaternion(0.120843, 0.0142614, -0.0196429, 0.992375)
|
||||||
|
bones/143/scale = Vector3(1, 1, 1)
|
||||||
|
bones/144/rotation = Quaternion(0.0660118, 0.00834246, -0.0111363, 0.997722)
|
||||||
|
bones/144/scale = Vector3(1, 0.993487, 1)
|
||||||
|
bones/145/rotation = Quaternion(0.0226449, 0.00878252, -0.0102273, 0.999653)
|
||||||
|
bones/145/scale = Vector3(1, 0.993487, 1)
|
||||||
|
bones/147/rotation = Quaternion(-0.219003, 0.341639, -0.369336, 0.836009)
|
||||||
|
bones/148/rotation = Quaternion(0.81522, 7.43909e-05, 5.32059e-05, 0.579152)
|
||||||
|
bones/149/position = Vector3(-1.07735e-07, 0.494896, 3.85158e-05)
|
||||||
|
bones/149/rotation = Quaternion(0.107228, 0.83968, 0.051806, 0.529864)
|
||||||
|
bones/151/position = Vector3(1.36807e-08, 2.24339e-08, -1.37479e-08)
|
||||||
|
bones/151/rotation = Quaternion(-0.0732567, -7.13131e-05, 0.00495183, 0.997301)
|
||||||
|
bones/151/scale = Vector3(1, 1, 1)
|
||||||
|
bones/152/rotation = Quaternion(1.02442e-08, 6.74359e-06, -3.34531e-08, 1)
|
||||||
|
bones/153/rotation = Quaternion(0.00456637, 6.17241e-07, 0.000672086, 0.999989)
|
||||||
|
bones/153/scale = Vector3(1, 1, 1)
|
||||||
|
bones/154/position = Vector3(4.55475e-09, 3.55358e-08, 7.33417e-09)
|
||||||
|
bones/166/rotation = Quaternion(0.0388408, 0.0198681, 0.524688, 0.850176)
|
||||||
|
bones/166/scale = Vector3(1, 1, 1)
|
||||||
|
bones/171/rotation = Quaternion(4.65661e-10, 4.36557e-08, 5.31145e-09, 1)
|
||||||
|
bones/173/rotation = Quaternion(-3.21306e-08, 1.49012e-08, 1.10622e-06, 1)
|
||||||
|
bones/177/position = Vector3(-3.56486e-08, 0.164965, 1.28221e-05)
|
||||||
|
bones/177/rotation = Quaternion(2.35277e-05, 0.328324, 8.2827e-06, 0.944565)
|
||||||
|
bones/178/position = Vector3(0.0658124, -0.0797506, -0.0365105)
|
||||||
|
bones/179/position = Vector3(0.0658124, -0.0797506, -0.0365105)
|
||||||
|
bones/179/rotation = Quaternion(-0.0693663, 1.49464e-07, -0.122064, 0.990095)
|
||||||
|
bones/180/position = Vector3(-4.18369e-08, 0.32993, 2.56432e-05)
|
||||||
|
bones/180/rotation = Quaternion(1.95979e-05, 0.621253, 1.54677e-05, 0.78361)
|
||||||
|
bones/181/position = Vector3(0.0811552, -0.0461419, 0.0126689)
|
||||||
|
bones/182/position = Vector3(0.0811552, -0.0461419, 0.0126689)
|
||||||
|
bones/182/rotation = Quaternion(-0.0149116, 1.19449e-07, 0.0894791, 0.995877)
|
||||||
|
bones/183/position = Vector3(-6.65803e-08, 5.7527e-08, -4.60477e-08)
|
||||||
|
bones/183/rotation = Quaternion(-0.546081, -0.000982046, -0.133186, 0.827076)
|
||||||
|
bones/183/scale = Vector3(1, 1, 1)
|
||||||
|
bones/184/rotation = Quaternion(-0.00756344, -7.25003e-07, -4.72928e-05, 0.999971)
|
||||||
|
bones/184/scale = Vector3(1, 1, 1)
|
||||||
|
bones/185/position = Vector3(3.64525e-09, 4.06653e-08, 8.95234e-08)
|
||||||
|
bones/186/rotation = Quaternion(-4.92301e-08, -0.342104, -2.11345e-08, 0.939662)
|
||||||
|
bones/187/rotation = Quaternion(-0.0581099, -2.91537e-09, 0.12446, 0.990522)
|
||||||
|
bones/187/scale = Vector3(1, 1.18887, 1)
|
||||||
|
bones/188/rotation = Quaternion(0.0479844, 0.0270955, -0.104993, 0.992945)
|
||||||
|
bones/188/scale = Vector3(0.994011, 0.864314, 0.99845)
|
||||||
|
bones/189/rotation = Quaternion(0.118834, 0.0246305, -0.201641, 0.971912)
|
||||||
|
bones/189/scale = Vector3(0.997495, 0.906595, 0.99911)
|
||||||
|
bones/190/rotation = Quaternion(0.29514, 0.0749761, -0.300512, 0.90386)
|
||||||
|
bones/190/scale = Vector3(1.02235, 0.709612, 1.0299)
|
||||||
|
bones/191/rotation = Quaternion(0.32316, 0.116134, -0.10982, 0.932749)
|
||||||
|
bones/191/scale = Vector3(1.0094, 1.54739, 1.20044)
|
||||||
|
bones/192/rotation = Quaternion(0.173214, 0.179398, 0.0447759, 0.967372)
|
||||||
|
bones/192/scale = Vector3(0.996346, 1.17857, 0.985403)
|
||||||
|
bones/193/rotation = Quaternion(-0.0862938, 0.181149, -0.0279599, 0.979263)
|
||||||
|
bones/193/scale = Vector3(0.998068, 0.720967, 0.994873)
|
||||||
|
bones/194/position = Vector3(1.85901e-08, 0.176364, 1.38534e-08)
|
||||||
|
bones/194/rotation = Quaternion(-9.99147e-08, -0.264142, 3.42653e-08, 0.964484)
|
||||||
|
bones/195/position = Vector3(-0.0470743, 0.0253987, -0.0322391)
|
||||||
|
bones/196/position = Vector3(-0.0470743, 0.0253987, -0.0322391)
|
||||||
|
bones/196/rotation = Quaternion(-0.0494305, -3.47834e-08, 0.0703945, 0.996294)
|
||||||
|
bones/197/position = Vector3(1.38389e-08, 0.352729, -3.46918e-08)
|
||||||
|
bones/197/rotation = Quaternion(-1.47716e-07, -0.164722, -5.48462e-08, 0.98634)
|
||||||
|
bones/198/position = Vector3(-0.045366, 0.0281271, -0.0482924)
|
||||||
|
bones/199/position = Vector3(-0.045366, 0.028127, -0.0482924)
|
||||||
|
bones/199/rotation = Quaternion(0.0621149, -6.1895e-08, -0.0597352, 0.99628)
|
||||||
|
bones/200/rotation = Quaternion(-0.136841, -0.338861, 0.0118695, 0.930756)
|
||||||
|
bones/201/rotation = Quaternion(-0.219003, 0.341639, -0.369336, 0.836009)
|
||||||
|
bones/202/rotation = Quaternion(0.81522, 7.43909e-05, 5.32059e-05, 0.579152)
|
||||||
|
bones/203/rotation = Quaternion(0.501391, 0.805919, -0.0957336, 0.299897)
|
||||||
|
bones/203/scale = Vector3(1, 0.57981, 1)
|
||||||
|
bones/204/rotation = Quaternion(-0.503914, 0.495087, 0.503976, 0.496959)
|
||||||
|
bones/205/rotation = Quaternion(-0.219003, -0.341639, 0.369336, 0.836009)
|
||||||
|
bones/206/rotation = Quaternion(0.81522, -7.44085e-05, -5.31957e-05, 0.579152)
|
||||||
|
bones/207/position = Vector3(-1.15469e-08, 0.494896, 3.84836e-05)
|
||||||
|
bones/207/rotation = Quaternion(0.107228, -0.83968, -0.051806, 0.529864)
|
||||||
|
bones/209/position = Vector3(-1.33819e-08, -1.53429e-08, 2.13007e-08)
|
||||||
|
bones/209/rotation = Quaternion(-0.0732567, 7.13137e-05, -0.00495196, 0.997301)
|
||||||
|
bones/209/scale = Vector3(1, 1, 1)
|
||||||
|
bones/210/rotation = Quaternion(1.02442e-08, -6.74359e-06, 3.34531e-08, 1)
|
||||||
|
bones/211/rotation = Quaternion(0.00456637, -6.17241e-07, -0.000672086, 0.999989)
|
||||||
|
bones/211/scale = Vector3(1, 1, 1)
|
||||||
|
bones/212/position = Vector3(2.54804e-08, 1.29512e-08, 1.10595e-08)
|
||||||
|
bones/224/rotation = Quaternion(0.0388408, -0.0198681, -0.524688, 0.850176)
|
||||||
|
bones/224/scale = Vector3(1, 1, 1)
|
||||||
|
bones/229/rotation = Quaternion(4.65661e-10, -4.36557e-08, -5.31145e-09, 1)
|
||||||
|
bones/231/rotation = Quaternion(-3.21306e-08, -1.49012e-08, -1.10622e-06, 1)
|
||||||
|
bones/235/position = Vector3(2.81981e-08, 0.164965, 1.28519e-05)
|
||||||
|
bones/235/rotation = Quaternion(2.36268e-05, -0.328324, -8.07753e-06, 0.944565)
|
||||||
|
bones/236/position = Vector3(-0.0658125, -0.0797506, -0.0365105)
|
||||||
|
bones/237/position = Vector3(-0.0658125, -0.0797506, -0.0365105)
|
||||||
|
bones/237/rotation = Quaternion(-0.0693662, -1.45787e-07, 0.122063, 0.990095)
|
||||||
|
bones/238/position = Vector3(6.7914e-08, 0.32993, 2.5632e-05)
|
||||||
|
bones/238/rotation = Quaternion(1.99667e-05, -0.621253, -1.54502e-05, 0.78361)
|
||||||
|
bones/239/position = Vector3(-0.0811552, -0.0461419, 0.0126689)
|
||||||
|
bones/240/position = Vector3(-0.0811551, -0.0461419, 0.0126689)
|
||||||
|
bones/240/rotation = Quaternion(-0.0149117, -1.07845e-07, -0.0894789, 0.995877)
|
||||||
|
bones/241/position = Vector3(-7.9269e-09, 7.26937e-08, -1.27491e-08)
|
||||||
|
bones/241/rotation = Quaternion(-0.546081, 0.00098205, 0.133186, 0.827076)
|
||||||
|
bones/241/scale = Vector3(1, 1, 1)
|
||||||
|
bones/242/rotation = Quaternion(-0.00756344, 7.24974e-07, 4.72928e-05, 0.999971)
|
||||||
|
bones/242/scale = Vector3(1, 1, 1)
|
||||||
|
bones/243/position = Vector3(5.59594e-08, 2.55313e-08, 2.23517e-08)
|
||||||
|
bones/244/rotation = Quaternion(-2.42667e-08, 0.342104, 3.48847e-09, 0.939662)
|
||||||
|
bones/245/rotation = Quaternion(-0.0581097, 3.55013e-09, -0.12446, 0.990522)
|
||||||
|
bones/245/scale = Vector3(1, 1.18887, 1)
|
||||||
|
bones/246/rotation = Quaternion(0.0433332, 0.0270641, 0.102198, 0.993451)
|
||||||
|
bones/246/scale = Vector3(0.993998, 0.863624, 0.999039)
|
||||||
|
bones/247/rotation = Quaternion(0.0964902, -0.0245834, 0.221737, 0.970009)
|
||||||
|
bones/247/scale = Vector3(0.996973, 0.910928, 0.99941)
|
||||||
|
bones/248/rotation = Quaternion(0.264407, -0.0749736, 0.322956, 0.905631)
|
||||||
|
bones/248/scale = Vector3(1.02527, 0.709419, 1.02345)
|
||||||
|
bones/249/rotation = Quaternion(0.316387, -0.116425, 0.149686, 0.929483)
|
||||||
|
bones/249/scale = Vector3(1.02182, 1.5388, 1.19392)
|
||||||
|
bones/250/rotation = Quaternion(0.171979, -0.179688, -0.0231134, 0.968298)
|
||||||
|
bones/250/scale = Vector3(0.99805, 1.1723, 0.984874)
|
||||||
|
bones/251/rotation = Quaternion(-0.0961541, -0.232497, 0.00881001, 0.967792)
|
||||||
|
bones/251/scale = Vector3(0.998816, 0.728407, 0.993272)
|
||||||
|
bones/252/position = Vector3(1.26696e-07, 0.176364, -8.87085e-08)
|
||||||
|
bones/252/rotation = Quaternion(-2.3399e-09, 0.264142, -1.32725e-07, 0.964484)
|
||||||
|
bones/253/position = Vector3(0.0470742, 0.0253987, -0.0322391)
|
||||||
|
bones/254/position = Vector3(0.0470742, 0.0253988, -0.0322391)
|
||||||
|
bones/254/rotation = Quaternion(-0.0494307, 2.39894e-08, -0.0703947, 0.996294)
|
||||||
|
bones/255/position = Vector3(6.06669e-08, 0.352729, -3.10829e-08)
|
||||||
|
bones/255/rotation = Quaternion(4.47978e-08, 0.164722, -1.07918e-07, 0.98634)
|
||||||
|
bones/256/position = Vector3(0.0453662, 0.0281271, -0.0482923)
|
||||||
|
bones/257/position = Vector3(0.0453661, 0.028127, -0.0482923)
|
||||||
|
bones/257/rotation = Quaternion(0.0621146, 7.41652e-08, 0.0597349, 0.99628)
|
||||||
|
bones/258/rotation = Quaternion(-0.136841, 0.338862, -0.0118696, 0.930756)
|
||||||
|
bones/259/rotation = Quaternion(-0.219003, -0.341639, 0.369336, 0.836009)
|
||||||
|
bones/260/rotation = Quaternion(0.81522, -7.44085e-05, -5.31957e-05, 0.579152)
|
||||||
|
bones/261/rotation = Quaternion(0.501391, -0.805919, 0.0957336, 0.299897)
|
||||||
|
bones/261/scale = Vector3(1, 0.57981, 1)
|
||||||
|
bones/262/position = Vector3(-1.21964e-08, 0.0616701, -0.139511)
|
||||||
|
bones/262/rotation = Quaternion(-0.695299, 3.14162e-08, 3.03925e-08, 0.71872)
|
||||||
|
bones/263/position = Vector3(5.10703e-15, 0.230976, -1.16472e-08)
|
||||||
|
bones/263/rotation = Quaternion(-0.0311281, 1.19152e-07, -3.71076e-09, 0.999515)
|
||||||
|
bones/264/position = Vector3(1.65165e-15, -6.35167e-08, -6.64239e-09)
|
||||||
|
bones/264/rotation = Quaternion(0.0145709, -1.19197e-07, 1.73699e-09, 0.999894)
|
||||||
|
bones/266/position = Vector3(1.2315e-16, 0.262514, -1.86264e-09)
|
||||||
|
bones/266/rotation = Quaternion(9.31323e-10, -5.40167e-08, 6.35104e-15, 1)
|
||||||
|
bones/268/position = Vector3(7.72315e-15, 2.5495e-08, -7.45058e-09)
|
||||||
|
bones/268/rotation = Quaternion(-3.72529e-08, -1.00583e-07, 7.56064e-15, 1)
|
||||||
|
bones/269/rotation = Quaternion(7.45058e-09, 1.00583e-07, -3.46469e-16, 1)
|
||||||
|
bones/270/rotation = Quaternion(-0.0311281, 1.19152e-07, -3.71076e-09, 0.999515)
|
||||||
|
bones/272/position = Vector3(-1.21964e-08, 0.0616701, -0.139511)
|
||||||
|
bones/272/rotation = Quaternion(-0.695299, 3.14162e-08, 3.03925e-08, 0.71872)
|
||||||
|
bones/273/position = Vector3(5.10703e-15, 0.230976, -1.16472e-08)
|
||||||
|
bones/273/rotation = Quaternion(-0.0311281, 1.19152e-07, -3.71076e-09, 0.999515)
|
||||||
|
bones/277/rotation = Quaternion(2.59734e-07, -8.74228e-08, 8.2323e-15, 1)
|
||||||
|
bones/277/scale = Vector3(1, 1, 1)
|
||||||
|
bones/278/rotation = Quaternion(-3.89601e-07, -7.10543e-15, 1.75954e-14, 1)
|
||||||
|
bones/279/rotation = Quaternion(-1.29867e-07, -3.55271e-15, 1.13533e-14, 1)
|
||||||
|
bones/281/rotation = Quaternion(8.74228e-08, 8.65779e-08, 1, 1.69407e-21)
|
||||||
|
bones/283/rotation = Quaternion(0.995472, -1.03344e-08, -0.0184201, -0.0932516)
|
||||||
|
bones/283/scale = Vector3(1, 1, 0.999995)
|
||||||
|
bones/284/rotation = Quaternion(-0.00444672, 0.995644, -0.0931348, -0.000255377)
|
||||||
|
bones/284/scale = Vector3(1, 1, 1)
|
||||||
|
bones/285/rotation = Quaternion(-0.0732337, 0.000863981, 0.0118871, 0.997244)
|
||||||
|
bones/285/scale = Vector3(1, 1, 1)
|
||||||
|
bones/288/rotation = Quaternion(-0.0932358, -3.07698e-08, 0.00172522, 0.995643)
|
||||||
|
bones/289/rotation = Quaternion(3.25963e-08, 2.17263e-15, 1, 1.39045e-15)
|
||||||
|
bones/290/rotation = Quaternion(3.1665e-08, -1.70334e-15, 1, 4.4403e-16)
|
||||||
|
bones/291/position = Vector3(0.000173845, 0.290832, -6.4288e-06)
|
||||||
|
bones/291/rotation = Quaternion(-1.03274e-07, -0.0932359, 0.995643, 0.00172523)
|
||||||
|
bones/291/scale = Vector3(1, 1, 1)
|
||||||
|
bones/292/rotation = Quaternion(-1.39728e-07, 4.10728e-09, 1, -1.16415e-10)
|
||||||
|
bones/293/rotation = Quaternion(0.995472, 1.03344e-08, 0.0184201, -0.0932516)
|
||||||
|
bones/293/scale = Vector3(1, 1, 0.999995)
|
||||||
|
bones/294/rotation = Quaternion(-0.0931348, -0.000255354, -0.00444673, 0.995644)
|
||||||
|
bones/294/scale = Vector3(1, 1, 1)
|
||||||
|
bones/295/rotation = Quaternion(-0.0732337, -0.000863981, -0.0118871, 0.997244)
|
||||||
|
bones/295/scale = Vector3(1, 1, 1)
|
||||||
|
bones/298/rotation = Quaternion(-0.0932358, 3.07698e-08, -0.00172522, 0.995643)
|
||||||
|
bones/299/rotation = Quaternion(-9.31324e-10, 1.7229e-15, 1, -1.83186e-15)
|
||||||
|
bones/300/rotation = Quaternion(1.07553e-15, -1.68127e-15, 1, -8.88167e-16)
|
||||||
|
bones/301/position = Vector3(-0.000173845, 0.290832, -6.4288e-06)
|
||||||
|
bones/301/rotation = Quaternion(1.03274e-07, -0.0932359, 0.995643, -0.00172523)
|
||||||
|
bones/301/scale = Vector3(1, 1, 1)
|
||||||
|
bones/302/rotation = Quaternion(1.39728e-07, 4.10728e-09, 1, 1.16415e-10)
|
||||||
|
bones/303/position = Vector3(0.52051, -0.0494387, 0.346797)
|
||||||
|
bones/303/rotation = Quaternion(0.924457, -0.0918536, -0.254553, -0.268597)
|
||||||
|
bones/306/position = Vector3(-0.52051, -0.0494387, 0.346797)
|
||||||
|
bones/306/rotation = Quaternion(0.924457, 0.0918536, 0.254553, -0.268597)
|
||||||
|
|
||||||
|
[node name="Abe_GEO_Lo" parent="Abe_Lo/CLOUDRIG_Abe/Skeleton3D" index="0"]
|
||||||
|
material_override = ExtResource("3_l1nqp")
|
||||||
|
material_overlay = ExtResource("4_qxawg")
|
||||||
|
|
||||||
|
[node name="AnimationTree" type="AnimationTree" parent="Abe_Lo"]
|
||||||
|
tree_root = SubResource("AnimationNodeBlendTree_seljc")
|
||||||
|
anim_player = NodePath("../AnimationPlayer")
|
||||||
|
parameters/Run/blend_amount = 0.0
|
||||||
|
parameters/Walk/blend_amount = 0.0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.72, 0)
|
||||||
|
shape = SubResource("CapsuleShape3D_8bcc1")
|
||||||
|
|
||||||
|
[node name="GPUParticles3D" parent="." instance=ExtResource("5_dtwkc")]
|
||||||
|
amount_ratio = 0.0
|
||||||
|
|
||||||
|
[editable path="Abe_Lo"]
|
||||||
@ -0,0 +1,217 @@
|
|||||||
|
[gd_scene load_steps=13 format=3 uid="uid://ca3n1cme1tpmk"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c11r5uc4ird3x" path="res://Scenes/Nodes/NODE_Camera.tscn" id="1_0afry"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b8gjuyilsgnws" path="res://3d/models/LVL_Dojo.blend" id="1_ed8bi"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dkt4b5x12c0o8" path="res://Scenes/Characters/CHAR_Abe.tscn" id="4_top0t"]
|
||||||
|
[ext_resource type="Shader" uid="uid://c1r07k4gw7q3w" path="res://Shaders/CHAR_SHD_Abe.tres" id="5_jvw1q"]
|
||||||
|
[ext_resource type="Shader" uid="uid://dewwedodqpjub" path="res://Shaders/CHAR_SHD_AbeFace.tres" id="6_5y5n7"]
|
||||||
|
|
||||||
|
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_hj74p"]
|
||||||
|
|
||||||
|
[sub_resource type="Sky" id="Sky_4l6vg"]
|
||||||
|
sky_material = SubResource("ProceduralSkyMaterial_hj74p")
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_6s8v0"]
|
||||||
|
background_mode = 2
|
||||||
|
sky = SubResource("Sky_4l6vg")
|
||||||
|
ambient_light_source = 3
|
||||||
|
reflected_light_source = 2
|
||||||
|
ssr_enabled = true
|
||||||
|
ssao_enabled = true
|
||||||
|
ssao_radius = 1.43
|
||||||
|
ssao_intensity = 37.75
|
||||||
|
ssao_power = 0.351196
|
||||||
|
ssao_detail = 5.0
|
||||||
|
ssao_horizon = 0.0
|
||||||
|
ssao_light_affect = 0.31
|
||||||
|
ssao_ao_channel_affect = 0.77
|
||||||
|
ssil_enabled = true
|
||||||
|
ssil_radius = 8.26
|
||||||
|
ssil_intensity = 3.58
|
||||||
|
sdfgi_enabled = true
|
||||||
|
glow_enabled = true
|
||||||
|
glow_strength = 1.25
|
||||||
|
volumetric_fog_density = 0.1
|
||||||
|
volumetric_fog_length = 5.0
|
||||||
|
adjustment_contrast = 1.1
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_o5d2o"]
|
||||||
|
render_priority = 0
|
||||||
|
shader = ExtResource("5_jvw1q")
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_jet42"]
|
||||||
|
render_priority = 0
|
||||||
|
shader = ExtResource("6_5y5n7")
|
||||||
|
|
||||||
|
[sub_resource type="CameraAttributesPhysical" id="CameraAttributesPhysical_penuw"]
|
||||||
|
frustum_focal_length = 75.0
|
||||||
|
|
||||||
|
[sub_resource type="Curve3D" id="Curve3D_dtff4"]
|
||||||
|
bake_interval = 2.0
|
||||||
|
_data = {
|
||||||
|
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, -46.5686, 10.868, 21.0979, -16.8377, 0.609722, 1.98655, 16.8377, -0.609722, -1.98655, -16.2611, 6.3926, 13.9617, 0, 0, 0, 0, 0, 0, 4.74607, 5.75686, 11.9171),
|
||||||
|
"tilts": PackedFloat32Array(0, 0, 0)
|
||||||
|
}
|
||||||
|
point_count = 3
|
||||||
|
|
||||||
|
[node name="LVL_Dojo" type="Node3D"]
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
|
environment = SubResource("Environment_6s8v0")
|
||||||
|
|
||||||
|
[node name="LVL_Dojo" parent="." instance=ExtResource("1_ed8bi")]
|
||||||
|
|
||||||
|
[node name="Abe" parent="." instance=ExtResource("4_top0t")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.8903, 0, -11.9762)
|
||||||
|
|
||||||
|
[node name="Skeleton3D" parent="Abe/Abe_Lo/CLOUDRIG_Abe" index="0"]
|
||||||
|
bones/0/position = Vector3(-1.28258e-15, 0.842768, -0.339177)
|
||||||
|
bones/1/position = Vector3(1.90574e-15, 0.842767, -0.109693)
|
||||||
|
bones/2/position = Vector3(-9.48729e-15, 0.842767, 0.119791)
|
||||||
|
bones/5/rotation = Quaternion(-0.00283197, 4.1306e-12, 0.00124316, 0.999995)
|
||||||
|
bones/6/rotation = Quaternion(-6.46874e-08, 0.00283197, 0.999995, -0.00124317)
|
||||||
|
bones/6/scale = Vector3(1, 0.944865, 1)
|
||||||
|
bones/7/position = Vector3(0.113971, 0.455101, 0.618781)
|
||||||
|
bones/7/rotation = Quaternion(0.688687, 0.00630833, 0.724502, -0.0277132)
|
||||||
|
bones/9/position = Vector3(0.139509, 0.768648, -0.0329433)
|
||||||
|
bones/15/rotation = Quaternion(-0.00283196, 1.36607e-11, -0.00124318, 0.999995)
|
||||||
|
bones/16/rotation = Quaternion(6.29445e-08, 0.00283197, 0.999995, 0.00124317)
|
||||||
|
bones/16/scale = Vector3(1, 0.944865, 1)
|
||||||
|
bones/17/position = Vector3(-0.113971, 0.455101, 0.61878)
|
||||||
|
bones/17/rotation = Quaternion(0.724502, -0.0277132, 0.688687, 0.00630838)
|
||||||
|
bones/19/position = Vector3(-0.139509, 0.768648, -0.0329433)
|
||||||
|
bones/25/rotation = Quaternion(-0.167726, -2.26867e-09, 0.130688, 0.977133)
|
||||||
|
bones/26/rotation = Quaternion(-7.62499e-09, 0.167727, 0.977133, -0.130688)
|
||||||
|
bones/26/scale = Vector3(1, 0.751029, 1)
|
||||||
|
bones/27/position = Vector3(0.281916, 0.856491, -0.0318539)
|
||||||
|
bones/31/position = Vector3(0.50427, 0.241987, 0.244877)
|
||||||
|
bones/34/position = Vector3(0.438613, 0.341106, 0.148042)
|
||||||
|
bones/39/rotation = Quaternion(-0.167726, 1.6109e-09, -0.130688, 0.977133)
|
||||||
|
bones/40/rotation = Quaternion(-1.3784e-07, 0.167726, 0.977133, 0.130688)
|
||||||
|
bones/40/scale = Vector3(1, 0.751029, 1)
|
||||||
|
bones/41/position = Vector3(-0.281916, 0.856491, -0.0318539)
|
||||||
|
bones/45/position = Vector3(-0.50427, 0.241987, 0.244877)
|
||||||
|
bones/48/position = Vector3(-0.438613, 0.341106, 0.148042)
|
||||||
|
bones/53/position = Vector3(2.97757e-15, 0.339177, 0.842768)
|
||||||
|
bones/63/rotation = Quaternion(-0.0607229, -0.00642314, -0.00273675, 0.99813)
|
||||||
|
bones/64/rotation = Quaternion(0.152823, -0.0136197, 0.0200932, 0.987955)
|
||||||
|
bones/65/rotation = Quaternion(-0.690424, -0.0420233, 0.0214913, 0.721863)
|
||||||
|
bones/71/rotation = Quaternion(0.270098, 0.0611336, -0.00696073, 0.960865)
|
||||||
|
bones/77/rotation = Quaternion(6.32201e-07, 0.00990275, 2.02172e-07, 0.999951)
|
||||||
|
bones/80/rotation = Quaternion(-0.0695654, 0.0163957, -0.00935188, 0.997399)
|
||||||
|
bones/84/rotation = Quaternion(1.44402e-06, 0.0051612, 9.9365e-08, 0.999987)
|
||||||
|
bones/88/rotation = Quaternion(0.152582, -0.0136992, 0.0218949, 0.987953)
|
||||||
|
bones/91/rotation = Quaternion(-0.690564, -0.0449856, 0.0164135, 0.721684)
|
||||||
|
bones/93/rotation = Quaternion(-1.84482e-08, 0.00450073, 6.36633e-08, 0.99999)
|
||||||
|
bones/96/rotation = Quaternion(2.95234e-07, 0.00404007, 5.54266e-08, 0.999992)
|
||||||
|
bones/99/rotation = Quaternion(1.4855e-06, 0.00516121, 1.38683e-07, 0.999987)
|
||||||
|
bones/100/rotation = Quaternion(-0.0607229, -0.00642314, -0.00273675, 0.99813)
|
||||||
|
bones/101/rotation = Quaternion(0.152823, -0.0136197, 0.0200932, 0.987955)
|
||||||
|
bones/102/rotation = Quaternion(0.0836251, -0.00815776, 0.0114506, 0.996398)
|
||||||
|
bones/102/scale = Vector3(1, 0.988152, 1)
|
||||||
|
bones/103/scale = Vector3(1, 0.988152, 1)
|
||||||
|
bones/105/rotation = Quaternion(-0.0607229, 0.0064231, 0.00273666, 0.99813)
|
||||||
|
bones/106/rotation = Quaternion(0.152823, 0.0136197, -0.0200932, 0.987955)
|
||||||
|
bones/107/rotation = Quaternion(-0.690424, 0.0420233, -0.0214912, 0.721863)
|
||||||
|
bones/113/rotation = Quaternion(0.270098, -0.0611336, 0.00696069, 0.960865)
|
||||||
|
bones/119/rotation = Quaternion(5.90219e-07, -0.00990275, -1.20435e-07, 0.999951)
|
||||||
|
bones/122/rotation = Quaternion(-0.0695654, -0.0163958, 0.00935187, 0.997399)
|
||||||
|
bones/126/rotation = Quaternion(1.38898e-06, -0.00516117, -9.51478e-08, 0.999987)
|
||||||
|
bones/130/rotation = Quaternion(0.152581, 0.0136992, -0.021895, 0.987953)
|
||||||
|
bones/133/rotation = Quaternion(-0.690564, 0.0449856, -0.0164135, 0.721684)
|
||||||
|
bones/135/rotation = Quaternion(-2.84722e-08, -0.00450073, 8.02392e-08, 0.99999)
|
||||||
|
bones/138/rotation = Quaternion(-6.81693e-08, -0.00404008, 6.64109e-08, 0.999992)
|
||||||
|
bones/141/rotation = Quaternion(1.40981e-06, -0.00516118, -1.35581e-07, 0.999987)
|
||||||
|
bones/142/rotation = Quaternion(-0.0607229, 0.0064231, 0.00273666, 0.99813)
|
||||||
|
bones/143/rotation = Quaternion(0.152823, 0.0136197, -0.0200932, 0.987955)
|
||||||
|
bones/144/rotation = Quaternion(0.0836251, 0.00815776, -0.0114506, 0.996398)
|
||||||
|
bones/144/scale = Vector3(1, 0.988152, 1)
|
||||||
|
bones/145/scale = Vector3(1, 0.988152, 1)
|
||||||
|
bones/147/rotation = Quaternion(-0.221647, 0.339515, -0.363982, 0.838522)
|
||||||
|
bones/148/rotation = Quaternion(0.814934, 7.43642e-05, 5.32438e-05, 0.579554)
|
||||||
|
bones/149/rotation = Quaternion(0.111233, 0.836302, 0.0532699, 0.534218)
|
||||||
|
bones/151/rotation = Quaternion(-0.073814, -6.38316e-05, 0.00323307, 0.997267)
|
||||||
|
bones/177/rotation = Quaternion(2.33455e-05, 0.326488, 8.18146e-06, 0.945201)
|
||||||
|
bones/179/rotation = Quaternion(-0.0692451, 1.4876e-07, -0.122133, 0.990095)
|
||||||
|
bones/180/rotation = Quaternion(1.94093e-05, 0.618271, 1.52784e-05, 0.785965)
|
||||||
|
bones/182/rotation = Quaternion(-0.0148716, 1.19001e-07, 0.0894861, 0.995877)
|
||||||
|
bones/183/rotation = Quaternion(-0.54574, -0.000989999, -0.134237, 0.827132)
|
||||||
|
bones/186/rotation = Quaternion(-6.03214e-08, -0.339379, -3.20066e-08, 0.94065)
|
||||||
|
bones/187/rotation = Quaternion(-0.0577629, 4.29432e-09, 0.124622, 0.990522)
|
||||||
|
bones/188/rotation = Quaternion(0.0487956, 0.0270956, -0.104618, 0.992945)
|
||||||
|
bones/189/rotation = Quaternion(0.119618, 0.0246304, -0.201232, 0.971901)
|
||||||
|
bones/190/rotation = Quaternion(0.296053, 0.074978, -0.299789, 0.903802)
|
||||||
|
bones/190/scale = Vector3(1.02228, 0.709667, 1.02989)
|
||||||
|
bones/191/rotation = Quaternion(0.323383, 0.116111, -0.108216, 0.932862)
|
||||||
|
bones/191/scale = Vector3(1.00927, 1.54748, 1.20052)
|
||||||
|
bones/192/rotation = Quaternion(0.173203, 0.179363, 0.0473622, 0.967257)
|
||||||
|
bones/192/scale = Vector3(0.996109, 1.1795, 0.985498)
|
||||||
|
bones/193/rotation = Quaternion(-0.0818352, 0.181082, -0.0332217, 0.979494)
|
||||||
|
bones/193/scale = Vector3(0.997718, 0.719073, 0.995578)
|
||||||
|
bones/194/rotation = Quaternion(-1.0994e-07, -0.261964, 4.11698e-08, 0.965078)
|
||||||
|
bones/196/rotation = Quaternion(-0.0491421, -2.59942e-08, 0.0705966, 0.996294)
|
||||||
|
bones/197/rotation = Quaternion(-1.75578e-07, -0.163309, -2.94126e-08, 0.986575)
|
||||||
|
bones/199/rotation = Quaternion(0.0623591, -5.43522e-08, -0.0594805, 0.99628)
|
||||||
|
bones/200/rotation = Quaternion(-0.136749, -0.336162, 0.0128837, 0.931734)
|
||||||
|
bones/201/rotation = Quaternion(-0.221647, 0.339515, -0.363982, 0.838522)
|
||||||
|
bones/202/rotation = Quaternion(0.814934, 7.43642e-05, 5.32438e-05, 0.579554)
|
||||||
|
bones/203/rotation = Quaternion(0.495299, 0.807857, -0.0961371, 0.304637)
|
||||||
|
bones/203/scale = Vector3(1, 0.580216, 1)
|
||||||
|
bones/205/rotation = Quaternion(-0.221647, -0.339515, 0.363982, 0.838522)
|
||||||
|
bones/206/rotation = Quaternion(0.814934, -7.43829e-05, -5.32325e-05, 0.579554)
|
||||||
|
bones/207/rotation = Quaternion(0.111233, -0.836302, -0.0532699, 0.534218)
|
||||||
|
bones/209/rotation = Quaternion(-0.0738139, 6.38378e-05, -0.00323315, 0.997267)
|
||||||
|
bones/235/rotation = Quaternion(2.34042e-05, -0.326488, -7.92195e-06, 0.945201)
|
||||||
|
bones/237/rotation = Quaternion(-0.069245, -1.45863e-07, 0.122132, 0.990095)
|
||||||
|
bones/238/rotation = Quaternion(1.96737e-05, -0.618271, -1.5251e-05, 0.785965)
|
||||||
|
bones/240/rotation = Quaternion(-0.0148717, -1.07838e-07, -0.0894859, 0.995877)
|
||||||
|
bones/241/rotation = Quaternion(-0.54574, 0.000990001, 0.134237, 0.827132)
|
||||||
|
bones/244/rotation = Quaternion(-1.95898e-08, 0.339379, 1.78843e-09, 0.94065)
|
||||||
|
bones/245/rotation = Quaternion(-0.0577627, -2.23176e-09, -0.124622, 0.990521)
|
||||||
|
bones/246/rotation = Quaternion(0.0441633, 0.0270641, 0.101772, 0.993458)
|
||||||
|
bones/247/rotation = Quaternion(0.0973164, -0.0245838, 0.221388, 0.970007)
|
||||||
|
bones/248/rotation = Quaternion(0.265409, -0.0749767, 0.322363, 0.905549)
|
||||||
|
bones/248/scale = Vector3(1.0252, 0.709469, 1.02345)
|
||||||
|
bones/249/rotation = Quaternion(0.316723, -0.116423, 0.148175, 0.929611)
|
||||||
|
bones/249/scale = Vector3(1.02125, 1.53912, 1.19427)
|
||||||
|
bones/250/rotation = Quaternion(0.172219, -0.179654, -0.0256488, 0.968198)
|
||||||
|
bones/250/scale = Vector3(0.997876, 1.17317, 0.984926)
|
||||||
|
bones/251/rotation = Quaternion(-0.0920978, -0.232406, 0.0143437, 0.968143)
|
||||||
|
bones/251/scale = Vector3(0.998542, 0.72628, 0.994076)
|
||||||
|
bones/252/rotation = Quaternion(1.70448e-08, 0.261964, -1.2244e-07, 0.965078)
|
||||||
|
bones/254/rotation = Quaternion(-0.0491422, 8.41024e-09, -0.0705967, 0.996294)
|
||||||
|
bones/255/rotation = Quaternion(8.96787e-08, 0.163309, -8.49257e-08, 0.986575)
|
||||||
|
bones/257/rotation = Quaternion(0.0623588, 6.93806e-08, 0.0594803, 0.99628)
|
||||||
|
bones/258/rotation = Quaternion(-0.136749, 0.336162, -0.0128838, 0.931734)
|
||||||
|
bones/259/rotation = Quaternion(-0.221647, -0.339515, 0.363982, 0.838522)
|
||||||
|
bones/260/rotation = Quaternion(0.814934, -7.43829e-05, -5.32325e-05, 0.579554)
|
||||||
|
bones/261/rotation = Quaternion(0.495299, -0.807857, 0.0961371, 0.304637)
|
||||||
|
bones/261/scale = Vector3(1, 0.580216, 1)
|
||||||
|
bones/274/position = Vector3(1.9984e-15, 0.22424, 0.834584)
|
||||||
|
bones/303/position = Vector3(0.589192, -0.0494387, 0.346797)
|
||||||
|
bones/306/position = Vector3(-0.589192, -0.0494387, 0.346797)
|
||||||
|
|
||||||
|
[node name="Abe_GEO_Lo" parent="Abe/Abe_Lo/CLOUDRIG_Abe/Skeleton3D" index="0"]
|
||||||
|
material_override = SubResource("ShaderMaterial_o5d2o")
|
||||||
|
material_overlay = SubResource("ShaderMaterial_jet42")
|
||||||
|
|
||||||
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||||
|
transform = Transform3D(0.78824, 0.103786, 0.606553, -0.481108, 0.718508, 0.502277, -0.383683, -0.687732, 0.616289, 0.473871, 5.27602, -0.424684)
|
||||||
|
shadow_enabled = true
|
||||||
|
shadow_bias = 0.01
|
||||||
|
shadow_blur = 8.0
|
||||||
|
directional_shadow_blend_splits = true
|
||||||
|
|
||||||
|
[node name="Camera3D" parent="." node_paths=PackedStringArray("rail", "target") instance=ExtResource("1_0afry")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.996195, 0.0871557, 0, -0.0871557, 0.996195, -29.5075, 5.39118, 15.9966)
|
||||||
|
attributes = SubResource("CameraAttributesPhysical_penuw")
|
||||||
|
current = true
|
||||||
|
rail = NodePath("../Path3D")
|
||||||
|
target = NodePath("../Abe")
|
||||||
|
|
||||||
|
[node name="Path3D" type="Path3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 19.9759, 0, 0)
|
||||||
|
curve = SubResource("Curve3D_dtff4")
|
||||||
|
|
||||||
|
[editable path="Abe"]
|
||||||
|
[editable path="Abe/Abe_Lo"]
|
||||||
@ -0,0 +1,405 @@
|
|||||||
|
[gd_scene load_steps=13 format=3 uid="uid://5qbof11l1jsf"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b1seql40y0fmd" path="res://3d/models/LVL_Promenade.blend" id="1_adl68"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dkt4b5x12c0o8" path="res://Scenes/Characters/CHAR_Abe.tscn" id="2_3l20a"]
|
||||||
|
[ext_resource type="Shader" uid="uid://c1r07k4gw7q3w" path="res://Shaders/CHAR_SHD_Abe.tres" id="3_wumdf"]
|
||||||
|
[ext_resource type="Shader" uid="uid://dewwedodqpjub" path="res://Shaders/CHAR_SHD_AbeFace.tres" id="4_q1v5t"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c11r5uc4ird3x" path="res://Scenes/Nodes/NODE_Camera.tscn" id="5_gxkek"]
|
||||||
|
|
||||||
|
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_hj74p"]
|
||||||
|
|
||||||
|
[sub_resource type="Sky" id="Sky_4l6vg"]
|
||||||
|
sky_material = SubResource("ProceduralSkyMaterial_hj74p")
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_6s8v0"]
|
||||||
|
background_mode = 2
|
||||||
|
sky = SubResource("Sky_4l6vg")
|
||||||
|
ambient_light_source = 3
|
||||||
|
reflected_light_source = 2
|
||||||
|
ssr_enabled = true
|
||||||
|
ssao_enabled = true
|
||||||
|
ssao_radius = 1.43
|
||||||
|
ssao_intensity = 37.75
|
||||||
|
ssao_power = 0.351196
|
||||||
|
ssao_detail = 5.0
|
||||||
|
ssao_horizon = 0.0
|
||||||
|
ssao_light_affect = 0.31
|
||||||
|
ssao_ao_channel_affect = 0.77
|
||||||
|
ssil_enabled = true
|
||||||
|
ssil_radius = 8.26
|
||||||
|
ssil_intensity = 3.58
|
||||||
|
sdfgi_enabled = true
|
||||||
|
glow_enabled = true
|
||||||
|
glow_strength = 1.25
|
||||||
|
volumetric_fog_density = 0.1
|
||||||
|
volumetric_fog_length = 5.0
|
||||||
|
adjustment_contrast = 1.1
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_o5d2o"]
|
||||||
|
render_priority = 0
|
||||||
|
shader = ExtResource("3_wumdf")
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_jet42"]
|
||||||
|
render_priority = 0
|
||||||
|
shader = ExtResource("4_q1v5t")
|
||||||
|
|
||||||
|
[sub_resource type="CameraAttributesPhysical" id="CameraAttributesPhysical_penuw"]
|
||||||
|
frustum_focal_length = 75.0
|
||||||
|
|
||||||
|
[sub_resource type="Curve3D" id="Curve3D_0vf4k"]
|
||||||
|
_data = {
|
||||||
|
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, -7.46449, 3.07805, 43.7011, -15.9972, 0, 0.326469, 15.9972, 0, -0.326469, 70.9184, 3.07805, 43.0481, -15.2806, 0, -2.1919, 15.2806, 0, 2.1919, 104.134, 3.078, 30.8442, -8.73353, 0, -1.5095, 8.73353, 0, 1.5095, 133.599, 3.078, 35.0138, -14.6433, 7.51019e-05, -0.727512, 14.6433, -7.51019e-05, 0.727512, 156.619, 3.078, 40.935, 0, 0, 0, 0, 0, 0, 209.966, 3.07805, 44.354),
|
||||||
|
"tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0)
|
||||||
|
}
|
||||||
|
point_count = 6
|
||||||
|
|
||||||
|
[node name="LVL_Dojo" type="Node3D"]
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
|
environment = SubResource("Environment_6s8v0")
|
||||||
|
|
||||||
|
[node name="LVL_Promenade" parent="." instance=ExtResource("1_adl68")]
|
||||||
|
|
||||||
|
[node name="Abe" parent="." instance=ExtResource("2_3l20a")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.91346, 0, -11.9762)
|
||||||
|
|
||||||
|
[node name="Skeleton3D" parent="Abe/Abe_Lo/CLOUDRIG_Abe" index="0"]
|
||||||
|
bones/0/position = Vector3(-9.56341e-15, 0.834584, -0.338982)
|
||||||
|
bones/0/rotation = Quaternion(0.707107, -5.33851e-08, -5.33851e-08, 0.707107)
|
||||||
|
bones/1/position = Vector3(3.55271e-15, 0.834584, -0.109498)
|
||||||
|
bones/1/rotation = Quaternion(0.707107, -5.33851e-08, -5.33851e-08, 0.707107)
|
||||||
|
bones/2/position = Vector3(-7.75607e-15, 0.834584, 0.119985)
|
||||||
|
bones/2/rotation = Quaternion(0.707107, -5.33851e-08, -5.33851e-08, 0.707107)
|
||||||
|
bones/3/position = Vector3(0.108782, 0.452581, 0.687795)
|
||||||
|
bones/3/rotation = Quaternion(0.708387, -0.0281323, 0.0282804, 0.704696)
|
||||||
|
bones/4/position = Vector3(1.15857e-08, -1.0361e-07, -2.15004e-08)
|
||||||
|
bones/5/rotation = Quaternion(-0.00514548, 5.94625e-11, 0.00179705, 0.999985)
|
||||||
|
bones/6/rotation = Quaternion(-6.46742e-08, 0.00514552, 0.999985, -0.00179706)
|
||||||
|
bones/6/scale = Vector3(1, 0.911684, 1)
|
||||||
|
bones/7/position = Vector3(0.111407, 0.454822, 0.642132)
|
||||||
|
bones/7/rotation = Quaternion(0.688006, 0.00813628, 0.725187, -0.0261774)
|
||||||
|
bones/7/scale = Vector3(1, 1, 1)
|
||||||
|
bones/8/position = Vector3(0.183301, 0.0320629, 0.168592)
|
||||||
|
bones/9/position = Vector3(0.139509, 0.760465, -0.0327484)
|
||||||
|
bones/9/rotation = Quaternion(0.998093, 0.0408963, 0.0408964, 0.0215775)
|
||||||
|
bones/13/rotation = Quaternion(0.708387, 0.0281323, -0.0282804, 0.704696)
|
||||||
|
bones/14/position = Vector3(-1.15858e-08, -1.06171e-07, -2.14932e-08)
|
||||||
|
bones/15/rotation = Quaternion(-0.0051455, -3.72211e-12, -0.00179705, 0.999985)
|
||||||
|
bones/16/rotation = Quaternion(6.29178e-08, 0.00514552, 0.999985, 0.00179705)
|
||||||
|
bones/16/scale = Vector3(1, 0.911684, 1)
|
||||||
|
bones/17/position = Vector3(-0.111407, 0.454822, 0.642132)
|
||||||
|
bones/17/rotation = Quaternion(0.725187, -0.0261774, 0.688006, 0.00813633)
|
||||||
|
bones/17/scale = Vector3(1, 1, 1)
|
||||||
|
bones/18/position = Vector3(-0.183301, 0.0320629, 0.168592)
|
||||||
|
bones/19/position = Vector3(-0.139509, 0.760465, -0.0327484)
|
||||||
|
bones/19/rotation = Quaternion(0.998093, -0.0408963, -0.0408964, 0.0215775)
|
||||||
|
bones/23/rotation = Quaternion(-0.000598773, 0.707794, -0.706419, -0.000599891)
|
||||||
|
bones/24/position = Vector3(4.38533e-08, -1.0943e-08, 8.31342e-08)
|
||||||
|
bones/25/rotation = Quaternion(-0.167783, -9.52683e-10, 0.127235, 0.977579)
|
||||||
|
bones/26/rotation = Quaternion(-7.62146e-09, 0.167783, 0.977579, -0.127235)
|
||||||
|
bones/26/scale = Vector3(1, 0.749534, 1)
|
||||||
|
bones/27/position = Vector3(0.281916, 0.848307, -0.0316591)
|
||||||
|
bones/27/rotation = Quaternion(-0.00491779, 0.00628552, -0.706444, 0.707724)
|
||||||
|
bones/31/position = Vector3(0.517764, 0.241987, 0.244877)
|
||||||
|
bones/31/rotation = Quaternion(0.843504, -0.245402, -0.115874, 0.463522)
|
||||||
|
bones/34/position = Vector3(0.452107, 0.341106, 0.148042)
|
||||||
|
bones/34/rotation = Quaternion(0.609001, -0.646138, 0.171796, 0.426743)
|
||||||
|
bones/38/position = Vector3(-4.38533e-08, -1.07102e-08, 8.31342e-08)
|
||||||
|
bones/39/rotation = Quaternion(-0.167783, 9.52683e-10, -0.127235, 0.977579)
|
||||||
|
bones/40/rotation = Quaternion(-1.39092e-07, 0.167783, 0.977579, 0.127235)
|
||||||
|
bones/40/scale = Vector3(1, 0.749534, 1)
|
||||||
|
bones/41/position = Vector3(-0.281916, 0.848307, -0.0316591)
|
||||||
|
bones/41/rotation = Quaternion(-0.00491779, -0.00628552, 0.706444, 0.707724)
|
||||||
|
bones/45/position = Vector3(-0.517764, 0.241987, 0.244877)
|
||||||
|
bones/45/rotation = Quaternion(0.843504, 0.245402, 0.115874, 0.463522)
|
||||||
|
bones/48/position = Vector3(-0.452107, 0.341106, 0.148042)
|
||||||
|
bones/48/rotation = Quaternion(0.609001, 0.646138, -0.171796, 0.426743)
|
||||||
|
bones/53/position = Vector3(4.4254e-15, 0.338982, 0.834584)
|
||||||
|
bones/53/rotation = Quaternion(1, -8.60132e-15, -7.54979e-08, -3.46312e-07)
|
||||||
|
bones/54/position = Vector3(1.57101e-14, 0.229484, -4.30948e-08)
|
||||||
|
bones/55/position = Vector3(-1.28961e-14, 0.229484, -1.08855e-07)
|
||||||
|
bones/55/rotation = Quaternion(-3.46312e-07, -7.10543e-15, 1.75445e-14, 1)
|
||||||
|
bones/63/rotation = Quaternion(-0.0974315, -0.00725811, -0.00432622, 0.995206)
|
||||||
|
bones/64/rotation = Quaternion(0.219286, -0.0122297, 0.0209682, 0.975359)
|
||||||
|
bones/65/position = Vector3(-3.52642e-08, 0.386825, -1.78805e-08)
|
||||||
|
bones/65/rotation = Quaternion(-0.712328, -0.0418331, 0.0227654, 0.700229)
|
||||||
|
bones/66/rotation = Quaternion(-0.0932356, -7.75849e-08, 0.00172522, 0.995643)
|
||||||
|
bones/68/position = Vector3(1.36182e-08, 0.143821, -1.3902e-09)
|
||||||
|
bones/69/rotation = Quaternion(0.0549193, -2.74866e-05, -0.00101776, 0.99849)
|
||||||
|
bones/70/position = Vector3(1.36182e-08, 0.143821, -1.3902e-09)
|
||||||
|
bones/70/rotation = Quaternion(7.4541e-09, -0.000163676, -4.41826e-11, 1)
|
||||||
|
bones/71/rotation = Quaternion(0.2786, 0.0612847, -0.00773649, 0.958419)
|
||||||
|
bones/74/position = Vector3(-2.60188e-08, 0.128942, -1.53668e-08)
|
||||||
|
bones/74/rotation = Quaternion(-7.39819e-08, 0.0131227, 7.91839e-09, 0.999914)
|
||||||
|
bones/75/position = Vector3(-3.25963e-09, -4.61587e-08, 9.31323e-10)
|
||||||
|
bones/76/position = Vector3(-6.05361e-09, -1.19326e-08, -9.31322e-10)
|
||||||
|
bones/76/rotation = Quaternion(2.82307e-08, 3.87082e-09, 1.89466e-08, 1)
|
||||||
|
bones/77/position = Vector3(-3.25963e-09, 0.257883, -7.45058e-09)
|
||||||
|
bones/77/rotation = Quaternion(2.03707e-06, 0.00932844, 4.90749e-07, 0.999957)
|
||||||
|
bones/78/position = Vector3(3.6438e-08, 6.0536e-09, -1.86265e-09)
|
||||||
|
bones/79/position = Vector3(3.31784e-08, 1.47848e-08, -9.31323e-10)
|
||||||
|
bones/79/rotation = Quaternion(7.70669e-08, -8.64382e-09, -4.5431e-08, 1)
|
||||||
|
bones/80/position = Vector3(-3.69553e-10, 1.48274e-08, -3.17964e-09)
|
||||||
|
bones/80/rotation = Quaternion(-0.100088, 0.016598, -0.00998912, 0.99479)
|
||||||
|
bones/82/position = Vector3(1.52717e-08, -3.24731e-08, -5.63805e-09)
|
||||||
|
bones/83/position = Vector3(-3.84171e-09, 2.49001e-08, -6.66134e-16)
|
||||||
|
bones/84/rotation = Quaternion(1.98964e-06, 0.0060611, 1.39954e-07, 0.999982)
|
||||||
|
bones/85/rotation = Quaternion(-1.14052e-06, -6.17004e-09, -6.2806e-08, 1)
|
||||||
|
bones/85/scale = Vector3(1, 1, 1)
|
||||||
|
bones/86/rotation = Quaternion(8.14906e-10, 2.85218e-09, -2.73576e-09, 1)
|
||||||
|
bones/86/scale = Vector3(1, 0.999999, 1)
|
||||||
|
bones/87/rotation = Quaternion(-2.04891e-08, -1.47265e-08, -1.04134e-07, 1)
|
||||||
|
bones/88/rotation = Quaternion(0.218998, -0.0123537, 0.0238178, 0.975356)
|
||||||
|
bones/88/scale = Vector3(1, 1, 1)
|
||||||
|
bones/89/rotation = Quaternion(7.7649e-08, -5.07862e-08, -1.07335e-07, 1)
|
||||||
|
bones/90/rotation = Quaternion(-5.47734e-08, 5.60831e-08, 1.09401e-07, 1)
|
||||||
|
bones/91/rotation = Quaternion(-0.712511, -0.0443565, 0.0161623, 0.700071)
|
||||||
|
bones/91/scale = Vector3(1, 1, 1)
|
||||||
|
bones/92/rotation = Quaternion(-0.0932345, 4.34894e-06, 0.0017757, 0.995643)
|
||||||
|
bones/92/scale = Vector3(1, 0.999999, 1)
|
||||||
|
bones/93/position = Vector3(-2.11876e-08, 0.107384, 2.79397e-09)
|
||||||
|
bones/93/rotation = Quaternion(1.74246e-10, 0.00542307, 3.78699e-08, 0.999985)
|
||||||
|
bones/94/position = Vector3(2.00234e-08, -2.4098e-08, -1.86264e-09)
|
||||||
|
bones/95/position = Vector3(2.67755e-08, -5.59958e-08, -9.31323e-10)
|
||||||
|
bones/95/rotation = Quaternion(-5.12228e-09, -3.28873e-08, 1.04774e-08, 1)
|
||||||
|
bones/96/position = Vector3(-2.44472e-09, 0.214768, 4.65661e-09)
|
||||||
|
bones/96/rotation = Quaternion(1.16006e-07, 0.0049668, 1.56383e-08, 0.999988)
|
||||||
|
bones/97/position = Vector3(-1.01281e-08, -4.34229e-08, -9.31322e-10)
|
||||||
|
bones/98/position = Vector3(4.65675e-10, -1.52504e-08, -6.66134e-16)
|
||||||
|
bones/98/rotation = Quaternion(-6.89178e-08, -1.68802e-08, -2.25846e-08, 1)
|
||||||
|
bones/99/rotation = Quaternion(2.06768e-06, 0.00606111, 1.79111e-07, 0.999982)
|
||||||
|
bones/100/rotation = Quaternion(-0.0974315, -0.00725811, -0.00432622, 0.995206)
|
||||||
|
bones/101/rotation = Quaternion(0.219286, -0.0122297, 0.0209682, 0.975359)
|
||||||
|
bones/102/rotation = Quaternion(0.120448, -0.0077623, 0.0120914, 0.992616)
|
||||||
|
bones/102/scale = Vector3(1, 0.976621, 1)
|
||||||
|
bones/103/rotation = Quaternion(0.0226449, -0.00878254, 0.0102272, 0.999653)
|
||||||
|
bones/103/scale = Vector3(1, 0.976621, 1)
|
||||||
|
bones/105/rotation = Quaternion(-0.097431, 0.00725804, 0.00432611, 0.995206)
|
||||||
|
bones/106/rotation = Quaternion(0.219285, 0.0122297, -0.0209682, 0.975359)
|
||||||
|
bones/107/position = Vector3(-3.67291e-09, 0.386825, -7.10854e-09)
|
||||||
|
bones/107/rotation = Quaternion(-0.712328, 0.0418331, -0.0227654, 0.700229)
|
||||||
|
bones/108/rotation = Quaternion(-0.0932356, 7.749e-08, -0.00172522, 0.995643)
|
||||||
|
bones/111/rotation = Quaternion(0.0549193, 2.74856e-05, 0.00101776, 0.99849)
|
||||||
|
bones/113/rotation = Quaternion(0.2786, -0.0612847, 0.00773651, 0.958419)
|
||||||
|
bones/116/position = Vector3(8.32371e-09, 0.128941, 9.31326e-10)
|
||||||
|
bones/116/rotation = Quaternion(-2.97018e-08, -0.0131227, 3.48104e-08, 0.999914)
|
||||||
|
bones/117/position = Vector3(-1.86264e-09, -3.89991e-08, 3.72529e-09)
|
||||||
|
bones/118/position = Vector3(-1.16412e-09, -2.73576e-09, 5.58794e-09)
|
||||||
|
bones/118/rotation = Quaternion(5.52973e-09, 8.99308e-09, -5.14847e-08, 1)
|
||||||
|
bones/119/position = Vector3(-1.74622e-09, 0.257883, 7.91624e-09)
|
||||||
|
bones/119/rotation = Quaternion(2.05972e-06, -0.00932843, -4.27184e-07, 0.999957)
|
||||||
|
bones/120/position = Vector3(-8.26549e-09, -1.24564e-08, -2.79397e-09)
|
||||||
|
bones/121/position = Vector3(-9.66248e-09, -1.04773e-09, -2.79397e-09)
|
||||||
|
bones/121/rotation = Quaternion(9.01055e-08, 1.89175e-08, -1.09431e-08, 1)
|
||||||
|
bones/122/position = Vector3(-4.20612e-09, -3.23389e-08, -2.99743e-09)
|
||||||
|
bones/122/rotation = Quaternion(-0.100088, -0.016598, 0.00998913, 0.99479)
|
||||||
|
bones/124/position = Vector3(-5.77858e-09, -4.56626e-08, -4.87866e-09)
|
||||||
|
bones/125/position = Vector3(-5.3551e-09, 8.49764e-09, 2.3283e-10)
|
||||||
|
bones/126/rotation = Quaternion(1.94594e-06, -0.00606107, -1.38573e-07, 0.999982)
|
||||||
|
bones/127/rotation = Quaternion(-1.05484e-06, 1.25147e-08, 7.22939e-08, 1)
|
||||||
|
bones/127/scale = Vector3(0.999999, 1, 1)
|
||||||
|
bones/128/rotation = Quaternion(2.1304e-08, 1.57161e-09, 6.2224e-08, 1)
|
||||||
|
bones/128/scale = Vector3(1, 1, 1)
|
||||||
|
bones/129/rotation = Quaternion(5.12227e-09, 1.30967e-08, -6.92671e-09, 1)
|
||||||
|
bones/129/scale = Vector3(1, 0.999999, 1)
|
||||||
|
bones/130/rotation = Quaternion(0.218997, 0.0123537, -0.0238178, 0.975357)
|
||||||
|
bones/130/scale = Vector3(1, 0.999999, 1)
|
||||||
|
bones/131/rotation = Quaternion(2.60188e-08, 5.09317e-08, 9.1124e-08, 1)
|
||||||
|
bones/131/scale = Vector3(1, 1, 1)
|
||||||
|
bones/132/rotation = Quaternion(3.7253e-09, -5.59667e-08, -5.02914e-08, 1)
|
||||||
|
bones/132/scale = Vector3(1, 1, 1)
|
||||||
|
bones/133/rotation = Quaternion(-0.712511, 0.0443565, -0.0161623, 0.700071)
|
||||||
|
bones/133/scale = Vector3(1, 1, 1)
|
||||||
|
bones/134/rotation = Quaternion(-0.0932345, -4.33605e-06, -0.0017757, 0.995643)
|
||||||
|
bones/135/position = Vector3(7.45058e-09, 0.107384, 1.86265e-09)
|
||||||
|
bones/135/rotation = Quaternion(1.10312e-07, -0.00542306, 2.99582e-08, 0.999985)
|
||||||
|
bones/136/position = Vector3(3.25963e-09, 1.69966e-08, -1.86264e-09)
|
||||||
|
bones/137/position = Vector3(2.32825e-10, -1.32713e-08, -2.22045e-16)
|
||||||
|
bones/137/rotation = Quaternion(4.17931e-08, -8.44012e-08, -3.69037e-08, 1)
|
||||||
|
bones/138/position = Vector3(2.56114e-09, 0.214768, 4.65661e-09)
|
||||||
|
bones/138/rotation = Quaternion(-3.14892e-08, -0.0049668, 3.53092e-08, 0.999988)
|
||||||
|
bones/139/position = Vector3(1.04774e-08, -2.70084e-08, -2.79397e-09)
|
||||||
|
bones/140/position = Vector3(-2.32846e-10, -3.49246e-10, -1.86265e-09)
|
||||||
|
bones/140/rotation = Quaternion(2.51457e-08, 1.36206e-08, 1.45521e-09, 1)
|
||||||
|
bones/141/rotation = Quaternion(1.96374e-06, -0.00606108, -1.96702e-07, 0.999982)
|
||||||
|
bones/142/rotation = Quaternion(-0.097431, 0.00725804, 0.00432611, 0.995206)
|
||||||
|
bones/143/rotation = Quaternion(0.219285, 0.0122297, -0.0209682, 0.975359)
|
||||||
|
bones/144/rotation = Quaternion(0.120448, 0.00776231, -0.0120914, 0.992616)
|
||||||
|
bones/144/scale = Vector3(1, 0.976622, 1)
|
||||||
|
bones/145/rotation = Quaternion(0.0226449, 0.00878252, -0.0102273, 0.999653)
|
||||||
|
bones/145/scale = Vector3(1, 0.976622, 1)
|
||||||
|
bones/147/rotation = Quaternion(-0.226939, 0.335595, -0.353352, 0.843218)
|
||||||
|
bones/148/rotation = Quaternion(0.814934, 7.43642e-05, 5.32438e-05, 0.579554)
|
||||||
|
bones/149/position = Vector3(-1.07735e-07, 0.494896, 3.85158e-05)
|
||||||
|
bones/149/rotation = Quaternion(0.118528, 0.829653, 0.0556171, 0.54271)
|
||||||
|
bones/151/position = Vector3(1.36807e-08, 2.24339e-08, -1.37479e-08)
|
||||||
|
bones/151/rotation = Quaternion(-0.0747633, -5.35377e-05, 0.000842159, 0.997201)
|
||||||
|
bones/152/rotation = Quaternion(1.02442e-08, 6.74359e-06, -3.34531e-08, 1)
|
||||||
|
bones/154/position = Vector3(4.55475e-09, 3.55358e-08, 7.33417e-09)
|
||||||
|
bones/177/position = Vector3(-3.56486e-08, 0.164965, 1.28221e-05)
|
||||||
|
bones/177/rotation = Quaternion(2.36276e-05, 0.322902, 8.22036e-06, 0.946432)
|
||||||
|
bones/178/position = Vector3(0.0658124, -0.0797506, -0.0365105)
|
||||||
|
bones/179/position = Vector3(0.0658124, -0.0797506, -0.0365105)
|
||||||
|
bones/179/rotation = Quaternion(-0.0685076, 1.39894e-07, -0.122546, 0.990096)
|
||||||
|
bones/180/position = Vector3(-4.18369e-08, 0.32993, 2.56432e-05)
|
||||||
|
bones/180/rotation = Quaternion(1.95433e-05, 0.612415, 1.5362e-05, 0.790536)
|
||||||
|
bones/181/position = Vector3(0.0811552, -0.0461419, 0.0126689)
|
||||||
|
bones/182/position = Vector3(0.0811552, -0.0461419, 0.0126689)
|
||||||
|
bones/182/rotation = Quaternion(-0.0148716, 1.19001e-07, 0.0894861, 0.995877)
|
||||||
|
bones/183/position = Vector3(-6.65803e-08, 5.7527e-08, -4.60477e-08)
|
||||||
|
bones/183/rotation = Quaternion(-0.54559, -0.00100244, -0.135884, 0.826962)
|
||||||
|
bones/185/position = Vector3(3.64525e-09, 4.06653e-08, 8.95234e-08)
|
||||||
|
bones/186/rotation = Quaternion(-7.79206e-08, -0.334333, -5.37461e-08, 0.942455)
|
||||||
|
bones/187/rotation = Quaternion(-0.0583205, -6.23305e-09, 0.124362, 0.990522)
|
||||||
|
bones/187/scale = Vector3(1, 1.18887, 1)
|
||||||
|
bones/188/rotation = Quaternion(0.0483008, 0.0270955, -0.104847, 0.992945)
|
||||||
|
bones/188/scale = Vector3(0.994011, 0.864314, 0.99845)
|
||||||
|
bones/189/rotation = Quaternion(0.120582, 0.0246303, -0.200725, 0.971886)
|
||||||
|
bones/189/scale = Vector3(0.997495, 0.906595, 0.99911)
|
||||||
|
bones/190/rotation = Quaternion(0.297822, 0.074968, -0.299365, 0.903362)
|
||||||
|
bones/190/scale = Vector3(1.02228, 0.709667, 1.02989)
|
||||||
|
bones/191/rotation = Quaternion(0.323663, 0.116078, -0.105909, 0.933033)
|
||||||
|
bones/191/scale = Vector3(1.0087, 1.54804, 1.20077)
|
||||||
|
bones/192/rotation = Quaternion(0.173153, 0.179295, 0.0521826, 0.967031)
|
||||||
|
bones/192/scale = Vector3(0.99575, 1.18091, 0.985644)
|
||||||
|
bones/193/rotation = Quaternion(-0.0738482, 0.180957, -0.0428573, 0.979778)
|
||||||
|
bones/193/scale = Vector3(0.997028, 0.715805, 0.99675)
|
||||||
|
bones/194/position = Vector3(1.85901e-08, 0.176364, 1.38534e-08)
|
||||||
|
bones/194/rotation = Quaternion(-1.32433e-07, -0.258015, 5.84031e-08, 0.966141)
|
||||||
|
bones/195/position = Vector3(-0.0470743, 0.0253987, -0.0322391)
|
||||||
|
bones/196/position = Vector3(-0.0470743, 0.0253987, -0.0322391)
|
||||||
|
bones/196/rotation = Quaternion(-0.0496126, -3.64071e-08, 0.0702671, 0.996294)
|
||||||
|
bones/197/position = Vector3(1.38389e-08, 0.352729, -3.46918e-08)
|
||||||
|
bones/197/rotation = Quaternion(-2.21124e-07, -0.161338, 1.92805e-08, 0.986899)
|
||||||
|
bones/198/position = Vector3(-0.045366, 0.0281271, -0.0482924)
|
||||||
|
bones/199/position = Vector3(-0.045366, 0.028127, -0.0482924)
|
||||||
|
bones/199/rotation = Quaternion(0.061961, -6.81295e-08, -0.059896, 0.99628)
|
||||||
|
bones/200/rotation = Quaternion(-0.136567, -0.331164, 0.0147343, 0.933522)
|
||||||
|
bones/201/rotation = Quaternion(-0.226939, 0.335595, -0.353352, 0.843218)
|
||||||
|
bones/202/rotation = Quaternion(0.814934, 7.43642e-05, 5.32438e-05, 0.579554)
|
||||||
|
bones/203/rotation = Quaternion(0.483473, 0.811405, -0.0967988, 0.313857)
|
||||||
|
bones/203/scale = Vector3(1, 0.580216, 1)
|
||||||
|
bones/205/rotation = Quaternion(-0.226939, -0.335595, 0.353352, 0.843218)
|
||||||
|
bones/206/rotation = Quaternion(0.814934, -7.43829e-05, -5.32325e-05, 0.579554)
|
||||||
|
bones/207/position = Vector3(-1.15469e-08, 0.494896, 3.84836e-05)
|
||||||
|
bones/207/rotation = Quaternion(0.118528, -0.829653, -0.0556171, 0.54271)
|
||||||
|
bones/209/position = Vector3(-1.33819e-08, -1.53429e-08, 2.13007e-08)
|
||||||
|
bones/209/rotation = Quaternion(-0.0747631, 5.35541e-05, -0.000842145, 0.997201)
|
||||||
|
bones/210/rotation = Quaternion(1.02442e-08, -6.74359e-06, 3.34531e-08, 1)
|
||||||
|
bones/212/position = Vector3(2.54804e-08, 1.29512e-08, 1.10595e-08)
|
||||||
|
bones/235/position = Vector3(2.81981e-08, 0.164965, 1.28519e-05)
|
||||||
|
bones/235/rotation = Quaternion(2.35912e-05, -0.322902, -7.84077e-06, 0.946432)
|
||||||
|
bones/236/position = Vector3(-0.0658125, -0.0797506, -0.0365105)
|
||||||
|
bones/237/position = Vector3(-0.0658125, -0.0797506, -0.0365105)
|
||||||
|
bones/237/rotation = Quaternion(-0.0685076, -1.51774e-07, 0.122546, 0.990096)
|
||||||
|
bones/238/position = Vector3(6.7914e-08, 0.32993, 2.5632e-05)
|
||||||
|
bones/238/rotation = Quaternion(1.95633e-05, -0.612415, -1.52919e-05, 0.790536)
|
||||||
|
bones/239/position = Vector3(-0.0811552, -0.0461419, 0.0126689)
|
||||||
|
bones/240/position = Vector3(-0.0811551, -0.0461419, 0.0126689)
|
||||||
|
bones/240/rotation = Quaternion(-0.0148717, -1.07838e-07, -0.0894859, 0.995877)
|
||||||
|
bones/241/position = Vector3(-7.9269e-09, 7.26937e-08, -1.27491e-08)
|
||||||
|
bones/241/rotation = Quaternion(-0.54559, 0.00100244, 0.135883, 0.826962)
|
||||||
|
bones/243/position = Vector3(5.59594e-08, 2.55313e-08, 2.23517e-08)
|
||||||
|
bones/244/rotation = Quaternion(-1.27005e-08, 0.334333, 3.83886e-10, 0.942455)
|
||||||
|
bones/245/rotation = Quaternion(-0.0583204, 6.25458e-09, -0.124362, 0.990522)
|
||||||
|
bones/245/scale = Vector3(1, 1.18887, 1)
|
||||||
|
bones/246/rotation = Quaternion(0.0436569, 0.0270641, 0.102032, 0.993454)
|
||||||
|
bones/246/scale = Vector3(0.993998, 0.863624, 0.999039)
|
||||||
|
bones/247/rotation = Quaternion(0.0985868, -0.0245844, 0.220849, 0.970001)
|
||||||
|
bones/247/scale = Vector3(0.996973, 0.910928, 0.99941)
|
||||||
|
bones/248/rotation = Quaternion(0.267247, -0.0749658, 0.322158, 0.905082)
|
||||||
|
bones/248/scale = Vector3(1.0252, 0.709469, 1.02345)
|
||||||
|
bones/249/rotation = Quaternion(0.317163, -0.11642, 0.146007, 0.929805)
|
||||||
|
bones/249/scale = Vector3(1.02061, 1.53952, 1.19464)
|
||||||
|
bones/250/rotation = Quaternion(0.172645, -0.179587, -0.0303798, 0.967998)
|
||||||
|
bones/250/scale = Vector3(0.997664, 1.17424, 0.984991)
|
||||||
|
bones/251/rotation = Quaternion(-0.0848517, -0.232238, 0.0244435, 0.968643)
|
||||||
|
bones/251/scale = Vector3(0.997992, 0.722583, 0.995424)
|
||||||
|
bones/252/position = Vector3(1.26696e-07, 0.176364, -8.87085e-08)
|
||||||
|
bones/252/rotation = Quaternion(6.22874e-08, 0.258015, -8.43097e-08, 0.966141)
|
||||||
|
bones/253/position = Vector3(0.0470742, 0.0253987, -0.0322391)
|
||||||
|
bones/254/position = Vector3(0.0470742, 0.0253988, -0.0322391)
|
||||||
|
bones/254/rotation = Quaternion(-0.0496128, 3.14256e-08, -0.0702673, 0.996294)
|
||||||
|
bones/255/position = Vector3(6.06669e-08, 0.352729, -3.10829e-08)
|
||||||
|
bones/255/rotation = Quaternion(1.69437e-07, 0.161338, -3.51333e-08, 0.986899)
|
||||||
|
bones/256/position = Vector3(0.0453662, 0.0281271, -0.0482923)
|
||||||
|
bones/257/position = Vector3(0.0453661, 0.028127, -0.0482923)
|
||||||
|
bones/257/rotation = Quaternion(0.0619606, 7.56819e-08, 0.0598957, 0.99628)
|
||||||
|
bones/258/rotation = Quaternion(-0.136566, 0.331164, -0.0147344, 0.933522)
|
||||||
|
bones/259/rotation = Quaternion(-0.226939, -0.335595, 0.353352, 0.843218)
|
||||||
|
bones/260/rotation = Quaternion(0.814934, -7.43829e-05, -5.32325e-05, 0.579554)
|
||||||
|
bones/261/rotation = Quaternion(0.483473, -0.811405, 0.0967988, 0.313856)
|
||||||
|
bones/261/scale = Vector3(1, 0.580216, 1)
|
||||||
|
bones/262/position = Vector3(-1.21964e-08, 0.0616701, -0.139511)
|
||||||
|
bones/262/rotation = Quaternion(-0.695299, 3.14162e-08, 3.03925e-08, 0.71872)
|
||||||
|
bones/263/position = Vector3(5.10703e-15, 0.230976, -1.16472e-08)
|
||||||
|
bones/263/rotation = Quaternion(-0.0311281, 1.19152e-07, -3.71076e-09, 0.999515)
|
||||||
|
bones/264/position = Vector3(1.65165e-15, -6.35167e-08, -6.64239e-09)
|
||||||
|
bones/264/rotation = Quaternion(0.0145709, -1.19197e-07, 1.73699e-09, 0.999894)
|
||||||
|
bones/264/scale = Vector3(1, 1, 1)
|
||||||
|
bones/266/position = Vector3(1.2315e-16, 0.262514, -1.86264e-09)
|
||||||
|
bones/266/rotation = Quaternion(9.31323e-10, -5.40167e-08, 6.35104e-15, 1)
|
||||||
|
bones/268/position = Vector3(7.72315e-15, 2.5495e-08, -7.45058e-09)
|
||||||
|
bones/268/rotation = Quaternion(-3.72529e-08, -1.00583e-07, 7.56064e-15, 1)
|
||||||
|
bones/268/scale = Vector3(1, 1, 1)
|
||||||
|
bones/269/rotation = Quaternion(7.45058e-09, 1.00583e-07, -3.46469e-16, 1)
|
||||||
|
bones/269/scale = Vector3(1, 1, 1)
|
||||||
|
bones/270/rotation = Quaternion(-0.0311281, 1.19152e-07, -3.71076e-09, 0.999515)
|
||||||
|
bones/270/scale = Vector3(1, 1, 1)
|
||||||
|
bones/272/position = Vector3(-1.21964e-08, 0.0616701, -0.139511)
|
||||||
|
bones/272/rotation = Quaternion(-0.695299, 3.14162e-08, 3.03925e-08, 0.71872)
|
||||||
|
bones/273/position = Vector3(5.10703e-15, 0.230976, -1.16472e-08)
|
||||||
|
bones/273/rotation = Quaternion(-0.0311281, 1.19152e-07, -3.71076e-09, 0.999515)
|
||||||
|
bones/274/position = Vector3(1.9984e-15, 0.22424, 0.834584)
|
||||||
|
bones/277/rotation = Quaternion(2.59734e-07, -8.74228e-08, 8.2323e-15, 1)
|
||||||
|
bones/278/rotation = Quaternion(-3.89601e-07, -7.10543e-15, 1.75954e-14, 1)
|
||||||
|
bones/278/scale = Vector3(1, 1, 1)
|
||||||
|
bones/279/rotation = Quaternion(-1.29867e-07, -3.55271e-15, 1.13533e-14, 1)
|
||||||
|
bones/279/scale = Vector3(1, 1, 1)
|
||||||
|
bones/281/rotation = Quaternion(8.74228e-08, 8.65779e-08, 1, 1.69407e-21)
|
||||||
|
bones/283/rotation = Quaternion(0.995472, -1.03344e-08, -0.0184201, -0.0932516)
|
||||||
|
bones/284/rotation = Quaternion(-0.00444672, 0.995644, -0.0931348, -0.000255377)
|
||||||
|
bones/285/rotation = Quaternion(-0.0732337, 0.000863981, 0.0118871, 0.997244)
|
||||||
|
bones/288/rotation = Quaternion(-0.0932358, -3.07698e-08, 0.00172522, 0.995643)
|
||||||
|
bones/289/rotation = Quaternion(3.25963e-08, 2.17263e-15, 1, 1.39045e-15)
|
||||||
|
bones/290/rotation = Quaternion(3.1665e-08, -1.70334e-15, 1, 4.4403e-16)
|
||||||
|
bones/291/position = Vector3(0.000173845, 0.290832, -6.4288e-06)
|
||||||
|
bones/291/rotation = Quaternion(-1.03274e-07, -0.0932359, 0.995643, 0.00172523)
|
||||||
|
bones/292/rotation = Quaternion(-1.39728e-07, 4.10728e-09, 1, -1.16415e-10)
|
||||||
|
bones/293/rotation = Quaternion(0.995472, 1.03344e-08, 0.0184201, -0.0932516)
|
||||||
|
bones/295/rotation = Quaternion(-0.0732337, -0.000863981, -0.0118871, 0.997244)
|
||||||
|
bones/298/rotation = Quaternion(-0.0932358, 3.07698e-08, -0.00172522, 0.995643)
|
||||||
|
bones/299/rotation = Quaternion(-9.31324e-10, 1.7229e-15, 1, -1.83186e-15)
|
||||||
|
bones/300/rotation = Quaternion(1.07553e-15, -1.68127e-15, 1, -8.88167e-16)
|
||||||
|
bones/301/position = Vector3(-0.000173845, 0.290832, -6.4288e-06)
|
||||||
|
bones/301/rotation = Quaternion(1.03274e-07, -0.0932359, 0.995643, -0.00172523)
|
||||||
|
bones/302/rotation = Quaternion(1.39728e-07, 4.10728e-09, 1, 1.16415e-10)
|
||||||
|
bones/303/position = Vector3(0.589192, -0.0494387, 0.346797)
|
||||||
|
bones/303/rotation = Quaternion(0.924457, -0.0918536, -0.254553, -0.268597)
|
||||||
|
bones/306/position = Vector3(-0.589192, -0.0494387, 0.346797)
|
||||||
|
bones/306/rotation = Quaternion(0.924457, 0.0918536, 0.254553, -0.268597)
|
||||||
|
|
||||||
|
[node name="Abe_GEO_Lo" parent="Abe/Abe_Lo/CLOUDRIG_Abe/Skeleton3D" index="0"]
|
||||||
|
material_override = SubResource("ShaderMaterial_o5d2o")
|
||||||
|
material_overlay = SubResource("ShaderMaterial_jet42")
|
||||||
|
|
||||||
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||||
|
transform = Transform3D(0.78824, 0.103786, 0.606553, -0.481108, 0.718508, 0.502277, -0.383683, -0.687732, 0.616289, 0.473871, 5.27602, -0.424684)
|
||||||
|
shadow_enabled = true
|
||||||
|
shadow_bias = 0.01
|
||||||
|
shadow_blur = 8.0
|
||||||
|
directional_shadow_blend_splits = true
|
||||||
|
|
||||||
|
[node name="Camera3D" parent="." node_paths=PackedStringArray("rail", "target") instance=ExtResource("5_gxkek")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.996195, 0.0871557, 0, -0.0871557, 0.996195, 0.296257, 5.39118, 15.9966)
|
||||||
|
attributes = SubResource("CameraAttributesPhysical_penuw")
|
||||||
|
current = true
|
||||||
|
rail = NodePath("../Path3D")
|
||||||
|
target = NodePath("../Abe")
|
||||||
|
seek_easing = 2.0
|
||||||
|
|
||||||
|
[node name="Path3D" type="Path3D" parent="."]
|
||||||
|
curve = SubResource("Curve3D_0vf4k")
|
||||||
|
|
||||||
|
[editable path="Abe"]
|
||||||
|
[editable path="Abe/Abe_Lo"]
|
||||||
@ -0,0 +1,222 @@
|
|||||||
|
[gd_scene load_steps=12 format=3 uid="uid://t6lbjipbipwh"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dkt4b5x12c0o8" path="res://Scenes/Characters/CHAR_Abe.tscn" id="1_hotrp"]
|
||||||
|
[ext_resource type="Shader" uid="uid://c1r07k4gw7q3w" path="res://Shaders/CHAR_SHD_Abe.tres" id="2_2wj36"]
|
||||||
|
[ext_resource type="Shader" uid="uid://dewwedodqpjub" path="res://Shaders/CHAR_SHD_AbeFace.tres" id="3_75ifg"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c11r5uc4ird3x" path="res://Scenes/Nodes/NODE_Camera.tscn" id="4_u0her"]
|
||||||
|
|
||||||
|
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_hj74p"]
|
||||||
|
|
||||||
|
[sub_resource type="Sky" id="Sky_4l6vg"]
|
||||||
|
sky_material = SubResource("ProceduralSkyMaterial_hj74p")
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_6s8v0"]
|
||||||
|
background_mode = 2
|
||||||
|
sky = SubResource("Sky_4l6vg")
|
||||||
|
ambient_light_source = 3
|
||||||
|
reflected_light_source = 2
|
||||||
|
ssr_enabled = true
|
||||||
|
ssao_enabled = true
|
||||||
|
ssao_radius = 1.43
|
||||||
|
ssao_intensity = 37.75
|
||||||
|
ssao_power = 0.351196
|
||||||
|
ssao_detail = 5.0
|
||||||
|
ssao_horizon = 0.0
|
||||||
|
ssao_light_affect = 0.31
|
||||||
|
ssao_ao_channel_affect = 0.77
|
||||||
|
ssil_enabled = true
|
||||||
|
ssil_radius = 8.26
|
||||||
|
ssil_intensity = 3.58
|
||||||
|
sdfgi_enabled = true
|
||||||
|
glow_enabled = true
|
||||||
|
glow_strength = 1.25
|
||||||
|
volumetric_fog_density = 0.1
|
||||||
|
volumetric_fog_length = 5.0
|
||||||
|
adjustment_contrast = 1.1
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_o5d2o"]
|
||||||
|
render_priority = 0
|
||||||
|
shader = ExtResource("2_2wj36")
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_jet42"]
|
||||||
|
render_priority = 0
|
||||||
|
shader = ExtResource("3_75ifg")
|
||||||
|
|
||||||
|
[sub_resource type="CameraAttributesPhysical" id="CameraAttributesPhysical_penuw"]
|
||||||
|
frustum_focal_length = 75.0
|
||||||
|
|
||||||
|
[sub_resource type="Curve3D" id="Curve3D_dtff4"]
|
||||||
|
bake_interval = 2.0
|
||||||
|
_data = {
|
||||||
|
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, -46.5686, 10.868, 21.0979, -16.8377, 0.609722, 1.98655, 16.8377, -0.609722, -1.98655, -16.2611, 6.3926, 13.9617, 0, 0, 0, 0, 0, 0, 4.74607, 5.75686, 11.9171),
|
||||||
|
"tilts": PackedFloat32Array(0, 0, 0)
|
||||||
|
}
|
||||||
|
point_count = 3
|
||||||
|
|
||||||
|
[node name="LVL_Dojo" type="Node3D"]
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
|
environment = SubResource("Environment_6s8v0")
|
||||||
|
|
||||||
|
[node name="Abe" parent="." instance=ExtResource("1_hotrp")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 19.9728, 0, -11.9762)
|
||||||
|
|
||||||
|
[node name="Skeleton3D" parent="Abe/Abe_Lo/CLOUDRIG_Abe" index="0"]
|
||||||
|
bones/0/position = Vector3(-9.56341e-15, 0.834584, -0.338982)
|
||||||
|
bones/1/position = Vector3(3.55271e-15, 0.834584, -0.109498)
|
||||||
|
bones/2/position = Vector3(-7.75607e-15, 0.834584, 0.119985)
|
||||||
|
bones/5/rotation = Quaternion(-0.00504518, 5.70635e-11, 0.00177304, 0.999986)
|
||||||
|
bones/6/rotation = Quaternion(-6.46748e-08, 0.00504521, 0.999986, -0.00177305)
|
||||||
|
bones/6/scale = Vector3(1, 0.911684, 1)
|
||||||
|
bones/7/position = Vector3(0.111407, 0.454822, 0.642132)
|
||||||
|
bones/7/rotation = Quaternion(0.688036, 0.00805703, 0.725157, -0.026244)
|
||||||
|
bones/9/position = Vector3(0.139509, 0.760465, -0.0327484)
|
||||||
|
bones/15/rotation = Quaternion(-0.00504519, -2.96843e-12, -0.00177304, 0.999986)
|
||||||
|
bones/16/rotation = Quaternion(6.2919e-08, 0.00504521, 0.999986, 0.00177303)
|
||||||
|
bones/16/scale = Vector3(1, 0.911684, 1)
|
||||||
|
bones/17/position = Vector3(-0.111407, 0.454822, 0.642132)
|
||||||
|
bones/17/rotation = Quaternion(0.725157, -0.026244, 0.688036, 0.00805708)
|
||||||
|
bones/19/position = Vector3(-0.139509, 0.760465, -0.0327484)
|
||||||
|
bones/25/rotation = Quaternion(-0.167783, -9.52683e-10, 0.127235, 0.977579)
|
||||||
|
bones/26/rotation = Quaternion(-7.62146e-09, 0.167783, 0.977579, -0.127235)
|
||||||
|
bones/26/scale = Vector3(1, 0.749599, 1)
|
||||||
|
bones/27/position = Vector3(0.281916, 0.848307, -0.0316591)
|
||||||
|
bones/31/position = Vector3(0.517764, 0.241987, 0.244877)
|
||||||
|
bones/34/position = Vector3(0.452107, 0.341106, 0.148042)
|
||||||
|
bones/39/rotation = Quaternion(-0.167783, 9.52683e-10, -0.127235, 0.977579)
|
||||||
|
bones/40/rotation = Quaternion(-1.39092e-07, 0.167783, 0.977579, 0.127235)
|
||||||
|
bones/40/scale = Vector3(1, 0.749599, 1)
|
||||||
|
bones/41/position = Vector3(-0.281916, 0.848307, -0.0316591)
|
||||||
|
bones/45/position = Vector3(-0.517764, 0.241987, 0.244877)
|
||||||
|
bones/48/position = Vector3(-0.452107, 0.341106, 0.148042)
|
||||||
|
bones/53/position = Vector3(4.4254e-15, 0.338982, 0.834584)
|
||||||
|
bones/63/rotation = Quaternion(-0.0974315, -0.00725811, -0.00432622, 0.995206)
|
||||||
|
bones/64/rotation = Quaternion(0.219286, -0.0122297, 0.0209682, 0.975359)
|
||||||
|
bones/65/rotation = Quaternion(-0.712328, -0.0418331, 0.0227654, 0.700229)
|
||||||
|
bones/71/rotation = Quaternion(0.2786, 0.0612847, -0.00773649, 0.958419)
|
||||||
|
bones/77/rotation = Quaternion(2.21269e-06, 0.00925664, 5.26823e-07, 0.999957)
|
||||||
|
bones/80/rotation = Quaternion(-0.100088, 0.016598, -0.00998912, 0.99479)
|
||||||
|
bones/84/rotation = Quaternion(2.05785e-06, 0.00617359, 1.45028e-07, 0.999981)
|
||||||
|
bones/88/rotation = Quaternion(0.218998, -0.0123537, 0.0238178, 0.975356)
|
||||||
|
bones/91/rotation = Quaternion(-0.712511, -0.0443565, 0.0161623, 0.700071)
|
||||||
|
bones/93/rotation = Quaternion(2.50222e-09, 0.00553837, 3.46455e-08, 0.999985)
|
||||||
|
bones/96/rotation = Quaternion(1.07683e-07, 0.00500984, 1.37907e-08, 0.999988)
|
||||||
|
bones/99/rotation = Quaternion(2.14046e-06, 0.00617361, 1.84164e-07, 0.999981)
|
||||||
|
bones/100/rotation = Quaternion(-0.0974315, -0.00725811, -0.00432622, 0.995206)
|
||||||
|
bones/101/rotation = Quaternion(0.219286, -0.0122297, 0.0209682, 0.975359)
|
||||||
|
bones/102/rotation = Quaternion(0.120448, -0.0077623, 0.0120914, 0.992616)
|
||||||
|
bones/102/scale = Vector3(1, 0.976621, 1)
|
||||||
|
bones/103/scale = Vector3(1, 0.976621, 1)
|
||||||
|
bones/105/rotation = Quaternion(-0.097431, 0.00725804, 0.00432611, 0.995206)
|
||||||
|
bones/106/rotation = Quaternion(0.219285, 0.0122297, -0.0209682, 0.975359)
|
||||||
|
bones/107/rotation = Quaternion(-0.712328, 0.0418331, -0.0227654, 0.700229)
|
||||||
|
bones/113/rotation = Quaternion(0.278601, -0.0612847, 0.00773651, 0.958419)
|
||||||
|
bones/119/rotation = Quaternion(2.24342e-06, -0.00925663, -4.6553e-07, 0.999957)
|
||||||
|
bones/122/rotation = Quaternion(-0.100088, -0.016598, 0.00998913, 0.99479)
|
||||||
|
bones/126/rotation = Quaternion(2.01556e-06, -0.00617356, -1.44001e-07, 0.999981)
|
||||||
|
bones/130/rotation = Quaternion(0.218997, 0.0123537, -0.0238178, 0.975357)
|
||||||
|
bones/133/rotation = Quaternion(-0.712511, 0.0443565, -0.0161623, 0.700071)
|
||||||
|
bones/135/rotation = Quaternion(1.27661e-07, -0.00553836, 2.36726e-08, 0.999985)
|
||||||
|
bones/138/rotation = Quaternion(-2.97859e-08, -0.00500983, 3.3865e-08, 0.999988)
|
||||||
|
bones/141/rotation = Quaternion(2.03299e-06, -0.00617358, -2.04343e-07, 0.999981)
|
||||||
|
bones/142/rotation = Quaternion(-0.097431, 0.00725804, 0.00432611, 0.995206)
|
||||||
|
bones/143/rotation = Quaternion(0.219285, 0.0122297, -0.0209682, 0.975359)
|
||||||
|
bones/144/rotation = Quaternion(0.120448, 0.00776231, -0.0120913, 0.992616)
|
||||||
|
bones/144/scale = Vector3(1, 0.976622, 1)
|
||||||
|
bones/145/scale = Vector3(1, 0.976622, 1)
|
||||||
|
bones/147/rotation = Quaternion(-0.226939, 0.335595, -0.353352, 0.843218)
|
||||||
|
bones/148/rotation = Quaternion(0.814934, 7.43642e-05, 5.32438e-05, 0.579554)
|
||||||
|
bones/149/rotation = Quaternion(0.118528, 0.829653, 0.0556171, 0.54271)
|
||||||
|
bones/151/rotation = Quaternion(-0.0747221, -5.3984e-05, 0.000945823, 0.997204)
|
||||||
|
bones/177/rotation = Quaternion(2.36276e-05, 0.322902, 8.22036e-06, 0.946432)
|
||||||
|
bones/179/rotation = Quaternion(-0.0684154, 1.38785e-07, -0.122598, 0.990095)
|
||||||
|
bones/180/rotation = Quaternion(1.95433e-05, 0.612415, 1.5362e-05, 0.790536)
|
||||||
|
bones/182/rotation = Quaternion(-0.0148716, 1.19001e-07, 0.0894861, 0.995877)
|
||||||
|
bones/183/rotation = Quaternion(-0.545597, -0.0010019, -0.135812, 0.826969)
|
||||||
|
bones/186/rotation = Quaternion(-7.79206e-08, -0.334333, -5.37461e-08, 0.942455)
|
||||||
|
bones/187/rotation = Quaternion(-0.0583902, -7.54906e-09, 0.12433, 0.990521)
|
||||||
|
bones/188/rotation = Quaternion(0.0482389, 0.0270955, -0.104875, 0.992945)
|
||||||
|
bones/189/rotation = Quaternion(0.120626, 0.0246303, -0.200702, 0.971886)
|
||||||
|
bones/190/rotation = Quaternion(0.297746, 0.0749684, -0.299384, 0.903381)
|
||||||
|
bones/190/scale = Vector3(1.02228, 0.709667, 1.02989)
|
||||||
|
bones/191/rotation = Quaternion(0.323651, 0.116079, -0.106009, 0.933026)
|
||||||
|
bones/191/scale = Vector3(1.00862, 1.54811, 1.2008)
|
||||||
|
bones/192/rotation = Quaternion(0.173153, 0.179295, 0.0521826, 0.967031)
|
||||||
|
bones/192/scale = Vector3(0.995766, 1.18085, 0.985638)
|
||||||
|
bones/193/rotation = Quaternion(-0.0738482, 0.180957, -0.0428573, 0.979778)
|
||||||
|
bones/193/scale = Vector3(0.997028, 0.715805, 0.99675)
|
||||||
|
bones/194/rotation = Quaternion(-1.32433e-07, -0.258015, 5.84031e-08, 0.966141)
|
||||||
|
bones/196/rotation = Quaternion(-0.0496714, -3.77088e-08, 0.0702259, 0.996294)
|
||||||
|
bones/197/rotation = Quaternion(-2.19149e-07, -0.161424, 1.71693e-08, 0.986885)
|
||||||
|
bones/199/rotation = Quaternion(0.0619112, -6.98518e-08, -0.059948, 0.99628)
|
||||||
|
bones/200/rotation = Quaternion(-0.136567, -0.331164, 0.0147343, 0.933522)
|
||||||
|
bones/201/rotation = Quaternion(-0.226939, 0.335595, -0.353352, 0.843218)
|
||||||
|
bones/202/rotation = Quaternion(0.814934, 7.43642e-05, 5.32438e-05, 0.579554)
|
||||||
|
bones/203/rotation = Quaternion(0.483473, 0.811405, -0.0967988, 0.313857)
|
||||||
|
bones/203/scale = Vector3(1, 0.580216, 1)
|
||||||
|
bones/205/rotation = Quaternion(-0.226939, -0.335595, 0.353352, 0.843218)
|
||||||
|
bones/206/rotation = Quaternion(0.814934, -7.43829e-05, -5.32325e-05, 0.579554)
|
||||||
|
bones/207/rotation = Quaternion(0.118528, -0.829653, -0.0556171, 0.54271)
|
||||||
|
bones/209/rotation = Quaternion(-0.0747219, 5.4e-05, -0.000945814, 0.997204)
|
||||||
|
bones/235/rotation = Quaternion(2.35912e-05, -0.322902, -7.84077e-06, 0.946433)
|
||||||
|
bones/237/rotation = Quaternion(-0.0684154, -1.52513e-07, 0.122598, 0.990096)
|
||||||
|
bones/238/rotation = Quaternion(1.95633e-05, -0.612415, -1.52919e-05, 0.790536)
|
||||||
|
bones/240/rotation = Quaternion(-0.0148717, -1.07838e-07, -0.0894859, 0.995877)
|
||||||
|
bones/241/rotation = Quaternion(-0.545597, 0.0010019, 0.135812, 0.826969)
|
||||||
|
bones/244/rotation = Quaternion(-1.27005e-08, 0.334333, 3.83886e-10, 0.942455)
|
||||||
|
bones/245/rotation = Quaternion(-0.0583901, 7.31545e-09, -0.12433, 0.990521)
|
||||||
|
bones/246/rotation = Quaternion(0.0435936, 0.0270641, 0.102065, 0.993454)
|
||||||
|
bones/247/rotation = Quaternion(0.0985318, -0.0245843, 0.220872, 0.970001)
|
||||||
|
bones/248/rotation = Quaternion(0.267167, -0.0749663, 0.322167, 0.905102)
|
||||||
|
bones/248/scale = Vector3(1.0252, 0.709469, 1.02345)
|
||||||
|
bones/249/rotation = Quaternion(0.317143, -0.116421, 0.146101, 0.929796)
|
||||||
|
bones/249/scale = Vector3(1.02058, 1.53954, 1.19466)
|
||||||
|
bones/250/rotation = Quaternion(0.172645, -0.179587, -0.0303798, 0.967998)
|
||||||
|
bones/250/scale = Vector3(0.997654, 1.17429, 0.984994)
|
||||||
|
bones/251/rotation = Quaternion(-0.0848517, -0.232238, 0.0244435, 0.968643)
|
||||||
|
bones/251/scale = Vector3(0.997992, 0.722583, 0.995424)
|
||||||
|
bones/252/rotation = Quaternion(6.22874e-08, 0.258015, -8.43097e-08, 0.966141)
|
||||||
|
bones/254/rotation = Quaternion(-0.0496717, 3.43027e-08, -0.0702262, 0.996294)
|
||||||
|
bones/255/rotation = Quaternion(1.65979e-07, 0.161424, -3.72922e-08, 0.986885)
|
||||||
|
bones/257/rotation = Quaternion(0.0619108, 7.64696e-08, 0.0599476, 0.99628)
|
||||||
|
bones/258/rotation = Quaternion(-0.136566, 0.331164, -0.0147344, 0.933522)
|
||||||
|
bones/259/rotation = Quaternion(-0.226939, -0.335595, 0.353352, 0.843218)
|
||||||
|
bones/260/rotation = Quaternion(0.814934, -7.43829e-05, -5.32325e-05, 0.579554)
|
||||||
|
bones/261/rotation = Quaternion(0.483473, -0.811405, 0.0967988, 0.313856)
|
||||||
|
bones/261/scale = Vector3(1, 0.580216, 1)
|
||||||
|
bones/274/position = Vector3(1.9984e-15, 0.22424, 0.834584)
|
||||||
|
bones/303/position = Vector3(0.589192, -0.0494387, 0.346797)
|
||||||
|
bones/306/position = Vector3(-0.589192, -0.0494387, 0.346797)
|
||||||
|
|
||||||
|
[node name="Abe_GEO_Lo" parent="Abe/Abe_Lo/CLOUDRIG_Abe/Skeleton3D" index="0"]
|
||||||
|
material_override = SubResource("ShaderMaterial_o5d2o")
|
||||||
|
material_overlay = SubResource("ShaderMaterial_jet42")
|
||||||
|
|
||||||
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||||
|
transform = Transform3D(0.78824, 0.103786, 0.606553, -0.481108, 0.718508, 0.502277, -0.383683, -0.687732, 0.616289, 0.473871, 5.27602, -0.424684)
|
||||||
|
shadow_enabled = true
|
||||||
|
shadow_bias = 0.01
|
||||||
|
shadow_blur = 8.0
|
||||||
|
directional_shadow_blend_splits = true
|
||||||
|
|
||||||
|
[node name="Camera3D" parent="." node_paths=PackedStringArray("rail", "target") instance=ExtResource("4_u0her")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.996195, 0.0871557, 0, -0.0871557, 0.996195, 21.8838, 5.39118, 6.77292)
|
||||||
|
attributes = SubResource("CameraAttributesPhysical_penuw")
|
||||||
|
current = true
|
||||||
|
rail = NodePath("../Path3D")
|
||||||
|
target = NodePath("../Abe")
|
||||||
|
|
||||||
|
[node name="Path3D" type="Path3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 39.4172, 0, 0)
|
||||||
|
curve = SubResource("Curve3D_dtff4")
|
||||||
|
|
||||||
|
[node name="waypoint_01" type="Marker3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.1021, 4.03714, 10.8083)
|
||||||
|
gizmo_extents = 1.29
|
||||||
|
|
||||||
|
[node name="waypoint_02" type="Marker3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.2583, 1.91104, 9.33807)
|
||||||
|
gizmo_extents = 1.29
|
||||||
|
|
||||||
|
[editable path="Abe"]
|
||||||
|
[editable path="Abe/Abe_Lo"]
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
[gd_scene load_steps=2 format=3 uid="uid://c11r5uc4ird3x"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://Scripts/Camera.gd" id="1_am1sr"]
|
||||||
|
|
||||||
|
[node name="Camera3D" type="Camera3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.994327, 0.106368, 0, -0.106368, 0.994327, 0, 5.02177, 39.3568)
|
||||||
|
fov = 2.29153
|
||||||
|
size = 10.0
|
||||||
|
script = ExtResource("1_am1sr")
|
||||||
|
jump_waypoints = true
|
||||||
|
|
||||||
|
[node name="Timer" type="Timer" parent="."]
|
||||||
|
wait_time = 3.0
|
||||||
|
one_shot = true
|
||||||
|
|
||||||
|
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
|
||||||
@ -0,0 +1,76 @@
|
|||||||
|
extends CharacterBody3D
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const SPEED = 3.5
|
||||||
|
const RUN_MULT = 2.0
|
||||||
|
const JUMP_VELOCITY = 4.5
|
||||||
|
const LIN_ACCEL = 0.25
|
||||||
|
const ANG_ACCEL = 0.25
|
||||||
|
const INNERTIA = 0.4
|
||||||
|
|
||||||
|
var animp : AnimationPlayer
|
||||||
|
var anim_tree : AnimationTree
|
||||||
|
|
||||||
|
# Get the gravity from the project settings to be synced with RigidBody nodes.
|
||||||
|
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
|
||||||
|
var speed = SPEED
|
||||||
|
func _ready():
|
||||||
|
anim_tree = $Abe_Lo/AnimationTree
|
||||||
|
animp = $Abe_Lo/AnimationPlayer
|
||||||
|
animp.play("ANIM_Abe_Idle_01")
|
||||||
|
animp.speed_scale = 1.5
|
||||||
|
|
||||||
|
func map( value : float , in_min : float, in_max : float, out_min : float, out_max : float ):
|
||||||
|
#=( ( value - in_min ) / ( in_max - in_min ) * ( out_max-out_min ) + out_min)
|
||||||
|
var mapped_value = ( value - in_min ) / ( in_max - in_min ) * ( out_max-out_min ) + out_min
|
||||||
|
return mapped_value
|
||||||
|
|
||||||
|
func update_tree():
|
||||||
|
anim_tree["parameters/Walk/blend_amount"] = animp.speed_scale / 1.5
|
||||||
|
anim_tree["parameters/Run/blend_amount"] = map ( speed , SPEED , SPEED * RUN_MULT , 0 , 1 )
|
||||||
|
|
||||||
|
|
||||||
|
func _physics_process(delta):
|
||||||
|
# Add the gravity.
|
||||||
|
if not is_on_floor():
|
||||||
|
velocity.y -= gravity * delta
|
||||||
|
|
||||||
|
# Handle jump.
|
||||||
|
if Input.is_action_just_pressed("jump") and is_on_floor():
|
||||||
|
velocity.y = JUMP_VELOCITY
|
||||||
|
|
||||||
|
# Get the input direction and handle the movement/deceleration.
|
||||||
|
# As good practice, you should replace UI actions with custom gameplay actions.
|
||||||
|
var input_dir = Input.get_vector("left", "right", "up", "down")
|
||||||
|
var run = Input.is_action_pressed("run")
|
||||||
|
|
||||||
|
if run:
|
||||||
|
speed = move_toward( speed , SPEED * RUN_MULT , LIN_ACCEL )
|
||||||
|
else:
|
||||||
|
speed = move_toward( speed , SPEED , LIN_ACCEL )
|
||||||
|
|
||||||
|
# Caculate directions from input
|
||||||
|
var direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
|
||||||
|
var direction2d = Vector2(-direction.x,direction.z)
|
||||||
|
|
||||||
|
#moving
|
||||||
|
if direction and (is_on_floor() or (not is_on_floor() and is_on_wall()) ):
|
||||||
|
animp.speed_scale = 1.5
|
||||||
|
velocity.x = direction.x * speed
|
||||||
|
velocity.z = direction.z * speed
|
||||||
|
#if speed > SPEED:
|
||||||
|
#$GPUParticles3D.amount_ratio = speed / ( SPEED * RUN_MULT )
|
||||||
|
|
||||||
|
var new_rotation = Vector3( 0.0, direction2d.angle() - (PI/2) , 0.0 )
|
||||||
|
|
||||||
|
$Abe_Lo.rotation = Vector3( 0.0 , rotate_toward( $Abe_Lo.rotation.y , new_rotation.y , ANG_ACCEL ), 0.0)
|
||||||
|
else:
|
||||||
|
if is_on_floor():
|
||||||
|
velocity.x = move_toward(velocity.x, 0, INNERTIA )
|
||||||
|
velocity.z = move_toward(velocity.z, 0, INNERTIA )
|
||||||
|
animp.speed_scale = move_toward( animp.speed_scale, 0 , .05 )
|
||||||
|
|
||||||
|
$GPUParticles3D.amount_ratio = 0.0
|
||||||
|
update_tree()
|
||||||
|
move_and_slide()
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
extends Camera3D
|
||||||
|
|
||||||
|
@export var rail : Path3D
|
||||||
|
@export var target : Node3D
|
||||||
|
@export var seek_easing : float
|
||||||
|
|
||||||
|
var target_pos
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func init():
|
||||||
|
target_pos = target.position
|
||||||
|
|
||||||
|
func seek_target():
|
||||||
|
|
||||||
|
if target_pos != target.position:
|
||||||
|
target_pos = target_pos.move_toward( target.position , target.position.distance_to(target_pos)/seek_easing )
|
||||||
|
look_at( target_pos + Vector3(0.0,0.70,0.0) )
|
||||||
|
|
||||||
|
|
||||||
|
func constraint_to_rail():
|
||||||
|
position = rail.curve.get_closest_point( target.position )
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
init()
|
||||||
|
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
constraint_to_rail()
|
||||||
|
seek_target()
|
||||||
@ -0,0 +1,59 @@
|
|||||||
|
extends Camera3D
|
||||||
|
|
||||||
|
@export var target : Node3D
|
||||||
|
@export var delay : float
|
||||||
|
@export var easing : float
|
||||||
|
@export var waypoints : Array[Node3D]
|
||||||
|
|
||||||
|
var target_pos
|
||||||
|
var max_time
|
||||||
|
var t
|
||||||
|
var factor
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
t = $Timer
|
||||||
|
t.autostart = false
|
||||||
|
t.wait_time = delay
|
||||||
|
target_pos = target.position
|
||||||
|
t.start()
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
if len(waypoints) == 0:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
|
||||||
|
var wp1 = waypoints[0].position
|
||||||
|
var wp2 = waypoints[1].position
|
||||||
|
#var ratio = wp2.distance_to( target.position )/wp1.distance_to(wp2)
|
||||||
|
var ratio = target.position.distance_to(wp2) / ( target.position.distance_to(wp1) + target.position.distance_to(wp2) )
|
||||||
|
position = lerp( wp2 , wp1 , ratio )
|
||||||
|
|
||||||
|
#if len(waypoints)<2:
|
||||||
|
#pass
|
||||||
|
#elif len(waypoints) == 1:
|
||||||
|
#pass
|
||||||
|
#else:
|
||||||
|
#var wp1 = waypoints[0].position
|
||||||
|
#var wp2 = waypoints[1].position
|
||||||
|
##var ratio = wp2.distance_to( target.position )/wp1.distance_to(wp2)
|
||||||
|
#var ratio = target.position.distance_to(wp2) / ( target.position.distance_to(wp1) + target.position.distance_to(wp2) )
|
||||||
|
#position = lerp( wp2 , wp1 , ratio )
|
||||||
|
|
||||||
|
|
||||||
|
for i in waypoints:
|
||||||
|
pass
|
||||||
|
#print( i , " name:" + i.name , " pos:" + str(target.position.distance_to(i.position)) )
|
||||||
|
|
||||||
|
if target_pos != target.position:
|
||||||
|
factor = t.time_left / t.wait_time
|
||||||
|
print( t.wait_time, factor )
|
||||||
|
|
||||||
|
look_at( lerp( target.position , target_pos , pow( factor, easing ) ) + Vector3(0.0,0.70,0.0) )
|
||||||
|
|
||||||
|
|
||||||
|
func _on_timer_timeout():
|
||||||
|
target_pos = target.position
|
||||||
|
t.start()
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,7 @@
|
|||||||
|
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://cpx8gdyqdntn5"]
|
||||||
|
|
||||||
|
[ext_resource type="Shader" uid="uid://c1r07k4gw7q3w" path="res://Shaders/CHAR_SHD_Abe.tres" id="1_ejlbn"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
render_priority = 0
|
||||||
|
shader = ExtResource("1_ejlbn")
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://b3q4c07bt6rra"]
|
||||||
|
|
||||||
|
[ext_resource type="Shader" uid="uid://dewwedodqpjub" path="res://Shaders/CHAR_SHD_AbeFace.tres" id="1_q4hts"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
render_priority = 0
|
||||||
|
shader = ExtResource("1_q4hts")
|
||||||
@ -0,0 +1,138 @@
|
|||||||
|
[gd_resource type="VisualShader" load_steps=16 format=3 uid="uid://c1r07k4gw7q3w"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://45tpikb0js5i" path="res://3d/models/textures/CHAR_Abe_emit.png" id="1_12cij"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bi3cljuc4dicl" path="res://3d/models/textures/CHAR_Abe_diffuse.png" id="3_uxtot"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dhdeki5r0pg63" path="res://3d/models/textures/CHAR_Abe_metal-CHAR_Abe_roughness.png" id="4_ihydq"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bcilhv0vmo23e" path="res://3d/models/textures/CHAR_Abe_normal.png" id="5_wlfoi"]
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeFloatConstant" id="VisualShaderNodeFloatConstant_ecx0m"]
|
||||||
|
constant = 0.2
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_fl837"]
|
||||||
|
input_name = "uv2"
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_p4c60"]
|
||||||
|
operator = 2
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_fya24"]
|
||||||
|
texture = ExtResource("1_12cij")
|
||||||
|
texture_type = 1
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_gndfb"]
|
||||||
|
texture = ExtResource("3_uxtot")
|
||||||
|
texture_type = 1
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_nomvq"]
|
||||||
|
texture = ExtResource("4_ihydq")
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeVectorDecompose" id="VisualShaderNodeVectorDecompose_jkogv"]
|
||||||
|
output_port_for_preview = 1
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_ficjf"]
|
||||||
|
input_name = "uv"
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_63lrl"]
|
||||||
|
texture = ExtResource("5_wlfoi")
|
||||||
|
texture_type = 1
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeFloatConstant" id="VisualShaderNodeFloatConstant_aakqf"]
|
||||||
|
constant = 0.5
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeFloatConstant" id="VisualShaderNodeFloatConstant_trpxg"]
|
||||||
|
constant = 16.0
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
code = "shader_type spatial;
|
||||||
|
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_lambert, specular_schlick_ggx;
|
||||||
|
|
||||||
|
uniform sampler2D tex_frg_2 : source_color;
|
||||||
|
uniform sampler2D tex_frg_4;
|
||||||
|
uniform sampler2D tex_frg_13 : source_color;
|
||||||
|
uniform sampler2D tex_frg_7 : source_color;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
// Input:6
|
||||||
|
vec2 n_out6p0 = UV;
|
||||||
|
|
||||||
|
|
||||||
|
// Texture2D:2
|
||||||
|
vec4 n_out2p0 = texture(tex_frg_2, n_out6p0);
|
||||||
|
|
||||||
|
|
||||||
|
// Texture2D:4
|
||||||
|
vec4 n_out4p0 = texture(tex_frg_4, n_out6p0);
|
||||||
|
|
||||||
|
|
||||||
|
// VectorDecompose:5
|
||||||
|
float n_out5p0 = vec3(n_out4p0.xyz).x;
|
||||||
|
float n_out5p1 = vec3(n_out4p0.xyz).y;
|
||||||
|
float n_out5p2 = vec3(n_out4p0.xyz).z;
|
||||||
|
|
||||||
|
|
||||||
|
// Texture2D:13
|
||||||
|
vec4 n_out13p0 = texture(tex_frg_13, n_out6p0);
|
||||||
|
|
||||||
|
|
||||||
|
// Texture2D:7
|
||||||
|
vec4 n_out7p0 = texture(tex_frg_7, n_out6p0);
|
||||||
|
|
||||||
|
|
||||||
|
// FloatConstant:8
|
||||||
|
float n_out8p0 = 0.500000;
|
||||||
|
|
||||||
|
|
||||||
|
// FloatConstant:9
|
||||||
|
float n_out9p0 = 16.000000;
|
||||||
|
|
||||||
|
|
||||||
|
// Input:11
|
||||||
|
vec2 n_out11p0 = UV2;
|
||||||
|
|
||||||
|
|
||||||
|
// FloatOp:12
|
||||||
|
float n_out12p0 = n_out9p0 * n_out11p0.x;
|
||||||
|
|
||||||
|
|
||||||
|
// FloatConstant:10
|
||||||
|
float n_out10p0 = 0.200000;
|
||||||
|
|
||||||
|
|
||||||
|
// Output:0
|
||||||
|
ALBEDO = vec3(n_out2p0.xyz);
|
||||||
|
METALLIC = n_out5p2;
|
||||||
|
ROUGHNESS = n_out5p1;
|
||||||
|
EMISSION = vec3(n_out13p0.xyz);
|
||||||
|
NORMAL_MAP = vec3(n_out7p0.xyz);
|
||||||
|
NORMAL_MAP_DEPTH = n_out8p0;
|
||||||
|
CLEARCOAT = n_out12p0;
|
||||||
|
CLEARCOAT_ROUGHNESS = n_out10p0;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
"
|
||||||
|
nodes/fragment/0/position = Vector2(940, 280)
|
||||||
|
nodes/fragment/2/node = SubResource("VisualShaderNodeTexture_gndfb")
|
||||||
|
nodes/fragment/2/position = Vector2(-320, -100)
|
||||||
|
nodes/fragment/4/node = SubResource("VisualShaderNodeTexture_nomvq")
|
||||||
|
nodes/fragment/4/position = Vector2(-320, 160)
|
||||||
|
nodes/fragment/5/node = SubResource("VisualShaderNodeVectorDecompose_jkogv")
|
||||||
|
nodes/fragment/5/position = Vector2(-80, 160)
|
||||||
|
nodes/fragment/6/node = SubResource("VisualShaderNodeInput_ficjf")
|
||||||
|
nodes/fragment/6/position = Vector2(-900, 300)
|
||||||
|
nodes/fragment/7/node = SubResource("VisualShaderNodeTexture_63lrl")
|
||||||
|
nodes/fragment/7/position = Vector2(-320, 440)
|
||||||
|
nodes/fragment/8/node = SubResource("VisualShaderNodeFloatConstant_aakqf")
|
||||||
|
nodes/fragment/8/position = Vector2(-140, 940)
|
||||||
|
nodes/fragment/9/node = SubResource("VisualShaderNodeFloatConstant_trpxg")
|
||||||
|
nodes/fragment/9/position = Vector2(-140, 640)
|
||||||
|
nodes/fragment/10/node = SubResource("VisualShaderNodeFloatConstant_ecx0m")
|
||||||
|
nodes/fragment/10/position = Vector2(180, 780)
|
||||||
|
nodes/fragment/11/node = SubResource("VisualShaderNodeInput_fl837")
|
||||||
|
nodes/fragment/11/position = Vector2(-240, 720)
|
||||||
|
nodes/fragment/12/node = SubResource("VisualShaderNodeFloatOp_p4c60")
|
||||||
|
nodes/fragment/12/position = Vector2(220, 580)
|
||||||
|
nodes/fragment/13/node = SubResource("VisualShaderNodeTexture_fya24")
|
||||||
|
nodes/fragment/13/position = Vector2(-460, 760)
|
||||||
|
nodes/fragment/connections = PackedInt32Array(4, 0, 5, 0, 2, 0, 0, 0, 5, 2, 0, 2, 5, 1, 0, 3, 7, 0, 0, 9, 8, 0, 0, 10, 6, 0, 2, 0, 6, 0, 4, 0, 6, 0, 7, 0, 10, 0, 0, 14, 9, 0, 12, 0, 11, 0, 12, 1, 12, 0, 0, 13, 6, 0, 13, 0, 13, 0, 0, 5)
|
||||||
@ -0,0 +1,216 @@
|
|||||||
|
[gd_resource type="VisualShader" load_steps=22 format=3 uid="uid://dewwedodqpjub"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c7g1lervup6pt" path="res://3d/models/textures/CHAR_AbeFace_emit.png" id="1_i27k8"]
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeVectorDecompose" id="VisualShaderNodeVectorDecompose_d6qq4"]
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_elov7"]
|
||||||
|
default_input_values = [0, 0.0, 1, 0.063]
|
||||||
|
operator = 4
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_terno"]
|
||||||
|
default_input_values = [0, 0.0, 1, 16.0]
|
||||||
|
operator = 2
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_t2rfa"]
|
||||||
|
default_input_values = [0, 0.0, 1, 16.0]
|
||||||
|
operator = 2
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_xwnuv"]
|
||||||
|
_data = [Vector2(0.1, 0), 0.0, 0.0, 0, 0, Vector2(0.1, 1), inf_neg, 0.0, 1, 1, Vector2(0.9, 1), 0.0, 1.0, 1, 0, Vector2(0.9, 0), 0.0, inf_neg, 0, 1]
|
||||||
|
point_count = 4
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id="CurveTexture_gyi8v"]
|
||||||
|
curve = SubResource("Curve_xwnuv")
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeCurveTexture" id="VisualShaderNodeCurveTexture_4kyr2"]
|
||||||
|
texture = SubResource("CurveTexture_gyi8v")
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_4i6vu"]
|
||||||
|
output_port_for_preview = 0
|
||||||
|
operator = 2
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeVectorCompose" id="VisualShaderNodeVectorCompose_0m68h"]
|
||||||
|
op_type = 0
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeVectorDecompose" id="VisualShaderNodeVectorDecompose_n0bop"]
|
||||||
|
default_input_values = [0, Vector2(0, 0)]
|
||||||
|
op_type = 0
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeVectorDecompose" id="VisualShaderNodeVectorDecompose_ljdly"]
|
||||||
|
output_port_for_preview = 3
|
||||||
|
default_input_values = [0, Quaternion(0, 0, 0, 0)]
|
||||||
|
op_type = 2
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_73meh"]
|
||||||
|
output_port_for_preview = 0
|
||||||
|
texture = ExtResource("1_i27k8")
|
||||||
|
texture_type = 1
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_1mc6n"]
|
||||||
|
parameter_name = "Texture2DParameter"
|
||||||
|
texture_filter = 1
|
||||||
|
texture_source = 1
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeCurveTexture" id="VisualShaderNodeCurveTexture_hhrdd"]
|
||||||
|
texture = SubResource("CurveTexture_gyi8v")
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_4bp17"]
|
||||||
|
output_port_for_preview = 0
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_4wfcn"]
|
||||||
|
constant = Color(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_6vexp"]
|
||||||
|
default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, Vector3(0.5, 0.5, 0.5)]
|
||||||
|
op_type = 3
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_tbf24"]
|
||||||
|
constant = Color(2.49804, 1.28235, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_tmgrx"]
|
||||||
|
input_name = "uv2"
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_4ty6k"]
|
||||||
|
default_input_values = [0, 0.0, 1, 0.063]
|
||||||
|
operator = 4
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
code = "shader_type spatial;
|
||||||
|
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_lambert, specular_schlick_ggx;
|
||||||
|
|
||||||
|
uniform sampler2D Texture2DParameter : filter_nearest, hint_screen_texture;
|
||||||
|
uniform sampler2D tex_frg_24 : source_color;
|
||||||
|
uniform sampler2D curve_frg_26 : repeat_disable;
|
||||||
|
uniform sampler2D curve_frg_14 : repeat_disable;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
// ColorConstant:28
|
||||||
|
vec4 n_out28p0 = vec4(0.000000, 0.000000, 0.000000, 1.000000);
|
||||||
|
|
||||||
|
|
||||||
|
// Input:6
|
||||||
|
vec2 n_out6p0 = UV2;
|
||||||
|
|
||||||
|
|
||||||
|
// VectorDecompose:17
|
||||||
|
float n_out17p0 = n_out6p0.x;
|
||||||
|
float n_out17p1 = n_out6p0.y;
|
||||||
|
|
||||||
|
|
||||||
|
// VectorCompose:16
|
||||||
|
vec2 n_out16p0 = vec2(n_out17p0, n_out17p1);
|
||||||
|
|
||||||
|
|
||||||
|
// Texture2D:24
|
||||||
|
vec4 n_out24p0 = texture(tex_frg_24, n_out16p0);
|
||||||
|
|
||||||
|
|
||||||
|
// VectorDecompose:22
|
||||||
|
float n_out22p0 = n_out24p0.x;
|
||||||
|
float n_out22p1 = n_out24p0.y;
|
||||||
|
float n_out22p2 = n_out24p0.z;
|
||||||
|
float n_out22p3 = n_out24p0.w;
|
||||||
|
|
||||||
|
|
||||||
|
// VectorDecompose:10
|
||||||
|
float n_out10p0 = vec3(n_out6p0, 0.0).x;
|
||||||
|
float n_out10p1 = vec3(n_out6p0, 0.0).y;
|
||||||
|
float n_out10p2 = vec3(n_out6p0, 0.0).z;
|
||||||
|
|
||||||
|
|
||||||
|
// FloatOp:11
|
||||||
|
float n_in11p1 = 0.06300;
|
||||||
|
float n_out11p0 = mod(n_out10p1, n_in11p1);
|
||||||
|
|
||||||
|
|
||||||
|
// FloatOp:13
|
||||||
|
float n_in13p1 = 16.00000;
|
||||||
|
float n_out13p0 = n_out11p0 * n_in13p1;
|
||||||
|
|
||||||
|
|
||||||
|
// CurveTexture:26
|
||||||
|
float n_out26p0 = texture(curve_frg_26, vec2(n_out13p0)).r;
|
||||||
|
|
||||||
|
|
||||||
|
// FloatOp:9
|
||||||
|
float n_in9p1 = 0.06300;
|
||||||
|
float n_out9p0 = mod(n_out10p0, n_in9p1);
|
||||||
|
|
||||||
|
|
||||||
|
// FloatOp:12
|
||||||
|
float n_in12p1 = 16.00000;
|
||||||
|
float n_out12p0 = n_out9p0 * n_in12p1;
|
||||||
|
|
||||||
|
|
||||||
|
// CurveTexture:14
|
||||||
|
float n_out14p0 = texture(curve_frg_14, vec2(n_out12p0)).r;
|
||||||
|
|
||||||
|
|
||||||
|
// FloatOp:15
|
||||||
|
float n_out15p0 = n_out26p0 * n_out14p0;
|
||||||
|
|
||||||
|
|
||||||
|
// Mix:27
|
||||||
|
float n_in27p0 = 0.00000;
|
||||||
|
float n_out27p0 = mix(n_in27p0, n_out22p3, n_out15p0);
|
||||||
|
|
||||||
|
|
||||||
|
// ColorConstant:5
|
||||||
|
vec4 n_out5p0 = vec4(2.498040, 1.282350, 0.000000, 1.000000);
|
||||||
|
|
||||||
|
|
||||||
|
// Mix:4
|
||||||
|
vec3 n_in4p0 = vec3(0.00000, 0.00000, 0.00000);
|
||||||
|
vec3 n_out4p0 = mix(n_in4p0, vec3(n_out5p0.xyz), vec3(n_out27p0));
|
||||||
|
|
||||||
|
|
||||||
|
// Output:0
|
||||||
|
ALBEDO = vec3(n_out28p0.xyz);
|
||||||
|
ALPHA = n_out27p0;
|
||||||
|
EMISSION = n_out4p0;
|
||||||
|
DEPTH = n_out27p0;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
"
|
||||||
|
nodes/fragment/0/position = Vector2(1720, -480)
|
||||||
|
nodes/fragment/4/node = SubResource("VisualShaderNodeMix_6vexp")
|
||||||
|
nodes/fragment/4/position = Vector2(1120, 360)
|
||||||
|
nodes/fragment/5/node = SubResource("VisualShaderNodeColorConstant_tbf24")
|
||||||
|
nodes/fragment/5/position = Vector2(660, 480)
|
||||||
|
nodes/fragment/6/node = SubResource("VisualShaderNodeInput_tmgrx")
|
||||||
|
nodes/fragment/6/position = Vector2(-1339.8, 488.2)
|
||||||
|
nodes/fragment/9/node = SubResource("VisualShaderNodeFloatOp_4ty6k")
|
||||||
|
nodes/fragment/9/position = Vector2(-439.8, 48.2)
|
||||||
|
nodes/fragment/10/node = SubResource("VisualShaderNodeVectorDecompose_d6qq4")
|
||||||
|
nodes/fragment/10/position = Vector2(-699.8, 168.2)
|
||||||
|
nodes/fragment/11/node = SubResource("VisualShaderNodeFloatOp_elov7")
|
||||||
|
nodes/fragment/11/position = Vector2(-439.8, 168.2)
|
||||||
|
nodes/fragment/12/node = SubResource("VisualShaderNodeFloatOp_terno")
|
||||||
|
nodes/fragment/12/position = Vector2(-279.8, 28.2)
|
||||||
|
nodes/fragment/13/node = SubResource("VisualShaderNodeFloatOp_t2rfa")
|
||||||
|
nodes/fragment/13/position = Vector2(-279.8, 148.2)
|
||||||
|
nodes/fragment/14/node = SubResource("VisualShaderNodeCurveTexture_4kyr2")
|
||||||
|
nodes/fragment/14/position = Vector2(-99.8, -111.8)
|
||||||
|
nodes/fragment/15/node = SubResource("VisualShaderNodeFloatOp_4i6vu")
|
||||||
|
nodes/fragment/15/position = Vector2(300.2, 48.2)
|
||||||
|
nodes/fragment/16/node = SubResource("VisualShaderNodeVectorCompose_0m68h")
|
||||||
|
nodes/fragment/16/position = Vector2(-239.8, 428.2)
|
||||||
|
nodes/fragment/17/node = SubResource("VisualShaderNodeVectorDecompose_n0bop")
|
||||||
|
nodes/fragment/17/position = Vector2(-799.8, 448.2)
|
||||||
|
nodes/fragment/22/node = SubResource("VisualShaderNodeVectorDecompose_ljdly")
|
||||||
|
nodes/fragment/22/position = Vector2(340.2, 468.2)
|
||||||
|
nodes/fragment/24/node = SubResource("VisualShaderNodeTexture_73meh")
|
||||||
|
nodes/fragment/24/position = Vector2(60.2, 488.2)
|
||||||
|
nodes/fragment/25/node = SubResource("VisualShaderNodeTexture2DParameter_1mc6n")
|
||||||
|
nodes/fragment/25/position = Vector2(-620, 680)
|
||||||
|
nodes/fragment/26/node = SubResource("VisualShaderNodeCurveTexture_hhrdd")
|
||||||
|
nodes/fragment/26/position = Vector2(-99.8, 148.2)
|
||||||
|
nodes/fragment/27/node = SubResource("VisualShaderNodeMix_4bp17")
|
||||||
|
nodes/fragment/27/position = Vector2(620, 140)
|
||||||
|
nodes/fragment/28/node = SubResource("VisualShaderNodeColorConstant_4wfcn")
|
||||||
|
nodes/fragment/28/position = Vector2(1365.81, -489.417)
|
||||||
|
nodes/fragment/connections = PackedInt32Array(25, 0, 24, 2, 24, 0, 22, 0, 5, 0, 4, 1, 6, 0, 10, 0, 10, 0, 9, 0, 10, 1, 11, 0, 9, 0, 12, 0, 11, 0, 13, 0, 12, 0, 14, 0, 13, 0, 26, 0, 26, 0, 15, 0, 14, 0, 15, 1, 6, 0, 17, 0, 17, 1, 16, 1, 16, 0, 24, 0, 17, 0, 16, 0, 15, 0, 27, 2, 22, 3, 27, 1, 27, 0, 4, 2, 27, 0, 0, 1, 4, 0, 0, 5, 28, 0, 0, 0, 27, 0, 0, 23)
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://o47otplapfan"]
|
||||||
|
|
||||||
|
[ext_resource type="Shader" uid="uid://ct38forho5n4j" path="res://Shaders/LVL_SHD_Dojo.tres" id="1_epuwb"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
render_priority = 0
|
||||||
|
shader = ExtResource("1_epuwb")
|
||||||
@ -0,0 +1,67 @@
|
|||||||
|
[gd_resource type="VisualShader" load_steps=6 format=3 uid="uid://ct38forho5n4j"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cj3ncv0ep6gcp" path="res://3d/models/textures/LVL_Dojo_grid.jpg" id="1_1ynut"]
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_ipci5"]
|
||||||
|
texture = ExtResource("1_1ynut")
|
||||||
|
texture_type = 1
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeVectorDecompose" id="VisualShaderNodeVectorDecompose_0onfs"]
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeVectorCompose" id="VisualShaderNodeVectorCompose_h2oi5"]
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeRemap" id="VisualShaderNodeRemap_m8jn0"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
code = "shader_type spatial;
|
||||||
|
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_lambert, specular_schlick_ggx;
|
||||||
|
|
||||||
|
uniform sampler2D tex_frg_2 : source_color;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
// Texture2D:2
|
||||||
|
vec4 n_out2p0 = texture(tex_frg_2, UV);
|
||||||
|
|
||||||
|
|
||||||
|
// VectorDecompose:3
|
||||||
|
float n_out3p0 = vec3(n_out2p0.xyz).x;
|
||||||
|
float n_out3p1 = vec3(n_out2p0.xyz).y;
|
||||||
|
float n_out3p2 = vec3(n_out2p0.xyz).z;
|
||||||
|
|
||||||
|
|
||||||
|
// VectorCompose:4
|
||||||
|
vec3 n_out4p0 = vec3(n_out3p0, n_out3p0, n_out3p0);
|
||||||
|
|
||||||
|
|
||||||
|
float n_out5p0;
|
||||||
|
// Remap:5
|
||||||
|
float n_in5p1 = 0.00000;
|
||||||
|
float n_in5p2 = 1.00000;
|
||||||
|
float n_in5p3 = 0.00000;
|
||||||
|
float n_in5p4 = 1.00000;
|
||||||
|
{
|
||||||
|
float __input_range = n_in5p2 - n_in5p1;
|
||||||
|
float __output_range = n_in5p4 - n_in5p3;
|
||||||
|
n_out5p0 = n_in5p3 + __output_range * ((n_out4p0.x - n_in5p1) / __input_range);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Output:0
|
||||||
|
ALBEDO = n_out4p0;
|
||||||
|
ROUGHNESS = n_out5p0;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
"
|
||||||
|
nodes/fragment/0/position = Vector2(720, 100)
|
||||||
|
nodes/fragment/2/node = SubResource("VisualShaderNodeTexture_ipci5")
|
||||||
|
nodes/fragment/2/position = Vector2(-460, 220)
|
||||||
|
nodes/fragment/3/node = SubResource("VisualShaderNodeVectorDecompose_0onfs")
|
||||||
|
nodes/fragment/3/position = Vector2(0, 100)
|
||||||
|
nodes/fragment/4/node = SubResource("VisualShaderNodeVectorCompose_h2oi5")
|
||||||
|
nodes/fragment/4/position = Vector2(260, 120)
|
||||||
|
nodes/fragment/5/node = SubResource("VisualShaderNodeRemap_m8jn0")
|
||||||
|
nodes/fragment/5/position = Vector2(440, 260)
|
||||||
|
nodes/fragment/connections = PackedInt32Array(2, 0, 3, 0, 3, 0, 4, 0, 3, 0, 4, 1, 3, 0, 4, 2, 4, 0, 0, 0, 4, 0, 5, 0, 5, 0, 0, 3)
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
[gd_resource type="ShaderMaterial" format=3 uid="uid://b6gfyuvl8423f"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
[gd_resource type="VisualShader" load_steps=2 format=3 uid="uid://do64lk1u6jf17"]
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_ofnfe"]
|
||||||
|
input_name = "color"
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
code = "shader_type spatial;
|
||||||
|
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_lambert, specular_schlick_ggx;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
// Input:3
|
||||||
|
vec4 n_out3p0 = COLOR;
|
||||||
|
|
||||||
|
|
||||||
|
// Output:0
|
||||||
|
ALBEDO = vec3(n_out3p0.xyz);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
"
|
||||||
|
nodes/fragment/3/node = SubResource("VisualShaderNodeInput_ofnfe")
|
||||||
|
nodes/fragment/3/position = Vector2(-140, 280)
|
||||||
|
nodes/fragment/connections = PackedInt32Array(3, 0, 0, 0)
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/ExternalLink.svg-68da2553f64c9b2f7a0ae4a9502e3475.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/texture_fonts/Assets/ExternalLink.svg"
|
||||||
|
dest_files=[ "res://.import/ExternalLink.svg-68da2553f64c9b2f7a0ae4a9502e3475.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/TextureFont.svg-adef2debb7c79848948a2b7635388fbc.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/texture_fonts/Assets/TextureFont.svg"
|
||||||
|
dest_files=[ "res://.import/TextureFont.svg-adef2debb7c79848948a2b7635388fbc.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
||||||
Binary file not shown.
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/TransparentBG.png-3af58a3dff736086211bd6d5a3d9251d.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/texture_fonts/Assets/TransparentBG.png"
|
||||||
|
dest_files=[ "res://.import/TransparentBG.png-3af58a3dff736086211bd6d5a3d9251d.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
||||||
Binary file not shown.
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/TransparentBG_small.png-831547cc9a7eea4c3d8547ee68a417be.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/texture_fonts/Assets/TransparentBG_small.png"
|
||||||
|
dest_files=[ "res://.import/TransparentBG_small.png-831547cc9a7eea4c3d8547ee68a417be.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
||||||
@ -0,0 +1,147 @@
|
|||||||
|
tool
|
||||||
|
extends BitmapFont
|
||||||
|
class_name TextureFont, "res://addons/texture_fonts/Assets/TextureFont.svg"
|
||||||
|
|
||||||
|
|
||||||
|
var _texture_mappings: Array
|
||||||
|
var _font_settings
|
||||||
|
|
||||||
|
|
||||||
|
const default_texture_mappings := {
|
||||||
|
rect_size = Vector2(14, 14),
|
||||||
|
rect_gap = Vector2(1, 1),
|
||||||
|
texture_offset = Vector2(1, 1),
|
||||||
|
chars = \
|
||||||
|
"""abcdefgh
|
||||||
|
ijklmnop
|
||||||
|
qrstuvwx
|
||||||
|
yz.,!?" """
|
||||||
|
}
|
||||||
|
|
||||||
|
func _init():
|
||||||
|
_font_settings = load("res://addons/texture_fonts/Classes/TextureFontSettings.gd").new()
|
||||||
|
|
||||||
|
|
||||||
|
func get_class():
|
||||||
|
return "TextureFont"
|
||||||
|
|
||||||
|
func add_texture(texture: Texture) -> void:
|
||||||
|
.add_texture(texture)
|
||||||
|
var mapping = load("res://addons/texture_fonts/Classes/TextureFontMapping.gd").new()
|
||||||
|
mapping.set_texture(texture)
|
||||||
|
mapping.rect_size = default_texture_mappings.rect_size
|
||||||
|
mapping.rect_gap = default_texture_mappings.rect_gap
|
||||||
|
mapping.texture_offset = default_texture_mappings.texture_offset
|
||||||
|
mapping.chars = default_texture_mappings.chars
|
||||||
|
|
||||||
|
self.texture_mappings.append(mapping)
|
||||||
|
|
||||||
|
|
||||||
|
func remove_texture(index: int) -> void:
|
||||||
|
self.texture_mappings.remove(index)
|
||||||
|
|
||||||
|
|
||||||
|
func build_font():
|
||||||
|
var height = self.height
|
||||||
|
var ascent = self.ascent
|
||||||
|
var distance_field = self.distance_field
|
||||||
|
var fallback = self.fallback
|
||||||
|
|
||||||
|
.clear()
|
||||||
|
|
||||||
|
var mono: bool = self.font_settings.monospace
|
||||||
|
var h_align: int = self.font_settings.horizontal_align
|
||||||
|
var v_align: int = self.font_settings.vertical_align
|
||||||
|
var gap: int = self.font_settings.gap
|
||||||
|
|
||||||
|
var is_space_defined := false
|
||||||
|
|
||||||
|
for i in _texture_mappings.size():
|
||||||
|
var mapping = _texture_mappings[i]
|
||||||
|
.add_texture(mapping.scaled_texture)
|
||||||
|
|
||||||
|
var char_codes = mapping.char_codes
|
||||||
|
|
||||||
|
for line in char_codes:
|
||||||
|
for code in line:
|
||||||
|
if code == 32:
|
||||||
|
is_space_defined = true
|
||||||
|
|
||||||
|
var rect
|
||||||
|
|
||||||
|
if mono:
|
||||||
|
rect = mapping.get_char_rect(code)
|
||||||
|
else:
|
||||||
|
rect = mapping.get_cropped_char_rect(code)
|
||||||
|
|
||||||
|
if rect == null:
|
||||||
|
continue
|
||||||
|
|
||||||
|
var char_setting = _font_settings.get_setting(code)
|
||||||
|
var align = char_setting.offset
|
||||||
|
var advance = rect.size.x + char_setting.advance + gap
|
||||||
|
|
||||||
|
align.x += h_align
|
||||||
|
align.y += v_align
|
||||||
|
|
||||||
|
add_char(code, i, rect, align, advance)
|
||||||
|
|
||||||
|
# add empty space char
|
||||||
|
if not is_space_defined and not fallback and _texture_mappings.size() > 0:
|
||||||
|
var char_setting = _font_settings.get_setting(32)
|
||||||
|
|
||||||
|
var extra_space := 0
|
||||||
|
if mono:
|
||||||
|
extra_space = _texture_mappings[0].rect_size.x * _texture_mappings[0].scale
|
||||||
|
|
||||||
|
var advance = char_setting.advance + extra_space + gap
|
||||||
|
|
||||||
|
var rect := Rect2(0,0,0,0)
|
||||||
|
add_char(32, 0, rect, Vector2.ZERO, advance)
|
||||||
|
|
||||||
|
self.height = height
|
||||||
|
self.ascent = ascent
|
||||||
|
self.distance_field = distance_field
|
||||||
|
self.fallback = fallback
|
||||||
|
|
||||||
|
var kerning_pairs = _font_settings.solve_kerning_pairs()
|
||||||
|
|
||||||
|
for pair in kerning_pairs:
|
||||||
|
add_kerning_pair(pair.char_a, pair.char_b, pair.kerning)
|
||||||
|
|
||||||
|
emit_signal("changed")
|
||||||
|
|
||||||
|
|
||||||
|
func _get_property_list():
|
||||||
|
|
||||||
|
var props = [
|
||||||
|
{
|
||||||
|
name = "texture_mappings",
|
||||||
|
usage = PROPERTY_USAGE_NOEDITOR,
|
||||||
|
type = TYPE_RAW_ARRAY
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "font_settings",
|
||||||
|
usage = PROPERTY_USAGE_NOEDITOR,
|
||||||
|
type = TYPE_NIL
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
return props
|
||||||
|
|
||||||
|
|
||||||
|
func _get(property: String):
|
||||||
|
match property:
|
||||||
|
"texture_mappings":
|
||||||
|
return _texture_mappings
|
||||||
|
"font_settings":
|
||||||
|
return _font_settings
|
||||||
|
|
||||||
|
|
||||||
|
func _set(property: String, val):
|
||||||
|
match property:
|
||||||
|
"texture_mappings":
|
||||||
|
_texture_mappings = val
|
||||||
|
"font_settings":
|
||||||
|
_font_settings = val
|
||||||
|
|
||||||
@ -0,0 +1,192 @@
|
|||||||
|
tool
|
||||||
|
extends Resource
|
||||||
|
|
||||||
|
var char_utils := preload("../Util/CharUtils.gd").new()
|
||||||
|
|
||||||
|
export var source_texture: Texture
|
||||||
|
export var scaled_texture: Texture
|
||||||
|
|
||||||
|
func set_texture(new_texture):
|
||||||
|
source_texture = new_texture
|
||||||
|
scaled_texture = get_scaled_texture()
|
||||||
|
func get_texture():
|
||||||
|
return scaled_texture
|
||||||
|
|
||||||
|
|
||||||
|
export var rect_size: Vector2
|
||||||
|
export var rect_gap: Vector2
|
||||||
|
export var texture_offset: Vector2
|
||||||
|
export var scale := 1 setget set_scale, get_scale
|
||||||
|
func set_scale(new_scale):
|
||||||
|
scale = new_scale
|
||||||
|
scaled_texture = get_scaled_texture()
|
||||||
|
func get_scale():
|
||||||
|
return scale
|
||||||
|
|
||||||
|
export var interpolation := Image.INTERPOLATE_NEAREST setget set_interpolation, get_interpolation
|
||||||
|
func set_interpolation(new_in):
|
||||||
|
interpolation = new_in
|
||||||
|
scaled_texture = get_scaled_texture()
|
||||||
|
func get_interpolation():
|
||||||
|
return interpolation
|
||||||
|
|
||||||
|
export var chars: String setget set_chars, get_chars
|
||||||
|
func set_chars(new_chars):
|
||||||
|
chars = new_chars
|
||||||
|
char_codes = char_utils.chars_to_codes(new_chars)
|
||||||
|
func get_chars():
|
||||||
|
return chars
|
||||||
|
|
||||||
|
# 2d Array containing int char codes
|
||||||
|
var char_codes: Array
|
||||||
|
|
||||||
|
|
||||||
|
func get_scaled_texture() -> Texture:
|
||||||
|
if scale == 1:
|
||||||
|
return source_texture
|
||||||
|
|
||||||
|
var size := source_texture.get_size()
|
||||||
|
var flags := source_texture.flags
|
||||||
|
|
||||||
|
var scaled = size * scale
|
||||||
|
|
||||||
|
if scaled.x > 16384 or scaled.y > 16384:
|
||||||
|
push_error("Could not Upscale Texture! Texture too large")
|
||||||
|
return source_texture
|
||||||
|
|
||||||
|
var img := source_texture.get_data()
|
||||||
|
img.resize(scaled.x, scaled.y, interpolation)
|
||||||
|
var tex = ImageTexture.new()
|
||||||
|
tex.create_from_image(img, flags)
|
||||||
|
|
||||||
|
return tex
|
||||||
|
|
||||||
|
|
||||||
|
func get_char_width(char_code: int) -> int:
|
||||||
|
if char_codes.find(char_code) == -1:
|
||||||
|
return -1
|
||||||
|
|
||||||
|
var rect = get_char_rect(char_code)
|
||||||
|
return rect.size.x
|
||||||
|
|
||||||
|
|
||||||
|
func get_char_pos(char_code: int):
|
||||||
|
for i in char_codes.size():
|
||||||
|
var line = char_codes[i]
|
||||||
|
var pos = line.find(char_code)
|
||||||
|
if pos == -1:
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
return Vector2(pos, i)
|
||||||
|
|
||||||
|
return null
|
||||||
|
|
||||||
|
|
||||||
|
func _get_char_rect_unscaled(char_code: int):
|
||||||
|
var pos: Vector2 = get_char_pos(char_code)
|
||||||
|
if pos == null:
|
||||||
|
return null
|
||||||
|
|
||||||
|
var rect := Rect2(
|
||||||
|
(rect_size + rect_gap) * pos + texture_offset,
|
||||||
|
rect_size
|
||||||
|
)
|
||||||
|
|
||||||
|
var texture_size := source_texture.get_size()
|
||||||
|
if rect.end.x > texture_size.x or rect.end.y > texture_size.y:
|
||||||
|
return null
|
||||||
|
|
||||||
|
return rect
|
||||||
|
|
||||||
|
|
||||||
|
func get_char_rect(char_code: int):
|
||||||
|
var rect = _get_char_rect_unscaled(char_code)
|
||||||
|
if rect == null:
|
||||||
|
return null
|
||||||
|
|
||||||
|
rect.position *= scale
|
||||||
|
rect.size *= scale
|
||||||
|
|
||||||
|
return rect
|
||||||
|
|
||||||
|
|
||||||
|
func get_cropped_char_rect(char_code: int):
|
||||||
|
var rect = _get_char_rect_unscaled(char_code)
|
||||||
|
if rect == null:
|
||||||
|
return null
|
||||||
|
|
||||||
|
var empty_left := _scan_empty_pixels(
|
||||||
|
rect.position.x, rect.position.x + rect.size.x,
|
||||||
|
rect.position.y, rect.position.y + rect.size.y)
|
||||||
|
|
||||||
|
rect.position.x += empty_left
|
||||||
|
rect.size.x -= empty_left
|
||||||
|
|
||||||
|
if rect.size.x == 0:
|
||||||
|
return rect
|
||||||
|
|
||||||
|
var empty_right := _scan_empty_pixels(
|
||||||
|
rect.position.x + rect.size.x - 1, rect.position.x - 1,
|
||||||
|
rect.position.y, rect.position.y + rect.size.y)
|
||||||
|
|
||||||
|
rect.size.x -= empty_right
|
||||||
|
|
||||||
|
rect.position *= scale
|
||||||
|
rect.size *= scale
|
||||||
|
|
||||||
|
return rect
|
||||||
|
|
||||||
|
|
||||||
|
# returns number of empty collumns
|
||||||
|
func _scan_empty_pixels(from_x: int, to_x: int, from_y: int, to_y: int) -> int:
|
||||||
|
var img_data := source_texture.get_data()
|
||||||
|
img_data.lock()
|
||||||
|
var c = 0
|
||||||
|
|
||||||
|
var dir = 1
|
||||||
|
if from_x > to_x:
|
||||||
|
dir = -1
|
||||||
|
|
||||||
|
for x in range(from_x, to_x, dir):
|
||||||
|
for y in range(from_y, to_y):
|
||||||
|
var pix := img_data.get_pixel(x, y)
|
||||||
|
if pix.a != 0.0:
|
||||||
|
return c
|
||||||
|
c += 1
|
||||||
|
img_data.unlock()
|
||||||
|
|
||||||
|
return c
|
||||||
|
|
||||||
|
|
||||||
|
func get_local_position(position: Vector2) -> Vector2:
|
||||||
|
var pos = ((position - texture_offset * scale) / ((rect_size + rect_gap) * scale)).floor()
|
||||||
|
return pos
|
||||||
|
|
||||||
|
|
||||||
|
func get_char_at_position(position: Vector2) -> String:
|
||||||
|
var tex_size = scaled_texture.get_size()
|
||||||
|
if position.x < 0.0 or position.y < 0.0 or position.x > tex_size.x or position.y > tex_size.y:
|
||||||
|
return ""
|
||||||
|
|
||||||
|
var pos = get_local_position(position)
|
||||||
|
|
||||||
|
if pos.y >= char_codes.size() or pos.y < 0:
|
||||||
|
return ""
|
||||||
|
|
||||||
|
var line: Array = char_codes[pos.y]
|
||||||
|
|
||||||
|
if pos.x >= line.size() or pos.x < 0:
|
||||||
|
return ""
|
||||||
|
|
||||||
|
return char(line[pos.x])
|
||||||
|
|
||||||
|
func get_rect_for_position(position: Vector2):
|
||||||
|
var tex_size = scaled_texture.get_size()
|
||||||
|
if position.x < 0.0 or position.y < 0.0 or position.x > tex_size.x or position.y > tex_size.y:
|
||||||
|
return null
|
||||||
|
|
||||||
|
var pos = get_local_position(position)
|
||||||
|
return Rect2(
|
||||||
|
((rect_size + rect_gap) * pos + texture_offset) * scale,
|
||||||
|
rect_size * scale
|
||||||
|
)
|
||||||
@ -0,0 +1,168 @@
|
|||||||
|
tool
|
||||||
|
extends Resource
|
||||||
|
|
||||||
|
var char_utils := preload("../Util/CharUtils.gd").new()
|
||||||
|
|
||||||
|
# {
|
||||||
|
# for_char: String = {
|
||||||
|
# advance: int,
|
||||||
|
# offset: Vector2
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
export var char_settings: Dictionary
|
||||||
|
|
||||||
|
# [
|
||||||
|
# {
|
||||||
|
# from: String,
|
||||||
|
# to: String,
|
||||||
|
# kerning: int
|
||||||
|
# }
|
||||||
|
# ]
|
||||||
|
export var kerning_pairs: Array
|
||||||
|
|
||||||
|
export var gap := 2
|
||||||
|
export var horizontal_align := 1
|
||||||
|
export var vertical_align := 0
|
||||||
|
export var monospace := false
|
||||||
|
|
||||||
|
|
||||||
|
export var preview_color: Color = Color("202431")
|
||||||
|
export var preview_chars: String
|
||||||
|
|
||||||
|
|
||||||
|
func get_default_setting():
|
||||||
|
return {
|
||||||
|
advance = 0.0,
|
||||||
|
offset = Vector2.ZERO
|
||||||
|
}
|
||||||
|
|
||||||
|
func _init():
|
||||||
|
char_settings = {}
|
||||||
|
kerning_pairs = []
|
||||||
|
|
||||||
|
# ------ Settings Functions ------
|
||||||
|
|
||||||
|
func add_setting(for_char: String) -> Dictionary:
|
||||||
|
char_settings[for_char] = {
|
||||||
|
advance = 0.0,
|
||||||
|
offset = Vector2.ZERO
|
||||||
|
}
|
||||||
|
|
||||||
|
return char_settings[for_char]
|
||||||
|
|
||||||
|
|
||||||
|
func insert_setting(for_char: String, setting: Dictionary):
|
||||||
|
char_settings[for_char] = setting
|
||||||
|
|
||||||
|
|
||||||
|
func remove_setting(for_char: String):
|
||||||
|
if char_settings.has(for_char):
|
||||||
|
char_settings.erase(for_char)
|
||||||
|
|
||||||
|
|
||||||
|
func set_setting(for_char: String, advance: int, offset: Vector2):
|
||||||
|
char_settings[for_char] = {
|
||||||
|
advance = advance,
|
||||||
|
offset = offset
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func get_setting(char_code: int):
|
||||||
|
if char_code == -1:
|
||||||
|
return get_default_setting()
|
||||||
|
|
||||||
|
for char_string in char_settings:
|
||||||
|
var char_codes: Array = char_utils.chars_to_codes(char_string).front()
|
||||||
|
if char_code in char_codes:
|
||||||
|
return char_settings[char_string]
|
||||||
|
|
||||||
|
return get_default_setting()
|
||||||
|
|
||||||
|
|
||||||
|
func set_advance(for_char: String, advance: int):
|
||||||
|
if not char_settings.has(for_char):
|
||||||
|
add_setting(for_char)
|
||||||
|
|
||||||
|
char_settings[for_char].advance = advance
|
||||||
|
|
||||||
|
|
||||||
|
func set_offset(for_char: String, offset: Vector2):
|
||||||
|
if not char_settings.has(for_char):
|
||||||
|
add_setting(for_char)
|
||||||
|
|
||||||
|
char_settings[for_char].offset = offset
|
||||||
|
|
||||||
|
|
||||||
|
func get_advance(for_char: String):
|
||||||
|
if char_settings.has(for_char):
|
||||||
|
return char_settings[for_char].advance
|
||||||
|
else:
|
||||||
|
return 0.0
|
||||||
|
|
||||||
|
|
||||||
|
func get_offset(for_char: String):
|
||||||
|
if char_settings.has(for_char):
|
||||||
|
return char_settings[for_char].offset
|
||||||
|
else:
|
||||||
|
return Vector2.ZERO
|
||||||
|
|
||||||
|
|
||||||
|
# ------ Kerning Pair Functions ------
|
||||||
|
|
||||||
|
func add_kerning_pair() -> Dictionary:
|
||||||
|
var new_pair = {
|
||||||
|
from = "",
|
||||||
|
to = "",
|
||||||
|
kerning = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
kerning_pairs.append(new_pair)
|
||||||
|
return new_pair
|
||||||
|
|
||||||
|
|
||||||
|
func insert_kerning_pair(idx: int, new_kerning: Dictionary):
|
||||||
|
kerning_pairs.insert(idx, new_kerning)
|
||||||
|
|
||||||
|
|
||||||
|
func remove_kerning_pair(idx: int):
|
||||||
|
kerning_pairs.remove(idx)
|
||||||
|
|
||||||
|
|
||||||
|
func set_kerning_pair(idx: int, new_kerning: Dictionary):
|
||||||
|
kerning_pairs[idx] = new_kerning
|
||||||
|
|
||||||
|
|
||||||
|
func set_kerning_pair_from(idx: int, new_from: String):
|
||||||
|
kerning_pairs[idx].from = new_from
|
||||||
|
|
||||||
|
|
||||||
|
func set_kerning_pair_to(idx: int, new_to: String):
|
||||||
|
kerning_pairs[idx].to = new_to
|
||||||
|
|
||||||
|
|
||||||
|
func set_kerning_pair_kerning(idx: int, new_kerning: int):
|
||||||
|
kerning_pairs[idx].kerning = new_kerning
|
||||||
|
|
||||||
|
|
||||||
|
func get_kerning_pair(idx: int) -> Dictionary:
|
||||||
|
return kerning_pairs[idx]
|
||||||
|
|
||||||
|
|
||||||
|
func solve_kerning_pairs() -> Array:
|
||||||
|
var solved_list := []
|
||||||
|
for pair in kerning_pairs:
|
||||||
|
if pair.from == "" or pair.to == "" or pair.kerning == 0:
|
||||||
|
continue
|
||||||
|
|
||||||
|
var from_array: Array = char_utils.chars_to_codes(pair.from).front()
|
||||||
|
var to_array: Array = char_utils.chars_to_codes(pair.to).front()
|
||||||
|
|
||||||
|
for a in from_array:
|
||||||
|
for b in to_array:
|
||||||
|
solved_list.append({
|
||||||
|
char_a = a,
|
||||||
|
char_b = b,
|
||||||
|
kerning = pair.kerning
|
||||||
|
})
|
||||||
|
|
||||||
|
return solved_list
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2021 Laila L. (ElectronicBlueberry)
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@ -0,0 +1,61 @@
|
|||||||
|
tool
|
||||||
|
extends VBoxContainer
|
||||||
|
|
||||||
|
signal change
|
||||||
|
signal delete
|
||||||
|
|
||||||
|
var font_settings
|
||||||
|
var for_char: String
|
||||||
|
|
||||||
|
onready var char_edit := $Heading/Char
|
||||||
|
onready var advance := $MarginContainer/HBoxContainer/VBoxContainer/SpinBox
|
||||||
|
onready var offset := $MarginContainer/HBoxContainer/Vector2Edit
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
if for_char:
|
||||||
|
char_edit.text = for_char
|
||||||
|
advance.value = font_settings.get_advance(for_char)
|
||||||
|
offset.value = font_settings.get_offset(for_char)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_DeleteButton_pressed():
|
||||||
|
emit_signal("delete", self)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_Char_text_changed(to_char: String):
|
||||||
|
# if char is emptied
|
||||||
|
if to_char.length() == 0:
|
||||||
|
if for_char:
|
||||||
|
font_settings.remove_setting(for_char)
|
||||||
|
emit_signal("change")
|
||||||
|
return
|
||||||
|
|
||||||
|
# char allready exists, ignore
|
||||||
|
if to_char in font_settings.char_settings:
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
# if char was set before, delete old entry
|
||||||
|
if for_char:
|
||||||
|
font_settings.remove_setting(for_char)
|
||||||
|
|
||||||
|
# add new char setting
|
||||||
|
font_settings.add_setting(to_char)
|
||||||
|
font_settings.set_setting(to_char, advance.value, offset.value)
|
||||||
|
|
||||||
|
|
||||||
|
for_char = to_char
|
||||||
|
|
||||||
|
emit_signal("change")
|
||||||
|
|
||||||
|
|
||||||
|
func _on_SpinBox_value_changed(value):
|
||||||
|
if for_char:
|
||||||
|
font_settings.set_advance(for_char, value)
|
||||||
|
emit_signal("change")
|
||||||
|
|
||||||
|
|
||||||
|
func _on_Vector2Edit_value_changed(value):
|
||||||
|
if for_char:
|
||||||
|
font_settings.set_offset(for_char, value)
|
||||||
|
emit_signal("change")
|
||||||
@ -0,0 +1,102 @@
|
|||||||
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/texture_fonts/UI/Components/Vector2Edit.tscn" type="PackedScene" id=1]
|
||||||
|
[ext_resource path="res://addons/texture_fonts/UI/Components/CharSetting.gd" type="Script" id=2]
|
||||||
|
|
||||||
|
[node name="CharSetting" type="VBoxContainer"]
|
||||||
|
anchor_right = 0.326172
|
||||||
|
anchor_bottom = 0.117
|
||||||
|
margin_bottom = -40.1998
|
||||||
|
script = ExtResource( 2 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Heading" type="HBoxContainer" parent="."]
|
||||||
|
margin_right = 341.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Heading"]
|
||||||
|
margin_top = 5.0
|
||||||
|
margin_right = 17.0
|
||||||
|
margin_bottom = 19.0
|
||||||
|
text = "for"
|
||||||
|
|
||||||
|
[node name="Char" type="LineEdit" parent="Heading"]
|
||||||
|
margin_left = 21.0
|
||||||
|
margin_right = 149.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
rect_min_size = Vector2( 128, 0 )
|
||||||
|
placeholder_text = "char(s)"
|
||||||
|
caret_blink = true
|
||||||
|
caret_blink_speed = 0.5
|
||||||
|
|
||||||
|
[node name="HSeparator" type="Control" parent="Heading"]
|
||||||
|
margin_left = 153.0
|
||||||
|
margin_right = 282.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="DeleteButton" type="Button" parent="Heading"]
|
||||||
|
margin_left = 286.0
|
||||||
|
margin_right = 341.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
text = "Delete"
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||||
|
margin_top = 28.0
|
||||||
|
margin_right = 341.0
|
||||||
|
margin_bottom = 70.0
|
||||||
|
custom_constants/margin_right = 8
|
||||||
|
custom_constants/margin_left = 8
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer"]
|
||||||
|
margin_left = 8.0
|
||||||
|
margin_right = 333.0
|
||||||
|
margin_bottom = 42.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
custom_constants/separation = 8
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/HBoxContainer"]
|
||||||
|
margin_right = 134.0
|
||||||
|
margin_bottom = 42.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="Heading" type="HBoxContainer" parent="MarginContainer/HBoxContainer/VBoxContainer"]
|
||||||
|
margin_right = 134.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="MarginContainer/HBoxContainer/VBoxContainer/Heading"]
|
||||||
|
margin_right = 54.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
text = "Advance"
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="MarginContainer/HBoxContainer/VBoxContainer/Heading"]
|
||||||
|
margin_left = 58.0
|
||||||
|
margin_right = 134.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="SpinBox" type="SpinBox" parent="MarginContainer/HBoxContainer/VBoxContainer"]
|
||||||
|
margin_top = 18.0
|
||||||
|
margin_right = 134.0
|
||||||
|
margin_bottom = 42.0
|
||||||
|
min_value = -100.0
|
||||||
|
|
||||||
|
[node name="Vector2Edit" parent="MarginContainer/HBoxContainer" instance=ExtResource( 1 )]
|
||||||
|
anchor_right = 0.0
|
||||||
|
anchor_bottom = 0.0
|
||||||
|
margin_left = 142.0
|
||||||
|
margin_right = 325.0
|
||||||
|
margin_bottom = 42.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
min_value = Vector2( -4096, -4096 )
|
||||||
|
max_value = Vector2( 4096, 4096 )
|
||||||
|
value = Vector2( 0, 0 )
|
||||||
|
label = "Offset"
|
||||||
|
|
||||||
|
[connection signal="text_changed" from="Heading/Char" to="." method="_on_Char_text_changed"]
|
||||||
|
[connection signal="pressed" from="Heading/DeleteButton" to="." method="_on_DeleteButton_pressed"]
|
||||||
|
[connection signal="value_changed" from="MarginContainer/HBoxContainer/VBoxContainer/SpinBox" to="." method="_on_SpinBox_value_changed"]
|
||||||
|
[connection signal="value_changed" from="MarginContainer/HBoxContainer/Vector2Edit" to="." method="_on_Vector2Edit_value_changed"]
|
||||||
@ -0,0 +1,45 @@
|
|||||||
|
tool
|
||||||
|
extends MarginContainer
|
||||||
|
|
||||||
|
signal file_removed
|
||||||
|
signal file_changed
|
||||||
|
|
||||||
|
onready var name_label := $MarginContainer/HBoxContainer/ClipLabel/Label
|
||||||
|
onready var preview := $MarginContainer/HBoxContainer/ImageContainer/TexturePreview
|
||||||
|
onready var panel := $Panel
|
||||||
|
|
||||||
|
var texture: Texture
|
||||||
|
onready var selected := false setget set_selected, get_selected
|
||||||
|
var _selected: bool
|
||||||
|
func set_selected(new_selected: bool):
|
||||||
|
_selected = new_selected
|
||||||
|
|
||||||
|
if not is_inside_tree():
|
||||||
|
return
|
||||||
|
|
||||||
|
var stylebox: StyleBoxFlat = panel.get("custom_styles/panel")
|
||||||
|
|
||||||
|
if new_selected:
|
||||||
|
stylebox.bg_color.a = 0.2
|
||||||
|
stylebox.border_color.a = 0.2
|
||||||
|
else:
|
||||||
|
stylebox.bg_color.a = 0.0
|
||||||
|
stylebox.border_color.a = 0.0
|
||||||
|
func get_selected() -> bool:
|
||||||
|
return _selected
|
||||||
|
|
||||||
|
func set_texture(new_texture: Texture):
|
||||||
|
if is_inside_tree():
|
||||||
|
name_label.text = new_texture.resource_path
|
||||||
|
preview.texture = new_texture
|
||||||
|
texture = new_texture
|
||||||
|
|
||||||
|
|
||||||
|
func _on_DeleteButton_pressed():
|
||||||
|
emit_signal("file_removed", self)
|
||||||
|
self.queue_free()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_ToolButton_pressed():
|
||||||
|
emit_signal("file_changed", self)
|
||||||
|
self.selected = true
|
||||||
@ -0,0 +1,123 @@
|
|||||||
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/texture_fonts/Assets/TransparentBG_small.png" type="Texture" id=1]
|
||||||
|
[ext_resource path="res://addons/texture_fonts/UI/Components/File.gd" type="Script" id=2]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id=1]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
bg_color = Color( 0.376471, 0.392157, 0.509804, 0 )
|
||||||
|
border_width_left = 2
|
||||||
|
border_width_top = 2
|
||||||
|
border_width_right = 2
|
||||||
|
border_width_bottom = 2
|
||||||
|
border_color = Color( 0.823529, 0.894118, 0.87451, 0 )
|
||||||
|
|
||||||
|
[node name="File" type="MarginContainer"]
|
||||||
|
anchor_right = 0.292
|
||||||
|
anchor_bottom = 0.1
|
||||||
|
margin_right = -0.00802612
|
||||||
|
mouse_filter = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
script = ExtResource( 2 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Panel" type="Panel" parent="."]
|
||||||
|
margin_right = 298.0
|
||||||
|
margin_bottom = 60.0
|
||||||
|
mouse_filter = 2
|
||||||
|
custom_styles/panel = SubResource( 1 )
|
||||||
|
|
||||||
|
[node name="ToolButton" type="ToolButton" parent="."]
|
||||||
|
margin_right = 298.0
|
||||||
|
margin_bottom = 60.0
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||||
|
margin_right = 298.0
|
||||||
|
margin_bottom = 60.0
|
||||||
|
mouse_filter = 2
|
||||||
|
custom_constants/margin_right = 6
|
||||||
|
custom_constants/margin_top = 6
|
||||||
|
custom_constants/margin_left = 6
|
||||||
|
custom_constants/margin_bottom = 6
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer"]
|
||||||
|
margin_left = 6.0
|
||||||
|
margin_top = 6.0
|
||||||
|
margin_right = 292.0
|
||||||
|
margin_bottom = 54.0
|
||||||
|
mouse_filter = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="ImageContainer" type="MarginContainer" parent="MarginContainer/HBoxContainer"]
|
||||||
|
margin_right = 48.0
|
||||||
|
margin_bottom = 48.0
|
||||||
|
mouse_filter = 2
|
||||||
|
|
||||||
|
[node name="TextureRect" type="TextureRect" parent="MarginContainer/HBoxContainer/ImageContainer"]
|
||||||
|
margin_right = 48.0
|
||||||
|
margin_bottom = 48.0
|
||||||
|
rect_min_size = Vector2( 48, 48 )
|
||||||
|
mouse_filter = 2
|
||||||
|
size_flags_horizontal = 5
|
||||||
|
size_flags_vertical = 4
|
||||||
|
texture = ExtResource( 1 )
|
||||||
|
expand = true
|
||||||
|
stretch_mode = 2
|
||||||
|
|
||||||
|
[node name="TexturePreview" type="TextureRect" parent="MarginContainer/HBoxContainer/ImageContainer"]
|
||||||
|
margin_right = 48.0
|
||||||
|
margin_bottom = 48.0
|
||||||
|
rect_min_size = Vector2( 48, 48 )
|
||||||
|
mouse_filter = 2
|
||||||
|
size_flags_horizontal = 5
|
||||||
|
size_flags_vertical = 4
|
||||||
|
expand = true
|
||||||
|
stretch_mode = 6
|
||||||
|
|
||||||
|
[node name="ClipLabel" type="Control" parent="MarginContainer/HBoxContainer"]
|
||||||
|
margin_left = 52.0
|
||||||
|
margin_right = 227.0
|
||||||
|
margin_bottom = 48.0
|
||||||
|
rect_clip_content = true
|
||||||
|
mouse_filter = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 7
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="MarginContainer/HBoxContainer/ClipLabel"]
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
margin_top = 12.0
|
||||||
|
margin_right = 42.0
|
||||||
|
margin_bottom = -12.0
|
||||||
|
size_flags_vertical = 6
|
||||||
|
text = "Texture"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/HBoxContainer"]
|
||||||
|
margin_left = 231.0
|
||||||
|
margin_right = 286.0
|
||||||
|
margin_bottom = 48.0
|
||||||
|
mouse_filter = 2
|
||||||
|
custom_constants/margin_top = 12
|
||||||
|
custom_constants/margin_bottom = 12
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="DeleteButton" type="Button" parent="MarginContainer/HBoxContainer/MarginContainer"]
|
||||||
|
margin_top = 12.0
|
||||||
|
margin_right = 55.0
|
||||||
|
margin_bottom = 36.0
|
||||||
|
text = "Delete"
|
||||||
|
|
||||||
|
[connection signal="pressed" from="ToolButton" to="." method="_on_ToolButton_pressed"]
|
||||||
|
[connection signal="pressed" from="MarginContainer/HBoxContainer/MarginContainer/DeleteButton" to="." method="_on_DeleteButton_pressed"]
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
tool
|
||||||
|
extends HBoxContainer
|
||||||
|
|
||||||
|
|
||||||
|
signal change
|
||||||
|
signal delete
|
||||||
|
|
||||||
|
onready var fromLine = $LineEditFrom
|
||||||
|
onready var toLine = $LineEditTo
|
||||||
|
onready var offsetLine = $SpinBoxOffset
|
||||||
|
|
||||||
|
var font_settings
|
||||||
|
|
||||||
|
|
||||||
|
onready var idx := get_index()
|
||||||
|
|
||||||
|
|
||||||
|
# Dict which holds info about a kerning pair
|
||||||
|
#
|
||||||
|
# Kerning: {
|
||||||
|
# from: String,
|
||||||
|
# to: String,
|
||||||
|
# kerning: float
|
||||||
|
# }
|
||||||
|
func set_kerning_pair(new_kerning):
|
||||||
|
fromLine.text = new_kerning.from
|
||||||
|
toLine.text = new_kerning.to
|
||||||
|
offsetLine.value = new_kerning.kerning
|
||||||
|
|
||||||
|
|
||||||
|
func _on_LineEditFrom_text_changed(new_text):
|
||||||
|
font_settings.set_kerning_pair_from(idx, new_text)
|
||||||
|
emit_signal("change")
|
||||||
|
|
||||||
|
|
||||||
|
func _on_LineEditTo_text_changed(new_text):
|
||||||
|
font_settings.set_kerning_pair_to(idx, new_text)
|
||||||
|
emit_signal("change")
|
||||||
|
|
||||||
|
|
||||||
|
func _on_SpinBoxOffset_value_changed(value):
|
||||||
|
font_settings.set_kerning_pair_kerning(idx, value)
|
||||||
|
emit_signal("change")
|
||||||
|
|
||||||
|
|
||||||
|
func _on_DeleteButton_pressed():
|
||||||
|
emit_signal("delete", self)
|
||||||
@ -0,0 +1,85 @@
|
|||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/texture_fonts/UI/Components/KerningPair.gd" type="Script" id=1]
|
||||||
|
|
||||||
|
[node name="KerningPair" type="HBoxContainer"]
|
||||||
|
anchor_left = -0.000976563
|
||||||
|
anchor_right = 0.545523
|
||||||
|
anchor_bottom = 0.04
|
||||||
|
margin_right = 0.383972
|
||||||
|
margin_bottom = -1.90735e-06
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="."]
|
||||||
|
margin_top = 5.0
|
||||||
|
margin_right = 30.0
|
||||||
|
margin_bottom = 19.0
|
||||||
|
text = "from"
|
||||||
|
|
||||||
|
[node name="LineEditFrom" type="LineEdit" parent="."]
|
||||||
|
margin_left = 34.0
|
||||||
|
margin_right = 181.0
|
||||||
|
margin_bottom = 25.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_stretch_ratio = 2.0
|
||||||
|
align = 1
|
||||||
|
placeholder_text = "abc"
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="."]
|
||||||
|
margin_left = 185.0
|
||||||
|
margin_top = 5.0
|
||||||
|
margin_right = 198.0
|
||||||
|
margin_bottom = 19.0
|
||||||
|
text = "to"
|
||||||
|
|
||||||
|
[node name="LineEditTo" type="LineEdit" parent="."]
|
||||||
|
margin_left = 202.0
|
||||||
|
margin_right = 350.0
|
||||||
|
margin_bottom = 25.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_stretch_ratio = 2.0
|
||||||
|
align = 1
|
||||||
|
placeholder_text = "123"
|
||||||
|
|
||||||
|
[node name="Label3" type="Label" parent="."]
|
||||||
|
margin_left = 354.0
|
||||||
|
margin_top = 5.0
|
||||||
|
margin_right = 358.0
|
||||||
|
margin_bottom = 19.0
|
||||||
|
text = ":"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="SpinBoxOffset" type="SpinBox" parent="."]
|
||||||
|
margin_left = 362.0
|
||||||
|
margin_right = 436.0
|
||||||
|
margin_bottom = 25.0
|
||||||
|
min_value = -4096.0
|
||||||
|
max_value = 4096.0
|
||||||
|
align = 2
|
||||||
|
|
||||||
|
[node name="Seperator" type="Control" parent="."]
|
||||||
|
margin_left = 440.0
|
||||||
|
margin_right = 514.0
|
||||||
|
margin_bottom = 25.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="DeleteButton" type="Button" parent="."]
|
||||||
|
margin_left = 518.0
|
||||||
|
margin_right = 573.0
|
||||||
|
margin_bottom = 25.0
|
||||||
|
text = "Delete"
|
||||||
|
|
||||||
|
[connection signal="text_changed" from="LineEditFrom" to="." method="_on_LineEditFrom_text_changed"]
|
||||||
|
[connection signal="text_changed" from="LineEditTo" to="." method="_on_LineEditTo_text_changed"]
|
||||||
|
[connection signal="value_changed" from="SpinBoxOffset" to="." method="_on_SpinBoxOffset_value_changed"]
|
||||||
|
[connection signal="pressed" from="DeleteButton" to="." method="_on_DeleteButton_pressed"]
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
tool
|
||||||
|
extends Container
|
||||||
|
|
||||||
|
var texture: Texture
|
||||||
|
|
||||||
|
func set_texture(tex: Texture):
|
||||||
|
texture = tex
|
||||||
|
self.offset = Vector2.ZERO
|
||||||
|
|
||||||
|
const margin := 8.0
|
||||||
|
|
||||||
|
export var offset := Vector2.ZERO setget set_offset, get_offset
|
||||||
|
func set_offset(new_offset: Vector2):
|
||||||
|
if not texture:
|
||||||
|
return
|
||||||
|
|
||||||
|
var rect := self.get_rect()
|
||||||
|
var t_size = texture.get_size()
|
||||||
|
var child: Control = get_children().front()
|
||||||
|
var scale = child.rect_scale
|
||||||
|
|
||||||
|
var total_bounds = (rect.size + t_size * scale) / 2.0
|
||||||
|
|
||||||
|
offset.x = clamp(new_offset.x, -total_bounds.x + margin, total_bounds.x - margin)
|
||||||
|
offset.y = clamp(new_offset.y, -total_bounds.y + margin, total_bounds.y - margin)
|
||||||
|
rect.position += offset
|
||||||
|
|
||||||
|
fit_child_in_rect(get_children().front(), rect)
|
||||||
|
child.rect_scale = scale
|
||||||
|
func get_offset() -> Vector2:
|
||||||
|
return offset
|
||||||
|
|
||||||
|
|
||||||
|
func _on_TextureContainer_resized():
|
||||||
|
set_offset(offset)
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
tool
|
||||||
|
extends TextureRect
|
||||||
|
|
||||||
|
|
||||||
|
var hover := false
|
||||||
|
var texture_font_mapping
|
||||||
|
|
||||||
|
|
||||||
|
onready var rect_preview := $RectPreview
|
||||||
|
onready var label := $RectPreview/Label
|
||||||
|
|
||||||
|
|
||||||
|
func _on_TextureView_mouse_entered():
|
||||||
|
hover = true
|
||||||
|
rect_preview.visible = true
|
||||||
|
|
||||||
|
|
||||||
|
func _on_TextureView_mouse_exited():
|
||||||
|
hover = false
|
||||||
|
rect_preview.visible = false
|
||||||
|
|
||||||
|
func _gui_input(event):
|
||||||
|
if hover and event is InputEventMouseMotion:
|
||||||
|
var c = texture_font_mapping.get_char_at_position(event.position)
|
||||||
|
if c == "":
|
||||||
|
rect_preview.visible = false
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
label.text = c
|
||||||
|
var rect: Rect2 = texture_font_mapping.get_rect_for_position(event.position)
|
||||||
|
rect_preview.rect_position = rect.position
|
||||||
|
rect_preview.rect_size = rect.size
|
||||||
|
rect_preview.visible = true
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
tool
|
||||||
|
extends VBoxContainer
|
||||||
|
|
||||||
|
onready var texture_view := $Control/TextureContainer/TextureView
|
||||||
|
onready var texture_container := $Control/TextureContainer
|
||||||
|
onready var zoom_spinbox := $Heading/SpinBox
|
||||||
|
|
||||||
|
var hover := false
|
||||||
|
|
||||||
|
var zoom := 100.0 setget set_zoom, get_zoom
|
||||||
|
var _zoom := 100.0
|
||||||
|
func set_zoom(new_zoom):
|
||||||
|
_zoom = clamp(new_zoom, 10, 5000)
|
||||||
|
texture_view.rect_scale = Vector2(float(_zoom) / 100.0, float(_zoom) / 100.0)
|
||||||
|
texture_view.rect_pivot_offset = texture_view.rect_size / 2.0
|
||||||
|
func get_zoom():
|
||||||
|
return _zoom
|
||||||
|
|
||||||
|
|
||||||
|
var texture_font_mapping setget set_mapping
|
||||||
|
func set_mapping(new_mapping):
|
||||||
|
texture_view.texture_font_mapping = new_mapping
|
||||||
|
|
||||||
|
|
||||||
|
func zoom_in():
|
||||||
|
self.zoom *= 1.1
|
||||||
|
zoom_spinbox.value = self.zoom
|
||||||
|
|
||||||
|
func zoom_out():
|
||||||
|
self.zoom *= 0.9
|
||||||
|
zoom_spinbox.value = self.zoom
|
||||||
|
|
||||||
|
|
||||||
|
func set_texture(texture: Texture):
|
||||||
|
if is_inside_tree():
|
||||||
|
texture_container.set_texture(texture)
|
||||||
|
texture_view.texture = texture
|
||||||
|
texture_view.rect_size = texture.get_size()
|
||||||
|
texture_view.rect_pivot_offset = texture_view.rect_size / 2.0
|
||||||
|
|
||||||
|
func _input(event):
|
||||||
|
if hover:
|
||||||
|
if event is InputEventMouseButton and event.pressed:
|
||||||
|
match event.button_index:
|
||||||
|
BUTTON_WHEEL_UP:
|
||||||
|
zoom_in()
|
||||||
|
BUTTON_WHEEL_DOWN:
|
||||||
|
zoom_out()
|
||||||
|
elif event is InputEventMouseMotion:
|
||||||
|
event = event as InputEventMouseMotion
|
||||||
|
|
||||||
|
if event.button_mask & BUTTON_LEFT:
|
||||||
|
texture_container.offset += event.relative
|
||||||
|
|
||||||
|
|
||||||
|
func _on_SpinBox_value_changed(value):
|
||||||
|
self.zoom = value
|
||||||
|
|
||||||
|
|
||||||
|
func _on_TextureContainer_mouse_entered():
|
||||||
|
hover = true
|
||||||
|
|
||||||
|
|
||||||
|
func _on_TextureContainer_mouse_exited():
|
||||||
|
hover = false
|
||||||
@ -0,0 +1,142 @@
|
|||||||
|
[gd_scene load_steps=7 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/texture_fonts/Assets/Fonts/RobotoMono/RobotoMono-Medium.ttf" type="DynamicFontData" id=2]
|
||||||
|
[ext_resource path="res://addons/texture_fonts/Assets/TransparentBG.png" type="Texture" id=3]
|
||||||
|
[ext_resource path="res://addons/texture_fonts/UI/Components/TextureViewer/TextureViewer.gd" type="Script" id=4]
|
||||||
|
[ext_resource path="res://addons/texture_fonts/UI/Components/TextureViewer/TextureView.gd" type="Script" id=5]
|
||||||
|
[ext_resource path="res://addons/texture_fonts/UI/Components/TextureViewer/TextureContainer.gd" type="Script" id=6]
|
||||||
|
|
||||||
|
[sub_resource type="DynamicFont" id=1]
|
||||||
|
extra_spacing_top = -2
|
||||||
|
extra_spacing_bottom = 5
|
||||||
|
font_data = ExtResource( 2 )
|
||||||
|
|
||||||
|
[node name="TextureViewer" type="VBoxContainer"]
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
script = ExtResource( 4 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Heading" type="HBoxContainer" parent="."]
|
||||||
|
margin_right = 1024.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Heading"]
|
||||||
|
margin_top = 5.0
|
||||||
|
margin_right = 82.0
|
||||||
|
margin_bottom = 19.0
|
||||||
|
text = "View Texture"
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="Heading"]
|
||||||
|
margin_left = 86.0
|
||||||
|
margin_right = 901.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
mouse_filter = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="Heading"]
|
||||||
|
margin_left = 905.0
|
||||||
|
margin_top = 5.0
|
||||||
|
margin_right = 946.0
|
||||||
|
margin_bottom = 19.0
|
||||||
|
text = "Zoom:"
|
||||||
|
|
||||||
|
[node name="SpinBox" type="SpinBox" parent="Heading"]
|
||||||
|
margin_left = 950.0
|
||||||
|
margin_right = 1024.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
min_value = 10.0
|
||||||
|
max_value = 5000.0
|
||||||
|
step = 10.0
|
||||||
|
value = 100.0
|
||||||
|
exp_edit = true
|
||||||
|
suffix = "%"
|
||||||
|
|
||||||
|
[node name="Control" type="Control" parent="."]
|
||||||
|
margin_top = 28.0
|
||||||
|
margin_right = 1024.0
|
||||||
|
margin_bottom = 600.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
|
||||||
|
[node name="TextureRect" type="TextureRect" parent="Control"]
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
mouse_filter = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
texture = ExtResource( 3 )
|
||||||
|
expand = true
|
||||||
|
stretch_mode = 2
|
||||||
|
|
||||||
|
[node name="TextureContainer" type="Container" parent="Control"]
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
rect_clip_content = true
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
script = ExtResource( 6 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="TextureView" type="TextureRect" parent="Control/TextureContainer"]
|
||||||
|
margin_left = 512.0
|
||||||
|
margin_top = 286.0
|
||||||
|
margin_right = 512.0
|
||||||
|
margin_bottom = 286.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
size_flags_horizontal = 6
|
||||||
|
size_flags_vertical = 6
|
||||||
|
stretch_mode = 3
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="RectPreview" type="ColorRect" parent="Control/TextureContainer/TextureView"]
|
||||||
|
visible = false
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
mouse_filter = 2
|
||||||
|
size_flags_horizontal = 5
|
||||||
|
size_flags_vertical = 5
|
||||||
|
color = Color( 1, 0, 0, 0.431373 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Control/TextureContainer/TextureView/RectPreview"]
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
margin_left = -5.0
|
||||||
|
margin_top = -11.0
|
||||||
|
margin_right = 5.0
|
||||||
|
margin_bottom = 11.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
custom_fonts/font = SubResource( 1 )
|
||||||
|
custom_colors/font_color = Color( 1, 1, 1, 1 )
|
||||||
|
custom_colors/font_color_shadow = Color( 0, 0, 0, 0.45098 )
|
||||||
|
text = "a"
|
||||||
|
align = 1
|
||||||
|
valign = 1
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[connection signal="value_changed" from="Heading/SpinBox" to="." method="_on_SpinBox_value_changed"]
|
||||||
|
[connection signal="mouse_entered" from="Control/TextureContainer" to="." method="_on_TextureContainer_mouse_entered"]
|
||||||
|
[connection signal="mouse_exited" from="Control/TextureContainer" to="." method="_on_TextureContainer_mouse_exited"]
|
||||||
|
[connection signal="resized" from="Control/TextureContainer" to="Control/TextureContainer" method="_on_TextureContainer_resized"]
|
||||||
|
[connection signal="mouse_entered" from="Control/TextureContainer/TextureView" to="Control/TextureContainer/TextureView" method="_on_TextureView_mouse_entered"]
|
||||||
|
[connection signal="mouse_exited" from="Control/TextureContainer/TextureView" to="Control/TextureContainer/TextureView" method="_on_TextureView_mouse_exited"]
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
tool
|
||||||
|
extends VBoxContainer
|
||||||
|
|
||||||
|
signal value_changed(value)
|
||||||
|
|
||||||
|
onready var label_node := $Heading/Label
|
||||||
|
onready var x_node := $Values/X
|
||||||
|
onready var y_node := $Values/Y
|
||||||
|
|
||||||
|
|
||||||
|
export(Vector2) var min_value: Vector2 = Vector2(-100.0, -100.0) setget set_min_value, get_min_value
|
||||||
|
var _min_value := Vector2(-100.0, -100.0)
|
||||||
|
func set_min_value(new_value: Vector2):
|
||||||
|
_min_value = new_value
|
||||||
|
if is_instance_valid(x_node) and is_instance_valid(y_node):
|
||||||
|
x_node.min_value = new_value.x
|
||||||
|
y_node.min_value = new_value.y
|
||||||
|
func get_min_value():
|
||||||
|
if is_instance_valid(x_node) and is_instance_valid(y_node):
|
||||||
|
return Vector2(x_node.min_value, y_node.min_value)
|
||||||
|
|
||||||
|
export(Vector2) var max_value: Vector2 = Vector2.ZERO setget set_max_value, get_max_value
|
||||||
|
var _max_value := Vector2(100.0, 100.0)
|
||||||
|
func set_max_value(new_value: Vector2):
|
||||||
|
_max_value = new_value
|
||||||
|
if is_instance_valid(x_node) and is_instance_valid(y_node):
|
||||||
|
x_node.max_value = new_value.x
|
||||||
|
y_node.max_value = new_value.y
|
||||||
|
func get_max_value():
|
||||||
|
if is_instance_valid(x_node) and is_instance_valid(y_node):
|
||||||
|
return Vector2(x_node.max_value, y_node.max_value)
|
||||||
|
|
||||||
|
|
||||||
|
export(Vector2) var value: Vector2 setget set_value, get_value
|
||||||
|
var _value := Vector2.ZERO
|
||||||
|
func set_value(new_value: Vector2):
|
||||||
|
_value = new_value
|
||||||
|
if is_instance_valid(x_node) and is_instance_valid(y_node):
|
||||||
|
x_node.value = new_value.x
|
||||||
|
y_node.value = new_value.y
|
||||||
|
func get_value():
|
||||||
|
if is_instance_valid(x_node) and is_instance_valid(y_node):
|
||||||
|
return Vector2(x_node.value, y_node.value)
|
||||||
|
|
||||||
|
|
||||||
|
export(String) var label := "Label" setget set_label, get_label
|
||||||
|
var _label := "Label"
|
||||||
|
func set_label(new_label: String):
|
||||||
|
_label = new_label
|
||||||
|
if is_instance_valid(label_node):
|
||||||
|
label_node.text = new_label
|
||||||
|
func get_label():
|
||||||
|
if is_instance_valid(label_node):
|
||||||
|
return label_node.text
|
||||||
|
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
set_label(_label)
|
||||||
|
set_value(_value)
|
||||||
|
set_min_value(_min_value)
|
||||||
|
set_max_value(_max_value)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_X_value_changed(new_value):
|
||||||
|
value.x = new_value
|
||||||
|
emit_signal("value_changed", value)
|
||||||
|
|
||||||
|
func _on_Y_value_changed(new_value):
|
||||||
|
value.y = new_value
|
||||||
|
emit_signal("value_changed", value)
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/texture_fonts/UI/Components/Vector2Edit.gd" type="Script" id=1]
|
||||||
|
|
||||||
|
[node name="Vector2Edit" type="VBoxContainer"]
|
||||||
|
anchor_right = 0.179
|
||||||
|
anchor_bottom = 0.07
|
||||||
|
margin_right = -32.2959
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": true
|
||||||
|
}
|
||||||
|
min_value = null
|
||||||
|
max_value = null
|
||||||
|
value = null
|
||||||
|
label = null
|
||||||
|
|
||||||
|
[node name="Heading" type="HBoxContainer" parent="."]
|
||||||
|
margin_right = 183.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Heading"]
|
||||||
|
margin_right = 34.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
text = "Label"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="Heading"]
|
||||||
|
margin_left = 38.0
|
||||||
|
margin_right = 183.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="Values" type="HBoxContainer" parent="."]
|
||||||
|
margin_top = 18.0
|
||||||
|
margin_right = 183.0
|
||||||
|
margin_bottom = 42.0
|
||||||
|
|
||||||
|
[node name="XLabel" type="Label" parent="Values"]
|
||||||
|
margin_top = 5.0
|
||||||
|
margin_right = 12.0
|
||||||
|
margin_bottom = 19.0
|
||||||
|
text = "X:"
|
||||||
|
|
||||||
|
[node name="X" type="SpinBox" parent="Values"]
|
||||||
|
margin_left = 16.0
|
||||||
|
margin_right = 90.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
min_value = -100.0
|
||||||
|
|
||||||
|
[node name="YLabel" type="Label" parent="Values"]
|
||||||
|
margin_left = 94.0
|
||||||
|
margin_top = 5.0
|
||||||
|
margin_right = 105.0
|
||||||
|
margin_bottom = 19.0
|
||||||
|
text = "Y:"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Y" type="SpinBox" parent="Values"]
|
||||||
|
margin_left = 109.0
|
||||||
|
margin_right = 183.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
min_value = -100.0
|
||||||
|
|
||||||
|
[connection signal="value_changed" from="Values/X" to="." method="_on_X_value_changed"]
|
||||||
|
[connection signal="value_changed" from="Values/Y" to="." method="_on_Y_value_changed"]
|
||||||
@ -0,0 +1,88 @@
|
|||||||
|
tool
|
||||||
|
extends MarginContainer
|
||||||
|
|
||||||
|
signal change
|
||||||
|
|
||||||
|
onready var size := $VBoxContainer/RectSettings/Size
|
||||||
|
onready var gap := $VBoxContainer/RectSettings/Gap
|
||||||
|
onready var offset := $VBoxContainer/RectSettings/Offset
|
||||||
|
onready var chars := $VBoxContainer/HSplitContainer/HBoxContainer/TextEdit
|
||||||
|
onready var texture_viewer := $VBoxContainer/HSplitContainer/TextureViewer
|
||||||
|
onready var scale := $VBoxContainer/RectSettings/Scaling/HBoxContainer/Scale
|
||||||
|
onready var interpolation := $VBoxContainer/RectSettings/Scaling/HBoxContainer/Interpolation
|
||||||
|
|
||||||
|
var current_mapping #: TextureFontMapping
|
||||||
|
|
||||||
|
|
||||||
|
var interpolation_options = [
|
||||||
|
Image.INTERPOLATE_BILINEAR,
|
||||||
|
Image.INTERPOLATE_CUBIC,
|
||||||
|
Image.INTERPOLATE_LANCZOS,
|
||||||
|
Image.INTERPOLATE_NEAREST,
|
||||||
|
Image.INTERPOLATE_TRILINEAR
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
interpolation.clear()
|
||||||
|
interpolation.add_item("Bilinear")
|
||||||
|
interpolation.add_item("Cubic")
|
||||||
|
interpolation.add_item("Lanczos")
|
||||||
|
interpolation.add_item("Nearest")
|
||||||
|
interpolation.add_item("Trilinear")
|
||||||
|
|
||||||
|
|
||||||
|
func set_mapping(mapping):
|
||||||
|
current_mapping = mapping
|
||||||
|
|
||||||
|
var texture: Texture = mapping.source_texture
|
||||||
|
var max_size := texture.get_size()
|
||||||
|
|
||||||
|
size.max_value = max_size
|
||||||
|
gap.max_value = max_size
|
||||||
|
offset.max_value = max_size
|
||||||
|
|
||||||
|
size.value = mapping.rect_size
|
||||||
|
gap.value = mapping.rect_gap
|
||||||
|
offset.value = mapping.texture_offset
|
||||||
|
chars.text = mapping.chars
|
||||||
|
scale.value = mapping.scale
|
||||||
|
interpolation.selected = interpolation_options.find(mapping.interpolation)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_Size_value_changed(value: Vector2):
|
||||||
|
if current_mapping:
|
||||||
|
current_mapping.rect_size = value
|
||||||
|
emit_signal("change")
|
||||||
|
|
||||||
|
|
||||||
|
func _on_Gap_value_changed(value: Vector2):
|
||||||
|
if current_mapping:
|
||||||
|
current_mapping.rect_gap = value
|
||||||
|
emit_signal("change")
|
||||||
|
|
||||||
|
|
||||||
|
func _on_Offset_value_changed(value: Vector2):
|
||||||
|
if current_mapping:
|
||||||
|
current_mapping.texture_offset = value
|
||||||
|
emit_signal("change")
|
||||||
|
|
||||||
|
|
||||||
|
func _on_TextEdit_text_changed():
|
||||||
|
if current_mapping:
|
||||||
|
current_mapping.chars = chars.text
|
||||||
|
emit_signal("change")
|
||||||
|
|
||||||
|
|
||||||
|
func _on_Scale_value_changed(value):
|
||||||
|
if current_mapping:
|
||||||
|
current_mapping.scale = value
|
||||||
|
texture_viewer.set_texture(current_mapping.scaled_texture)
|
||||||
|
emit_signal("change")
|
||||||
|
|
||||||
|
|
||||||
|
func _on_OptionButton_item_selected(index):
|
||||||
|
if current_mapping:
|
||||||
|
current_mapping.interpolation = interpolation_options[index]
|
||||||
|
texture_viewer.set_texture(current_mapping.scaled_texture)
|
||||||
|
emit_signal("change")
|
||||||
@ -0,0 +1,204 @@
|
|||||||
|
tool
|
||||||
|
extends MarginContainer
|
||||||
|
|
||||||
|
signal close
|
||||||
|
|
||||||
|
# ------ Resources ------
|
||||||
|
|
||||||
|
const file_scene = preload("./Components/File.tscn")
|
||||||
|
|
||||||
|
# ------ References ------
|
||||||
|
|
||||||
|
onready var file_list := $TabContainer/Textures/Files/Panel/ScrollContainer/FileList
|
||||||
|
onready var file_dialog := $TabContainer/Textures/Files/HeadingBox/AddTextureButton/FileDialog
|
||||||
|
onready var file_settings := $TabContainer/Textures/FileSettings
|
||||||
|
onready var texture_viewer := $TabContainer/Textures/FileSettings/VBoxContainer/HSplitContainer/TextureViewer
|
||||||
|
onready var no_selection_overlay := $TabContainer/Textures/FileSettings/NoSelectionOverlay
|
||||||
|
|
||||||
|
onready var font_preview := $"TabContainer/Font Settings/Preview"
|
||||||
|
onready var font_settings := $"TabContainer/Font Settings"
|
||||||
|
|
||||||
|
# ------ Variables ------
|
||||||
|
|
||||||
|
var selected_file_node
|
||||||
|
var file_nodes: Array = []
|
||||||
|
var font_ref: WeakRef
|
||||||
|
|
||||||
|
# ------ Inherited Methods -----
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
file_settings.connect("change", self, "queue_save")
|
||||||
|
font_settings.connect("change", self, "queue_save")
|
||||||
|
|
||||||
|
# ------ Methods ------
|
||||||
|
|
||||||
|
|
||||||
|
# reset editor, and populate for new font
|
||||||
|
func edit_font(new_font) -> void:
|
||||||
|
if font_ref:
|
||||||
|
save_now()
|
||||||
|
|
||||||
|
font_ref = weakref(new_font)
|
||||||
|
for node in file_nodes:
|
||||||
|
node.queue_free()
|
||||||
|
|
||||||
|
file_nodes.clear()
|
||||||
|
|
||||||
|
no_selection_overlay.visible = true
|
||||||
|
|
||||||
|
for mapping in new_font.texture_mappings:
|
||||||
|
_add_texture_ui(mapping.source_texture)
|
||||||
|
|
||||||
|
if file_nodes.size() != 0:
|
||||||
|
change_texture(0)
|
||||||
|
|
||||||
|
if is_inside_tree():
|
||||||
|
font_settings.set_font(new_font)
|
||||||
|
font_preview.set_font(new_font)
|
||||||
|
|
||||||
|
|
||||||
|
func get_font_from_ref() -> Font:
|
||||||
|
var font = font_ref.get_ref()
|
||||||
|
|
||||||
|
if font: return font
|
||||||
|
else:
|
||||||
|
emit_signal("close")
|
||||||
|
return font
|
||||||
|
|
||||||
|
|
||||||
|
func update_overlay():
|
||||||
|
if is_instance_valid(selected_file_node):
|
||||||
|
no_selection_overlay.visible = false
|
||||||
|
else:
|
||||||
|
no_selection_overlay.visible = true
|
||||||
|
|
||||||
|
|
||||||
|
var _queued_save_count := 0
|
||||||
|
func queue_save(timeout := 2.5):
|
||||||
|
_queued_save_count += 1
|
||||||
|
|
||||||
|
if not is_inside_tree():
|
||||||
|
return
|
||||||
|
|
||||||
|
var timer = Timer.new()
|
||||||
|
add_child(timer)
|
||||||
|
timer.start(2.5)
|
||||||
|
yield(timer, "timeout")
|
||||||
|
|
||||||
|
_queued_save_count -= 1
|
||||||
|
if _queued_save_count == 0:
|
||||||
|
_save()
|
||||||
|
elif _queued_save_count < 0:
|
||||||
|
_queued_save_count += 1
|
||||||
|
|
||||||
|
|
||||||
|
func save_now():
|
||||||
|
_queued_save_count = 0
|
||||||
|
_save()
|
||||||
|
|
||||||
|
|
||||||
|
func _save():
|
||||||
|
if font_ref and font_ref.get_ref():
|
||||||
|
var font = get_font_from_ref()
|
||||||
|
|
||||||
|
font.build_font()
|
||||||
|
|
||||||
|
if font.resource_path == "":
|
||||||
|
return
|
||||||
|
|
||||||
|
var error := ResourceSaver.save(font.resource_path, font)
|
||||||
|
if error != OK:
|
||||||
|
push_error("Failed to Save Font with Path: " + font.resource_path + ". Error Code: " + String(error))
|
||||||
|
else:
|
||||||
|
print("Saved Font: " + font.resource_path)
|
||||||
|
else:
|
||||||
|
emit_signal("close")
|
||||||
|
|
||||||
|
# ------ Actions ------
|
||||||
|
|
||||||
|
|
||||||
|
func add_texture(texture: Texture, idx := -1):
|
||||||
|
_add_texture_ui(texture, idx)
|
||||||
|
var font = get_font_from_ref()
|
||||||
|
font.add_texture(texture)
|
||||||
|
change_texture(file_list.get_child_count() - 1)
|
||||||
|
queue_save()
|
||||||
|
|
||||||
|
func _add_texture_ui(texture: Texture, idx := -1):
|
||||||
|
var file_node := file_scene.instance()
|
||||||
|
|
||||||
|
file_list.add_child(file_node)
|
||||||
|
file_node.set_texture(texture)
|
||||||
|
if idx == -1:
|
||||||
|
file_nodes.append(file_node)
|
||||||
|
else:
|
||||||
|
file_list.move_child(file_node, idx)
|
||||||
|
file_nodes.insert(idx, file_node)
|
||||||
|
|
||||||
|
file_node.connect("file_removed", self, "_on_file_removed")
|
||||||
|
file_node.connect("file_changed", self, "_on_file_changed")
|
||||||
|
|
||||||
|
|
||||||
|
func delete_texture(node):
|
||||||
|
var index = file_nodes.find(node)
|
||||||
|
node.queue_free()
|
||||||
|
file_nodes.remove(index)
|
||||||
|
|
||||||
|
if node == selected_file_node:
|
||||||
|
selected_file_node = null
|
||||||
|
|
||||||
|
var font = get_font_from_ref()
|
||||||
|
font.remove_texture(index)
|
||||||
|
|
||||||
|
update_overlay()
|
||||||
|
queue_save()
|
||||||
|
|
||||||
|
|
||||||
|
func change_texture(index: int):
|
||||||
|
var file = file_nodes[index]
|
||||||
|
|
||||||
|
if is_instance_valid(selected_file_node):
|
||||||
|
selected_file_node.selected = false
|
||||||
|
|
||||||
|
var font = get_font_from_ref()
|
||||||
|
|
||||||
|
if is_instance_valid(file):
|
||||||
|
file.selected = true
|
||||||
|
selected_file_node = file
|
||||||
|
texture_viewer.set_texture(font.texture_mappings[index].scaled_texture)
|
||||||
|
|
||||||
|
file_settings.set_mapping(font.texture_mappings[index])
|
||||||
|
texture_viewer.set_mapping(font.texture_mappings[index])
|
||||||
|
|
||||||
|
update_overlay()
|
||||||
|
|
||||||
|
|
||||||
|
# ------ Signals ------
|
||||||
|
|
||||||
|
func _on_file_removed(file):
|
||||||
|
if file == selected_file_node:
|
||||||
|
selected_file_node = null
|
||||||
|
if not file_nodes.empty():
|
||||||
|
selected_file_node = file_nodes.front()
|
||||||
|
selected_file_node.selected = true
|
||||||
|
|
||||||
|
delete_texture(file)
|
||||||
|
update_overlay()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_file_changed(file):
|
||||||
|
var idx = file_nodes.find(file)
|
||||||
|
if idx == -1:
|
||||||
|
return
|
||||||
|
|
||||||
|
change_texture(idx)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_AddTextureButton_pressed():
|
||||||
|
file_dialog.popup_centered()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_FileDialog_file_selected(path):
|
||||||
|
var texture = load(path)
|
||||||
|
if texture is Texture:
|
||||||
|
add_texture(texture)
|
||||||
@ -0,0 +1,666 @@
|
|||||||
|
[gd_scene load_steps=13 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/texture_fonts/UI/Components/Vector2Edit.tscn" type="PackedScene" id=1]
|
||||||
|
[ext_resource path="res://addons/texture_fonts/Assets/ExternalLink.svg" type="Texture" id=2]
|
||||||
|
[ext_resource path="res://addons/texture_fonts/UI/FontSettings.gd" type="Script" id=3]
|
||||||
|
[ext_resource path="res://addons/texture_fonts/UI/Components/TextureViewer/TextureViewer.tscn" type="PackedScene" id=4]
|
||||||
|
[ext_resource path="res://addons/texture_fonts/Assets/Fonts/RobotoMono/RobotoMono-Medium.ttf" type="DynamicFontData" id=5]
|
||||||
|
[ext_resource path="res://addons/texture_fonts/UI/FontEditor.gd" type="Script" id=6]
|
||||||
|
[ext_resource path="res://addons/texture_fonts/UI/FileSettings.gd" type="Script" id=7]
|
||||||
|
[ext_resource path="res://addons/texture_fonts/UI/Preview.gd" type="Script" id=8]
|
||||||
|
[ext_resource path="res://addons/texture_fonts/UI/HelpButton.gd" type="Script" id=9]
|
||||||
|
|
||||||
|
[sub_resource type="DynamicFont" id=1]
|
||||||
|
font_data = ExtResource( 5 )
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id=2]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
bg_color = Color( 0.12549, 0.141176, 0.192157, 1 )
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id=3]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
bg_color = Color( 0.100392, 0.112941, 0.153726, 1 )
|
||||||
|
|
||||||
|
[node name="FontEditor" type="MarginContainer"]
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
rect_min_size = Vector2( 0, 280 )
|
||||||
|
size_flags_stretch_ratio = 2.0
|
||||||
|
script = ExtResource( 6 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="TabContainer" type="TabContainer" parent="."]
|
||||||
|
margin_right = 1048.0
|
||||||
|
margin_bottom = 628.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
tab_align = 0
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Textures" type="HSplitContainer" parent="TabContainer"]
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
margin_left = 4.0
|
||||||
|
margin_top = 32.0
|
||||||
|
margin_right = -4.0
|
||||||
|
margin_bottom = -4.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
|
||||||
|
[node name="Files" type="VBoxContainer" parent="TabContainer/Textures"]
|
||||||
|
margin_right = 254.0
|
||||||
|
margin_bottom = 592.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
|
||||||
|
[node name="HeadingBox" type="HBoxContainer" parent="TabContainer/Textures/Files"]
|
||||||
|
margin_right = 254.0
|
||||||
|
margin_bottom = 20.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TabContainer/Textures/Files/HeadingBox"]
|
||||||
|
margin_top = 3.0
|
||||||
|
margin_right = 30.0
|
||||||
|
margin_bottom = 17.0
|
||||||
|
text = "Files"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="TabContainer/Textures/Files/HeadingBox"]
|
||||||
|
margin_left = 34.0
|
||||||
|
margin_right = 213.0
|
||||||
|
margin_bottom = 20.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="AddTextureButton" type="Button" parent="TabContainer/Textures/Files/HeadingBox"]
|
||||||
|
margin_left = 217.0
|
||||||
|
margin_right = 254.0
|
||||||
|
margin_bottom = 20.0
|
||||||
|
text = "Add"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="FileDialog" type="FileDialog" parent="TabContainer/Textures/Files/HeadingBox/AddTextureButton"]
|
||||||
|
margin_right = 400.0
|
||||||
|
margin_bottom = 300.0
|
||||||
|
rect_min_size = Vector2( 400, 300 )
|
||||||
|
size_flags_vertical = 3
|
||||||
|
window_title = "Open a File"
|
||||||
|
resizable = true
|
||||||
|
mode = 0
|
||||||
|
filters = PoolStringArray( "*.png, *.bmp, *.dds, *.exr, *.hdr, *.jpg, *.jpeg, *.tga, *.svg, *.svgz, *.webp; Textures" )
|
||||||
|
|
||||||
|
[node name="Panel" type="Panel" parent="TabContainer/Textures/Files"]
|
||||||
|
margin_top = 24.0
|
||||||
|
margin_right = 254.0
|
||||||
|
margin_bottom = 592.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="ScrollContainer" type="ScrollContainer" parent="TabContainer/Textures/Files/Panel"]
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="FileList" type="VBoxContainer" parent="TabContainer/Textures/Files/Panel/ScrollContainer"]
|
||||||
|
margin_right = 254.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="FileSettings" type="MarginContainer" parent="TabContainer/Textures"]
|
||||||
|
margin_left = 266.0
|
||||||
|
margin_right = 1040.0
|
||||||
|
margin_bottom = 592.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
size_flags_stretch_ratio = 3.0
|
||||||
|
script = ExtResource( 7 )
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="TabContainer/Textures/FileSettings"]
|
||||||
|
margin_right = 774.0
|
||||||
|
margin_bottom = 592.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="RectSettings" type="HBoxContainer" parent="TabContainer/Textures/FileSettings/VBoxContainer"]
|
||||||
|
margin_right = 774.0
|
||||||
|
margin_bottom = 42.0
|
||||||
|
custom_constants/separation = 12
|
||||||
|
|
||||||
|
[node name="Size" parent="TabContainer/Textures/FileSettings/VBoxContainer/RectSettings" instance=ExtResource( 1 )]
|
||||||
|
anchor_right = 0.0
|
||||||
|
anchor_bottom = 0.0
|
||||||
|
margin_right = 183.0
|
||||||
|
margin_bottom = 42.0
|
||||||
|
min_value = Vector2( 1, 1 )
|
||||||
|
max_value = Vector2( 100, 100 )
|
||||||
|
value = Vector2( 1, 1 )
|
||||||
|
label = "Rect Size"
|
||||||
|
|
||||||
|
[node name="Gap" parent="TabContainer/Textures/FileSettings/VBoxContainer/RectSettings" instance=ExtResource( 1 )]
|
||||||
|
anchor_right = 0.0
|
||||||
|
anchor_bottom = 0.0
|
||||||
|
margin_left = 195.0
|
||||||
|
margin_right = 378.0
|
||||||
|
margin_bottom = 42.0
|
||||||
|
min_value = Vector2( 0, 0 )
|
||||||
|
max_value = Vector2( 100, 100 )
|
||||||
|
value = Vector2( 0, 0 )
|
||||||
|
label = "Rect Gap"
|
||||||
|
|
||||||
|
[node name="Offset" parent="TabContainer/Textures/FileSettings/VBoxContainer/RectSettings" instance=ExtResource( 1 )]
|
||||||
|
anchor_right = 0.0
|
||||||
|
anchor_bottom = 0.0
|
||||||
|
margin_left = 390.0
|
||||||
|
margin_right = 573.0
|
||||||
|
margin_bottom = 42.0
|
||||||
|
min_value = Vector2( 0, 0 )
|
||||||
|
max_value = Vector2( 100, 100 )
|
||||||
|
value = Vector2( 0, 0 )
|
||||||
|
label = "Texture Offset"
|
||||||
|
|
||||||
|
[node name="Scaling" type="VBoxContainer" parent="TabContainer/Textures/FileSettings/VBoxContainer/RectSettings"]
|
||||||
|
margin_left = 585.0
|
||||||
|
margin_right = 741.0
|
||||||
|
margin_bottom = 42.0
|
||||||
|
|
||||||
|
[node name="HeadingContainer" type="HBoxContainer" parent="TabContainer/Textures/FileSettings/VBoxContainer/RectSettings/Scaling"]
|
||||||
|
margin_right = 156.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TabContainer/Textures/FileSettings/VBoxContainer/RectSettings/Scaling/HeadingContainer"]
|
||||||
|
margin_right = 103.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
text = "Upscale Texture"
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="TabContainer/Textures/FileSettings/VBoxContainer/RectSettings/Scaling/HeadingContainer"]
|
||||||
|
margin_left = 107.0
|
||||||
|
margin_right = 156.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="TabContainer/Textures/FileSettings/VBoxContainer/RectSettings/Scaling"]
|
||||||
|
margin_top = 18.0
|
||||||
|
margin_right = 156.0
|
||||||
|
margin_bottom = 42.0
|
||||||
|
|
||||||
|
[node name="Scale" type="SpinBox" parent="TabContainer/Textures/FileSettings/VBoxContainer/RectSettings/Scaling/HBoxContainer"]
|
||||||
|
margin_right = 74.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
min_value = 1.0
|
||||||
|
max_value = 10.0
|
||||||
|
value = 1.0
|
||||||
|
suffix = "x"
|
||||||
|
|
||||||
|
[node name="Interpolation" type="OptionButton" parent="TabContainer/Textures/FileSettings/VBoxContainer/RectSettings/Scaling/HBoxContainer"]
|
||||||
|
margin_left = 78.0
|
||||||
|
margin_right = 156.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
text = "Bilinear"
|
||||||
|
items = [ "Bilinear", null, false, 0, null, "Cubic", null, false, 1, null, "Lanczos", null, false, 2, null, "Nearest", null, false, 3, null, "Trilinear", null, false, 4, null ]
|
||||||
|
selected = 0
|
||||||
|
|
||||||
|
[node name="HSplitContainer" type="HSplitContainer" parent="TabContainer/Textures/FileSettings/VBoxContainer"]
|
||||||
|
margin_top = 46.0
|
||||||
|
margin_right = 774.0
|
||||||
|
margin_bottom = 592.0
|
||||||
|
size_flags_vertical = 3
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="VBoxContainer" parent="TabContainer/Textures/FileSettings/VBoxContainer/HSplitContainer"]
|
||||||
|
margin_right = 381.0
|
||||||
|
margin_bottom = 546.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
|
||||||
|
[node name="HeadingBox" type="HBoxContainer" parent="TabContainer/Textures/FileSettings/VBoxContainer/HSplitContainer/HBoxContainer"]
|
||||||
|
margin_right = 381.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="CharactersLabel" type="Label" parent="TabContainer/Textures/FileSettings/VBoxContainer/HSplitContainer/HBoxContainer/HeadingBox"]
|
||||||
|
margin_right = 135.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
text = "Characters in Texture"
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="TabContainer/Textures/FileSettings/VBoxContainer/HSplitContainer/HBoxContainer/HeadingBox"]
|
||||||
|
margin_left = 139.0
|
||||||
|
margin_right = 381.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="TextEdit" type="TextEdit" parent="TabContainer/Textures/FileSettings/VBoxContainer/HSplitContainer/HBoxContainer"]
|
||||||
|
margin_top = 18.0
|
||||||
|
margin_right = 381.0
|
||||||
|
margin_bottom = 546.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 7
|
||||||
|
custom_fonts/font = SubResource( 1 )
|
||||||
|
draw_tabs = true
|
||||||
|
draw_spaces = true
|
||||||
|
|
||||||
|
[node name="TextureViewer" parent="TabContainer/Textures/FileSettings/VBoxContainer/HSplitContainer" instance=ExtResource( 4 )]
|
||||||
|
anchor_right = 0.0
|
||||||
|
anchor_bottom = 0.0
|
||||||
|
margin_left = 393.0
|
||||||
|
margin_right = 774.0
|
||||||
|
margin_bottom = 546.0
|
||||||
|
|
||||||
|
[node name="NoSelectionOverlay" type="ColorRect" parent="TabContainer/Textures/FileSettings"]
|
||||||
|
margin_right = 774.0
|
||||||
|
margin_bottom = 592.0
|
||||||
|
color = Color( 0.14902, 0.172549, 0.231373, 0.784314 )
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TabContainer/Textures/FileSettings/NoSelectionOverlay"]
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
text = "Add or Select a Texture"
|
||||||
|
align = 1
|
||||||
|
valign = 1
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Font Settings" type="HSplitContainer" parent="TabContainer"]
|
||||||
|
visible = false
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
margin_left = 4.0
|
||||||
|
margin_top = 32.0
|
||||||
|
margin_right = -4.0
|
||||||
|
margin_bottom = -4.0
|
||||||
|
script = ExtResource( 3 )
|
||||||
|
|
||||||
|
[node name="HSplitContainer" type="HSplitContainer" parent="TabContainer/Font Settings"]
|
||||||
|
margin_right = 687.0
|
||||||
|
margin_bottom = 592.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_stretch_ratio = 2.0
|
||||||
|
|
||||||
|
[node name="Settings" type="VBoxContainer" parent="TabContainer/Font Settings/HSplitContainer"]
|
||||||
|
margin_right = 223.0
|
||||||
|
margin_bottom = 592.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="HeadingBox" type="HBoxContainer" parent="TabContainer/Font Settings/HSplitContainer/Settings"]
|
||||||
|
margin_right = 223.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TabContainer/Font Settings/HSplitContainer/Settings/HeadingBox"]
|
||||||
|
margin_right = 83.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
text = "Font Settings"
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="TabContainer/Font Settings/HSplitContainer/Settings/HeadingBox"]
|
||||||
|
margin_left = 87.0
|
||||||
|
margin_right = 223.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="TabContainer/Font Settings/HSplitContainer/Settings"]
|
||||||
|
margin_top = 18.0
|
||||||
|
margin_right = 223.0
|
||||||
|
margin_bottom = 592.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
custom_constants/margin_right = 4
|
||||||
|
custom_constants/margin_top = 4
|
||||||
|
custom_constants/margin_left = 4
|
||||||
|
custom_constants/margin_bottom = 4
|
||||||
|
|
||||||
|
[node name="Grid" type="GridContainer" parent="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer"]
|
||||||
|
margin_left = 4.0
|
||||||
|
margin_top = 4.0
|
||||||
|
margin_right = 219.0
|
||||||
|
margin_bottom = 570.0
|
||||||
|
columns = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid"]
|
||||||
|
margin_top = 5.0
|
||||||
|
margin_right = 106.0
|
||||||
|
margin_bottom = 19.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
text = "Height:"
|
||||||
|
|
||||||
|
[node name="Height" type="SpinBox" parent="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid"]
|
||||||
|
margin_left = 110.0
|
||||||
|
margin_right = 215.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
min_value = 1.0
|
||||||
|
max_value = 4096.0
|
||||||
|
value = 1.0
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid"]
|
||||||
|
margin_top = 33.0
|
||||||
|
margin_right = 106.0
|
||||||
|
margin_bottom = 47.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
text = "Gap:"
|
||||||
|
|
||||||
|
[node name="Gap" type="SpinBox" parent="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid"]
|
||||||
|
margin_left = 110.0
|
||||||
|
margin_top = 28.0
|
||||||
|
margin_right = 215.0
|
||||||
|
margin_bottom = 52.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
min_value = -4096.0
|
||||||
|
max_value = 4096.0
|
||||||
|
|
||||||
|
[node name="Label3" type="Label" parent="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid"]
|
||||||
|
margin_top = 61.0
|
||||||
|
margin_right = 106.0
|
||||||
|
margin_bottom = 75.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
text = "Horizontal Align:"
|
||||||
|
|
||||||
|
[node name="HorizontalAlign" type="SpinBox" parent="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid"]
|
||||||
|
margin_left = 110.0
|
||||||
|
margin_top = 56.0
|
||||||
|
margin_right = 215.0
|
||||||
|
margin_bottom = 80.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
min_value = -4096.0
|
||||||
|
max_value = 4096.0
|
||||||
|
|
||||||
|
[node name="Label6" type="Label" parent="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid"]
|
||||||
|
margin_top = 89.0
|
||||||
|
margin_right = 106.0
|
||||||
|
margin_bottom = 103.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
text = "Vertical Align:"
|
||||||
|
|
||||||
|
[node name="VerticalAlign" type="SpinBox" parent="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid"]
|
||||||
|
margin_left = 110.0
|
||||||
|
margin_top = 84.0
|
||||||
|
margin_right = 215.0
|
||||||
|
margin_bottom = 108.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
min_value = -4096.0
|
||||||
|
max_value = 4096.0
|
||||||
|
|
||||||
|
[node name="Label4" type="Label" parent="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid"]
|
||||||
|
margin_top = 117.0
|
||||||
|
margin_right = 106.0
|
||||||
|
margin_bottom = 131.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
text = "Ascent:"
|
||||||
|
|
||||||
|
[node name="Ascent" type="SpinBox" parent="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid"]
|
||||||
|
margin_left = 110.0
|
||||||
|
margin_top = 112.0
|
||||||
|
margin_right = 215.0
|
||||||
|
margin_bottom = 136.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
max_value = 4096.0
|
||||||
|
|
||||||
|
[node name="Label5" type="Label" parent="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid"]
|
||||||
|
margin_top = 145.0
|
||||||
|
margin_right = 106.0
|
||||||
|
margin_bottom = 159.0
|
||||||
|
text = "Monospaced:"
|
||||||
|
|
||||||
|
[node name="MonoSpaced" type="CheckBox" parent="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid"]
|
||||||
|
margin_left = 110.0
|
||||||
|
margin_top = 140.0
|
||||||
|
margin_right = 215.0
|
||||||
|
margin_bottom = 164.0
|
||||||
|
|
||||||
|
[node name="ListSettings" type="VBoxContainer" parent="TabContainer/Font Settings/HSplitContainer"]
|
||||||
|
margin_left = 235.0
|
||||||
|
margin_right = 687.0
|
||||||
|
margin_bottom = 592.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
size_flags_stretch_ratio = 2.0
|
||||||
|
|
||||||
|
[node name="VSplitContainer" type="VSplitContainer" parent="TabContainer/Font Settings/HSplitContainer/ListSettings"]
|
||||||
|
margin_right = 452.0
|
||||||
|
margin_bottom = 592.0
|
||||||
|
size_flags_vertical = 3
|
||||||
|
|
||||||
|
[node name="Kerning" type="VBoxContainer" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer"]
|
||||||
|
margin_right = 452.0
|
||||||
|
margin_bottom = 230.0
|
||||||
|
size_flags_vertical = 3
|
||||||
|
size_flags_stretch_ratio = 2.0
|
||||||
|
|
||||||
|
[node name="HeadingBox" type="HBoxContainer" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/Kerning"]
|
||||||
|
margin_right = 452.0
|
||||||
|
margin_bottom = 20.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="KerningLabel" type="Label" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/Kerning/HeadingBox"]
|
||||||
|
margin_top = 3.0
|
||||||
|
margin_right = 83.0
|
||||||
|
margin_bottom = 17.0
|
||||||
|
text = "Kerning Pairs"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/Kerning/HeadingBox"]
|
||||||
|
margin_left = 87.0
|
||||||
|
margin_right = 411.0
|
||||||
|
margin_bottom = 20.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="AddKerningButton" type="Button" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/Kerning/HeadingBox"]
|
||||||
|
margin_left = 415.0
|
||||||
|
margin_right = 452.0
|
||||||
|
margin_bottom = 20.0
|
||||||
|
text = "Add"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/Kerning"]
|
||||||
|
margin_top = 24.0
|
||||||
|
margin_right = 452.0
|
||||||
|
margin_bottom = 230.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
custom_constants/margin_right = 4
|
||||||
|
custom_constants/margin_top = 4
|
||||||
|
custom_constants/margin_left = 4
|
||||||
|
custom_constants/margin_bottom = 4
|
||||||
|
|
||||||
|
[node name="ScrollContainer" type="ScrollContainer" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/Kerning/MarginContainer"]
|
||||||
|
margin_left = 4.0
|
||||||
|
margin_top = 4.0
|
||||||
|
margin_right = 448.0
|
||||||
|
margin_bottom = 202.0
|
||||||
|
|
||||||
|
[node name="KerningList" type="VBoxContainer" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/Kerning/MarginContainer/ScrollContainer"]
|
||||||
|
margin_right = 444.0
|
||||||
|
margin_bottom = 198.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
|
||||||
|
[node name="CharSettings" type="VBoxContainer" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer"]
|
||||||
|
margin_top = 242.0
|
||||||
|
margin_right = 452.0
|
||||||
|
margin_bottom = 592.0
|
||||||
|
size_flags_vertical = 3
|
||||||
|
size_flags_stretch_ratio = 3.0
|
||||||
|
|
||||||
|
[node name="HeadingBox" type="HBoxContainer" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/CharSettings"]
|
||||||
|
margin_right = 452.0
|
||||||
|
margin_bottom = 20.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/CharSettings/HeadingBox"]
|
||||||
|
margin_top = 3.0
|
||||||
|
margin_right = 76.0
|
||||||
|
margin_bottom = 17.0
|
||||||
|
text = "Char Setting"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/CharSettings/HeadingBox"]
|
||||||
|
margin_left = 80.0
|
||||||
|
margin_right = 411.0
|
||||||
|
margin_bottom = 20.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="AddCharSettingButton" type="Button" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/CharSettings/HeadingBox"]
|
||||||
|
margin_left = 415.0
|
||||||
|
margin_right = 452.0
|
||||||
|
margin_bottom = 20.0
|
||||||
|
text = "Add"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/CharSettings"]
|
||||||
|
margin_top = 24.0
|
||||||
|
margin_right = 452.0
|
||||||
|
margin_bottom = 350.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
custom_constants/margin_right = 4
|
||||||
|
custom_constants/margin_top = 4
|
||||||
|
custom_constants/margin_left = 4
|
||||||
|
custom_constants/margin_bottom = 4
|
||||||
|
|
||||||
|
[node name="ScrollContainer" type="ScrollContainer" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/CharSettings/MarginContainer"]
|
||||||
|
margin_left = 4.0
|
||||||
|
margin_top = 4.0
|
||||||
|
margin_right = 448.0
|
||||||
|
margin_bottom = 322.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
size_flags_stretch_ratio = 2.0
|
||||||
|
|
||||||
|
[node name="SettingList" type="VBoxContainer" parent="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/CharSettings/MarginContainer/ScrollContainer"]
|
||||||
|
margin_right = 444.0
|
||||||
|
margin_bottom = 318.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
|
||||||
|
[node name="Preview" type="VBoxContainer" parent="TabContainer/Font Settings"]
|
||||||
|
margin_left = 699.0
|
||||||
|
margin_right = 1040.0
|
||||||
|
margin_bottom = 592.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
script = ExtResource( 8 )
|
||||||
|
|
||||||
|
[node name="HeadingBox" type="HBoxContainer" parent="TabContainer/Font Settings/Preview"]
|
||||||
|
margin_right = 341.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TabContainer/Font Settings/Preview/HeadingBox"]
|
||||||
|
margin_top = 5.0
|
||||||
|
margin_right = 50.0
|
||||||
|
margin_bottom = 19.0
|
||||||
|
text = "Preview"
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="TabContainer/Font Settings/Preview/HeadingBox"]
|
||||||
|
margin_left = 54.0
|
||||||
|
margin_right = 195.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="Scale" type="SpinBox" parent="TabContainer/Font Settings/Preview/HeadingBox"]
|
||||||
|
margin_left = 199.0
|
||||||
|
margin_right = 273.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
min_value = 100.0
|
||||||
|
max_value = 1000.0
|
||||||
|
step = 10.0
|
||||||
|
value = 100.0
|
||||||
|
exp_edit = true
|
||||||
|
suffix = "%"
|
||||||
|
|
||||||
|
[node name="ColorPickerButton" type="ColorPickerButton" parent="TabContainer/Font Settings/Preview/HeadingBox"]
|
||||||
|
margin_left = 277.0
|
||||||
|
margin_right = 341.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
rect_min_size = Vector2( 64, 0 )
|
||||||
|
color = Color( 0.12549, 0.141176, 0.192157, 1 )
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="ScrollContainer" parent="TabContainer/Font Settings/Preview"]
|
||||||
|
margin_top = 28.0
|
||||||
|
margin_right = 341.0
|
||||||
|
margin_bottom = 592.0
|
||||||
|
size_flags_vertical = 3
|
||||||
|
|
||||||
|
[node name="TextEdit" type="TextEdit" parent="TabContainer/Font Settings/Preview/MarginContainer"]
|
||||||
|
margin_right = 341.0
|
||||||
|
margin_bottom = 564.0
|
||||||
|
rect_clip_content = true
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
custom_styles/focus = SubResource( 2 )
|
||||||
|
custom_styles/normal = SubResource( 3 )
|
||||||
|
|
||||||
|
[node name="Control" type="Control" parent="."]
|
||||||
|
margin_right = 1048.0
|
||||||
|
margin_bottom = 628.0
|
||||||
|
mouse_filter = 2
|
||||||
|
|
||||||
|
[node name="HelpButton" type="Button" parent="Control"]
|
||||||
|
anchor_left = 1.0
|
||||||
|
anchor_right = 1.0
|
||||||
|
margin_left = -63.0
|
||||||
|
margin_bottom = 20.0
|
||||||
|
text = "Help"
|
||||||
|
align = 0
|
||||||
|
script = ExtResource( 9 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="TextureRect" type="TextureRect" parent="Control/HelpButton"]
|
||||||
|
anchor_left = 1.0
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
margin_left = -16.0
|
||||||
|
margin_right = -4.0
|
||||||
|
grow_horizontal = 0
|
||||||
|
grow_vertical = 2
|
||||||
|
texture = ExtResource( 2 )
|
||||||
|
stretch_mode = 4
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[connection signal="pressed" from="TabContainer/Textures/Files/HeadingBox/AddTextureButton" to="." method="_on_AddTextureButton_pressed"]
|
||||||
|
[connection signal="file_selected" from="TabContainer/Textures/Files/HeadingBox/AddTextureButton/FileDialog" to="." method="_on_FileDialog_file_selected"]
|
||||||
|
[connection signal="value_changed" from="TabContainer/Textures/FileSettings/VBoxContainer/RectSettings/Size" to="TabContainer/Textures/FileSettings" method="_on_Size_value_changed"]
|
||||||
|
[connection signal="value_changed" from="TabContainer/Textures/FileSettings/VBoxContainer/RectSettings/Gap" to="TabContainer/Textures/FileSettings" method="_on_Gap_value_changed"]
|
||||||
|
[connection signal="value_changed" from="TabContainer/Textures/FileSettings/VBoxContainer/RectSettings/Offset" to="TabContainer/Textures/FileSettings" method="_on_Offset_value_changed"]
|
||||||
|
[connection signal="value_changed" from="TabContainer/Textures/FileSettings/VBoxContainer/RectSettings/Scaling/HBoxContainer/Scale" to="TabContainer/Textures/FileSettings" method="_on_Scale_value_changed"]
|
||||||
|
[connection signal="item_selected" from="TabContainer/Textures/FileSettings/VBoxContainer/RectSettings/Scaling/HBoxContainer/Interpolation" to="TabContainer/Textures/FileSettings" method="_on_OptionButton_item_selected"]
|
||||||
|
[connection signal="text_changed" from="TabContainer/Textures/FileSettings/VBoxContainer/HSplitContainer/HBoxContainer/TextEdit" to="TabContainer/Textures/FileSettings" method="_on_TextEdit_text_changed"]
|
||||||
|
[connection signal="value_changed" from="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid/Height" to="TabContainer/Font Settings" method="_on_Height_value_changed"]
|
||||||
|
[connection signal="value_changed" from="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid/Gap" to="TabContainer/Font Settings" method="_on_Gap_value_changed"]
|
||||||
|
[connection signal="value_changed" from="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid/HorizontalAlign" to="TabContainer/Font Settings" method="_on_HorizontalAlign_value_changed"]
|
||||||
|
[connection signal="value_changed" from="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid/VerticalAlign" to="TabContainer/Font Settings" method="_on_VerticalAlign_value_changed"]
|
||||||
|
[connection signal="value_changed" from="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid/Ascent" to="TabContainer/Font Settings" method="_on_Ascent_value_changed"]
|
||||||
|
[connection signal="toggled" from="TabContainer/Font Settings/HSplitContainer/Settings/MarginContainer/Grid/MonoSpaced" to="TabContainer/Font Settings" method="_on_MonoSpaced_toggled"]
|
||||||
|
[connection signal="pressed" from="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/Kerning/HeadingBox/AddKerningButton" to="TabContainer/Font Settings" method="_on_AddKerningButton_pressed"]
|
||||||
|
[connection signal="pressed" from="TabContainer/Font Settings/HSplitContainer/ListSettings/VSplitContainer/CharSettings/HeadingBox/AddCharSettingButton" to="TabContainer/Font Settings" method="_on_AddCharSettingButton_pressed"]
|
||||||
|
[connection signal="value_changed" from="TabContainer/Font Settings/Preview/HeadingBox/Scale" to="TabContainer/Font Settings" method="_on_Scale_value_changed"]
|
||||||
|
[connection signal="color_changed" from="TabContainer/Font Settings/Preview/HeadingBox/ColorPickerButton" to="TabContainer/Font Settings" method="_on_ColorPickerButton_color_changed"]
|
||||||
|
[connection signal="text_changed" from="TabContainer/Font Settings/Preview/MarginContainer/TextEdit" to="TabContainer/Font Settings" method="_on_TextEdit_text_changed"]
|
||||||
@ -0,0 +1,169 @@
|
|||||||
|
tool
|
||||||
|
extends HSplitContainer
|
||||||
|
|
||||||
|
signal change
|
||||||
|
|
||||||
|
onready var char_setting_list := $HSplitContainer/ListSettings/VSplitContainer/CharSettings/MarginContainer/ScrollContainer/SettingList
|
||||||
|
onready var kerning_pair_list := $HSplitContainer/ListSettings/VSplitContainer/Kerning/MarginContainer/ScrollContainer/KerningList
|
||||||
|
|
||||||
|
onready var height := $HSplitContainer/Settings/MarginContainer/Grid/Height
|
||||||
|
onready var gap := $HSplitContainer/Settings/MarginContainer/Grid/Gap
|
||||||
|
onready var horizontal_align := $HSplitContainer/Settings/MarginContainer/Grid/HorizontalAlign
|
||||||
|
onready var vertical_align := $HSplitContainer/Settings/MarginContainer/Grid/VerticalAlign
|
||||||
|
onready var ascent := $HSplitContainer/Settings/MarginContainer/Grid/Ascent
|
||||||
|
onready var monospace := $HSplitContainer/Settings/MarginContainer/Grid/MonoSpaced
|
||||||
|
|
||||||
|
onready var preview := $Preview
|
||||||
|
onready var preview_textbox := $Preview/MarginContainer/TextEdit
|
||||||
|
|
||||||
|
const char_setting_scene := preload("./Components/CharSetting.tscn")
|
||||||
|
const kerning_pair_scene := preload("./Components/KerningPair.tscn")
|
||||||
|
|
||||||
|
var font_settings
|
||||||
|
var font_ref: WeakRef
|
||||||
|
|
||||||
|
|
||||||
|
func set_font(new_font):
|
||||||
|
font_ref = weakref(new_font)
|
||||||
|
|
||||||
|
height.value = new_font.height
|
||||||
|
ascent.value = new_font.ascent
|
||||||
|
|
||||||
|
# clear char settings list
|
||||||
|
for child in char_setting_list.get_children():
|
||||||
|
char_setting_list.remove_child(child)
|
||||||
|
child.queue_free()
|
||||||
|
|
||||||
|
for child in kerning_pair_list.get_children():
|
||||||
|
kerning_pair_list.remove_child(child)
|
||||||
|
child.queue_free()
|
||||||
|
|
||||||
|
font_settings = new_font.font_settings
|
||||||
|
|
||||||
|
# populate char settings list
|
||||||
|
for for_char in font_settings.char_settings:
|
||||||
|
_add_char_setting(null, for_char)
|
||||||
|
|
||||||
|
for kerning_pair in font_settings.kerning_pairs:
|
||||||
|
_add_kerning_pair(null, kerning_pair)
|
||||||
|
|
||||||
|
gap.value = font_settings.gap
|
||||||
|
horizontal_align.value = font_settings.horizontal_align
|
||||||
|
vertical_align.value = font_settings.vertical_align
|
||||||
|
monospace.pressed = font_settings.monospace
|
||||||
|
|
||||||
|
preview.set_preview_text(font_settings.preview_chars)
|
||||||
|
preview.set_preview_color(font_settings.preview_color)
|
||||||
|
|
||||||
|
|
||||||
|
func _add_char_setting(char_setting_node = null, for_char = null):
|
||||||
|
if char_setting_node == null:
|
||||||
|
char_setting_node = char_setting_scene.instance()
|
||||||
|
|
||||||
|
if for_char:
|
||||||
|
char_setting_node.for_char = for_char
|
||||||
|
|
||||||
|
char_setting_node.font_settings = font_settings
|
||||||
|
|
||||||
|
char_setting_list.add_child(char_setting_node)
|
||||||
|
char_setting_node.owner = self.owner
|
||||||
|
char_setting_node.connect("change", self, "_value_changed")
|
||||||
|
char_setting_node.connect("delete", self, "_on_char_setting_delete")
|
||||||
|
|
||||||
|
_value_changed()
|
||||||
|
|
||||||
|
|
||||||
|
func _add_kerning_pair(kerning_pair_node = null, pair = null):
|
||||||
|
if kerning_pair_node == null:
|
||||||
|
kerning_pair_node = kerning_pair_scene.instance()
|
||||||
|
|
||||||
|
kerning_pair_list.add_child(kerning_pair_node)
|
||||||
|
kerning_pair_node.owner = self.owner
|
||||||
|
|
||||||
|
kerning_pair_node.font_settings = font_settings
|
||||||
|
|
||||||
|
if pair == null:
|
||||||
|
pair = font_settings.add_kerning_pair()
|
||||||
|
|
||||||
|
kerning_pair_node.set_kerning_pair(pair)
|
||||||
|
kerning_pair_node.connect("change", self, "_value_changed")
|
||||||
|
kerning_pair_node.connect("delete", self, "_on_kerning_pair_delete")
|
||||||
|
|
||||||
|
_value_changed()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_kerning_pair_delete(node):
|
||||||
|
var idx = node.get_index()
|
||||||
|
|
||||||
|
node.queue_free()
|
||||||
|
font_settings.remove_kerning_pair(idx)
|
||||||
|
_value_changed()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_char_setting_delete(node):
|
||||||
|
var for_char = node.for_char
|
||||||
|
|
||||||
|
node.queue_free()
|
||||||
|
font_settings.remove_setting(for_char)
|
||||||
|
_value_changed()
|
||||||
|
|
||||||
|
|
||||||
|
func _value_changed():
|
||||||
|
emit_signal("change")
|
||||||
|
|
||||||
|
|
||||||
|
func _on_AddCharSettingButton_pressed():
|
||||||
|
_add_char_setting()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_AddKerningButton_pressed():
|
||||||
|
_add_kerning_pair()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_Height_value_changed(value):
|
||||||
|
var font = font_ref.get_ref()
|
||||||
|
if font:
|
||||||
|
font.height = value
|
||||||
|
_value_changed()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_Gap_value_changed(value):
|
||||||
|
font_settings.gap = value
|
||||||
|
_value_changed()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_HorizontalAlign_value_changed(value):
|
||||||
|
font_settings.horizontal_align = value
|
||||||
|
_value_changed()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_Ascent_value_changed(value):
|
||||||
|
var font = font_ref.get_ref()
|
||||||
|
if font:
|
||||||
|
font.ascent = value
|
||||||
|
_value_changed()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_MonoSpaced_toggled(button_pressed):
|
||||||
|
font_settings.monospace = button_pressed
|
||||||
|
_value_changed()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_VerticalAlign_value_changed(value):
|
||||||
|
font_settings.vertical_align = value
|
||||||
|
_value_changed()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_TextEdit_text_changed():
|
||||||
|
font_settings.preview_chars = preview_textbox.text
|
||||||
|
_value_changed()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_Scale_value_changed(value):
|
||||||
|
preview.set_preview_scale(value / 100.0)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_ColorPickerButton_color_changed(color):
|
||||||
|
preview.set_preview_color(color)
|
||||||
|
font_settings.preview_color = color
|
||||||
|
_value_changed()
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
tool
|
||||||
|
extends Button
|
||||||
|
|
||||||
|
|
||||||
|
func _pressed():
|
||||||
|
OS.shell_open("https://github.com/ElectronicBlueberry/Texture-Fonts/wiki")
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
tool
|
||||||
|
extends VBoxContainer
|
||||||
|
|
||||||
|
onready var text_edit := $MarginContainer/TextEdit
|
||||||
|
onready var colorpicker := $HeadingBox/ColorPickerButton
|
||||||
|
|
||||||
|
func set_font(new_font: BitmapFont):
|
||||||
|
text_edit.set("custom_fonts/font", new_font)
|
||||||
|
|
||||||
|
|
||||||
|
func set_preview_text(new_text):
|
||||||
|
if new_text == null: new_text == ""
|
||||||
|
text_edit.text = new_text
|
||||||
|
|
||||||
|
|
||||||
|
func set_preview_color(color: Color):
|
||||||
|
colorpicker.color = color
|
||||||
|
|
||||||
|
var stylebox: StyleBoxFlat = text_edit.get("custom_styles/normal")
|
||||||
|
stylebox.bg_color = color.darkened(0.2)
|
||||||
|
stylebox = text_edit.get("custom_styles/focus")
|
||||||
|
stylebox.bg_color = color
|
||||||
|
|
||||||
|
text_edit.set("custom_colors/caret_color", color.inverted())
|
||||||
|
|
||||||
|
|
||||||
|
func set_preview_scale(scale):
|
||||||
|
text_edit.rect_scale = Vector2(scale, scale)
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,55 @@
|
|||||||
|
tool
|
||||||
|
extends Reference
|
||||||
|
|
||||||
|
var num_regex := RegEx.new()
|
||||||
|
var unicode_regex := RegEx.new()
|
||||||
|
|
||||||
|
var regex_compiled := false
|
||||||
|
|
||||||
|
# split multi-line string into 2d array containing char codes
|
||||||
|
func chars_to_codes(chars: String) -> Array:
|
||||||
|
var codes = []
|
||||||
|
|
||||||
|
if not regex_compiled:
|
||||||
|
num_regex.compile("[0-9A-Fa-f]+")
|
||||||
|
unicode_regex.compile("\\\\U\\+[0-9A-Fa-f]+;")
|
||||||
|
regex_compiled = true
|
||||||
|
|
||||||
|
var i = 0
|
||||||
|
var l = chars.length()
|
||||||
|
var line = 0
|
||||||
|
|
||||||
|
while i < l:
|
||||||
|
var next_char = chars[i]
|
||||||
|
var code_int = -1
|
||||||
|
|
||||||
|
# dont save new-line smymbol, but switch to new line
|
||||||
|
if next_char == "\n":
|
||||||
|
if line + 1 > codes.size():
|
||||||
|
codes.append([])
|
||||||
|
line += 1
|
||||||
|
i += 1
|
||||||
|
continue
|
||||||
|
# escape char might indicate unicode block
|
||||||
|
elif next_char == "\\":
|
||||||
|
var code = unicode_regex.search(chars, i)
|
||||||
|
if code and code.get_start() == i:
|
||||||
|
var num_code = num_regex.search(code.get_string())
|
||||||
|
code_int = ("0x" + num_code.get_string()).hex_to_int()
|
||||||
|
|
||||||
|
i += code.get_string().length() - 1
|
||||||
|
else:
|
||||||
|
code_int = ord("\\")
|
||||||
|
# standard char
|
||||||
|
else:
|
||||||
|
code_int = ord(next_char)
|
||||||
|
|
||||||
|
# add line, if not present
|
||||||
|
if line + 1 > codes.size():
|
||||||
|
codes.append([code_int])
|
||||||
|
else:
|
||||||
|
codes[line].append(code_int)
|
||||||
|
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
return codes
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
[plugin]
|
||||||
|
|
||||||
|
name="TextureFonts"
|
||||||
|
description="For Godot 3.4+
|
||||||
|
|
||||||
|
Adds a new TextureFont resource, which allows easily creating BitmapFonts from Textures."
|
||||||
|
author="ElectronicBlueberry"
|
||||||
|
version="1.1.0"
|
||||||
|
script="texture_fonts.gd"
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue