mirror of
https://github.com/Relintai/broken_seals_2d.git
synced 2024-11-11 20:35:10 +01:00
Lots of work on the new atlas generator.
This commit is contained in:
parent
526b375f60
commit
74bc71579a
@ -2142,7 +2142,7 @@ animation = "run"
|
||||
[sub_resource type="AnimationNodeBlend2" id=8]
|
||||
|
||||
[sub_resource type="AnimationNodeBlendTree" id=9]
|
||||
graph_offset = Vector2( -671, 298.5 )
|
||||
graph_offset = Vector2( -473, 293 )
|
||||
nodes/RunScale/node = SubResource( 5 )
|
||||
nodes/RunScale/position = Vector2( -60, 500 )
|
||||
nodes/idle/node = SubResource( 6 )
|
||||
@ -2152,7 +2152,7 @@ nodes/run/node = SubResource( 7 )
|
||||
nodes/run/position = Vector2( -280, 500 )
|
||||
nodes/walking/node = SubResource( 8 )
|
||||
nodes/walking/position = Vector2( 140, 320 )
|
||||
node_connections = [ "output", 0, "walking", "walking", 0, "idle", "walking", 1, "RunScale", "RunScale", 0, "run" ]
|
||||
node_connections = [ "output", 0, "walking", "RunScale", 0, "run", "walking", 0, "idle", "walking", 1, "RunScale" ]
|
||||
|
||||
[node name="CharacterFrontModel" type="CharacterBones"]
|
||||
rotation = 0.000121465
|
||||
@ -2191,7 +2191,7 @@ region_enabled = true
|
||||
region_rect = Rect2( 27, 57, 14, 6 )
|
||||
|
||||
[node name="Torso" type="Sprite" parent="Hip"]
|
||||
position = Vector2( 0, -2.35694 )
|
||||
position = Vector2( 0, -2.05287 )
|
||||
texture = ExtResource( 1 )
|
||||
offset = Vector2( 0, -5 )
|
||||
region_enabled = true
|
||||
|
@ -1,50 +1,10 @@
|
||||
[gd_scene load_steps=10 format=2]
|
||||
[gd_scene load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/item_visuals/CharacterAtlasEntry2D.gd" type="Script" id=1]
|
||||
[ext_resource path="res://characters/naturalist_characteratlas.tres" type="CharacterAtlas" id=1]
|
||||
[ext_resource path="res://player/CharacterSkeleton2DGD.gd" type="Script" id=2]
|
||||
[ext_resource path="res://scripts/item_visuals/CharacterAtlas2D.gd" type="Script" id=3]
|
||||
[ext_resource path="res://characters/char_t1_outline_split.png" type="Texture" id=4]
|
||||
[ext_resource path="res://characters/CharacterSideModel.tscn" type="PackedScene" id=5]
|
||||
[ext_resource path="res://characters/CharacterFrontModel.tscn" type="PackedScene" id=6]
|
||||
|
||||
[sub_resource type="CharacterAtlasEntry" id=1]
|
||||
script = ExtResource( 1 )
|
||||
front_rect = Rect2( 101, 15, 9, 12 )
|
||||
back_rect = Rect2( 74, 18, 9, 12 )
|
||||
right_rect = Rect2( 8, 13, 9, 12 )
|
||||
left_rect = Rect2( 8, 13, 9, 12 )
|
||||
|
||||
[sub_resource type="CharacterAtlasEntry" id=2]
|
||||
script = ExtResource( 1 )
|
||||
front_rect = Rect2( 102, 2, 7, 8 )
|
||||
back_rect = Rect2( 75, 5, 7, 8 )
|
||||
right_rect = Rect2( 9, 0, 7, 8 )
|
||||
left_rect = Rect2( 9, 0, 7, 8 )
|
||||
|
||||
[sub_resource type="CharacterAtlas" id=3]
|
||||
script = ExtResource( 3 )
|
||||
comments = "HUMANOID_BONE_HIP = 0,
|
||||
HUMANOID_BONE_TORSO = 1,
|
||||
HUMANOID_BONE_LEG_R = 2,
|
||||
HUMANOID_BONE_FOOT_R = 3,
|
||||
HUMANOID_BONE_TOE_R = 4,
|
||||
HUMANOID_BONE_LEG_L = 5,
|
||||
HUMANOID_BONE_FOOT_L = 6,
|
||||
HUMANOID_BONE_TOE_L = 7,
|
||||
HUMANOID_BONE_ARM_R = 8,
|
||||
#HUMANOID_BONE_SHOULDER_GUARD_R = 0,
|
||||
HUMANOID_BONE_HAND_R = 9,
|
||||
HUMANOID_BONE_FINGERS_R = 10,
|
||||
HUMANOID_BONE_ARM_L = 11,
|
||||
#HUMANOID_BONE_SHOULDER_GUARD_L = 0,
|
||||
HUMANOID_BONE_HAND_L = 12,
|
||||
HUMANOID_BONE_FINGERS_L = 13,
|
||||
HUMANOID_BONE_HEAD = 14,
|
||||
HUMANOID_BONE_HEAD_TOP = 15,
|
||||
HUMANOID_BONES_MAX = 16,"
|
||||
texture = ExtResource( 4 )
|
||||
slots = [ null, SubResource( 1 ), null, null, null, null, null, null, null, null, null, null, null, null, SubResource( 2 ), null ]
|
||||
|
||||
[node name="Character" type="CharacterSkeleton2D"]
|
||||
entity_type = 1
|
||||
attach_point_paths/0_left_hand = NodePath("")
|
||||
@ -66,27 +26,24 @@ front_animation_tree_path = NodePath("../Character/CharacterFrontModel/Animation
|
||||
side_node_path = NodePath("CharacterSideModel")
|
||||
side_animation_player_path = NodePath("../Character/CharacterSideModel/AnimationPlayer")
|
||||
side_animation_tree_path = NodePath("../Character/CharacterSideModel/AnimationTree")
|
||||
character_atlas = SubResource( 3 )
|
||||
character_atlas = ExtResource( 1 )
|
||||
|
||||
[node name="CharacterFrontModel" parent="." instance=ExtResource( 6 )]
|
||||
visible = false
|
||||
|
||||
[node name="Torso" parent="CharacterFrontModel/Hip" index="1"]
|
||||
position = Vector2( 0, -2.03035 )
|
||||
|
||||
[node name="leg_r" parent="CharacterFrontModel/Hip/Torso" index="0"]
|
||||
position = Vector2( -2, 0.999999 )
|
||||
position = Vector2( 0, -2.29163 )
|
||||
|
||||
[node name="CharacterSideModel" parent="." instance=ExtResource( 5 )]
|
||||
|
||||
[node name="arm_r" parent="CharacterSideModel" index="0"]
|
||||
position = Vector2( -3.50004, -24.572 )
|
||||
position = Vector2( -3.49999, -24.1979 )
|
||||
|
||||
[node name="hand_r" parent="CharacterSideModel" index="1"]
|
||||
position = Vector2( -3.50004, -19.072 )
|
||||
position = Vector2( -3.49999, -18.6979 )
|
||||
|
||||
[node name="Torso" parent="CharacterSideModel/Hip" index="3"]
|
||||
position = Vector2( 5.27825e-06, -1.95654 )
|
||||
position = Vector2( 5.07217e-05, -1.58236 )
|
||||
|
||||
[editable path="CharacterFrontModel"]
|
||||
[editable path="CharacterSideModel"]
|
||||
|
43
game/characters/naturalist_characteratlas.tres
Normal file
43
game/characters/naturalist_characteratlas.tres
Normal file
@ -0,0 +1,43 @@
|
||||
[gd_resource type="CharacterAtlas" load_steps=6 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/item_visuals/CharacterAtlas2D.gd" type="Script" id=1]
|
||||
[ext_resource path="res://characters/char_t1_outline_split.png" type="Texture" id=2]
|
||||
[ext_resource path="res://scripts/item_visuals/CharacterAtlasEntry2D.gd" type="Script" id=3]
|
||||
|
||||
[sub_resource type="CharacterAtlasEntry" id=1]
|
||||
script = ExtResource( 3 )
|
||||
front_rect = Rect2( 101, 15, 9, 12 )
|
||||
back_rect = Rect2( 74, 18, 9, 12 )
|
||||
right_rect = Rect2( 8, 13, 9, 12 )
|
||||
left_rect = Rect2( 8, 13, 9, 12 )
|
||||
|
||||
[sub_resource type="CharacterAtlasEntry" id=2]
|
||||
script = ExtResource( 3 )
|
||||
front_rect = Rect2( 102, 2, 7, 8 )
|
||||
back_rect = Rect2( 75, 5, 7, 8 )
|
||||
right_rect = Rect2( 9, 0, 7, 8 )
|
||||
left_rect = Rect2( 9, 0, 7, 8 )
|
||||
|
||||
[resource]
|
||||
script = ExtResource( 1 )
|
||||
comments = "HUMANOID_BONE_HIP = 0,
|
||||
HUMANOID_BONE_TORSO = 1,
|
||||
HUMANOID_BONE_LEG_R = 2,
|
||||
HUMANOID_BONE_FOOT_R = 3,
|
||||
HUMANOID_BONE_TOE_R = 4,
|
||||
HUMANOID_BONE_LEG_L = 5,
|
||||
HUMANOID_BONE_FOOT_L = 6,
|
||||
HUMANOID_BONE_TOE_L = 7,
|
||||
HUMANOID_BONE_ARM_R = 8,
|
||||
#HUMANOID_BONE_SHOULDER_GUARD_R = 0,
|
||||
HUMANOID_BONE_HAND_R = 9,
|
||||
HUMANOID_BONE_FINGERS_R = 10,
|
||||
HUMANOID_BONE_ARM_L = 11,
|
||||
#HUMANOID_BONE_SHOULDER_GUARD_L = 0,
|
||||
HUMANOID_BONE_HAND_L = 12,
|
||||
HUMANOID_BONE_FINGERS_L = 13,
|
||||
HUMANOID_BONE_HEAD = 14,
|
||||
HUMANOID_BONE_HEAD_TOP = 15,
|
||||
HUMANOID_BONES_MAX = 16,"
|
||||
texture = ExtResource( 2 )
|
||||
slots = [ null, SubResource( 1 ), null, null, null, null, null, null, null, null, null, null, null, null, SubResource( 2 ), null ]
|
@ -1,3 +1,4 @@
|
||||
tool
|
||||
extends CharacterBones
|
||||
class_name HumanoidCharacterBones2D
|
||||
|
||||
@ -50,7 +51,7 @@ enum HumanoidBones {
|
||||
export (String, MULTILINE) var help : String
|
||||
export (Array, NodePath) var bones : Array
|
||||
|
||||
var _atlas : CharacterAtlas2D
|
||||
export(CharacterAtlas) var _atlas : CharacterAtlas
|
||||
|
||||
func set_facing(facing : int) -> void:
|
||||
if _atlas == null:
|
||||
|
@ -1,170 +1,105 @@
|
||||
[gd_scene load_steps=14 format=2]
|
||||
[gd_scene load_steps=9 format=2]
|
||||
|
||||
[ext_resource path="res://characters/NaturalistSheetRenderer.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://characters/CharacterFrontModel.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://characters/CharacterSideModel.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://spritesheet_generator/SheetGen.gd" type="Script" id=3]
|
||||
[ext_resource path="res://characters/Character.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://testsave.png" type="Texture" id=4]
|
||||
[ext_resource path="res://spritesheet_generator/SpriteMover.gd" type="Script" id=5]
|
||||
[ext_resource path="res://spritesheet_generator/Sprite3Ds.tscn" type="PackedScene" id=6]
|
||||
[ext_resource path="res://characters/naturalist_characteratlas.tres" type="CharacterAtlas" id=6]
|
||||
|
||||
|
||||
|
||||
[sub_resource type="ProceduralSky" id=1]
|
||||
|
||||
[sub_resource type="Environment" id=2]
|
||||
background_mode = 2
|
||||
background_sky = SubResource( 1 )
|
||||
background_color = Color( 0.364706, 0.364706, 0.364706, 1 )
|
||||
background_energy = 0.69
|
||||
ambient_light_color = Color( 1, 1, 1, 1 )
|
||||
ambient_light_energy = 0.68
|
||||
ambient_light_sky_contribution = 0.0
|
||||
|
||||
[sub_resource type="Environment" id=3]
|
||||
background_mode = 1
|
||||
background_energy = 0.57
|
||||
ambient_light_color = Color( 0.113725, 0.113725, 0.113725, 1 )
|
||||
ambient_light_energy = 0.68
|
||||
[sub_resource type="Environment" id=1]
|
||||
ssao_enabled = true
|
||||
|
||||
[sub_resource type="World" id=4]
|
||||
environment = SubResource( 3 )
|
||||
[sub_resource type="World" id=2]
|
||||
environment = SubResource( 1 )
|
||||
|
||||
[sub_resource type="Environment" id=5]
|
||||
background_mode = 1
|
||||
background_energy = 0.26
|
||||
ambient_light_color = Color( 0.113725, 0.113725, 0.113725, 1 )
|
||||
ambient_light_energy = 0.58
|
||||
ambient_light_sky_contribution = 0.1
|
||||
tonemap_exposure = 0.36
|
||||
tonemap_white = 0.47
|
||||
|
||||
[sub_resource type="ViewportTexture" id=6]
|
||||
[node name="TextureAtlasGenerator" type="Node2D"]
|
||||
script = ExtResource( 3 )
|
||||
_sprite_size = 40
|
||||
_sprite_num = 16
|
||||
_show_atlas = true
|
||||
save_texture = true
|
||||
animations = [ "run", "idle", "casting", "rest" ]
|
||||
instant_preview_path = NodePath("InstantPreview")
|
||||
sprite_preview_path = NodePath("SpritePreview")
|
||||
viewport_path = NodePath("Viewport")
|
||||
|
||||
[sub_resource type="SpatialMaterial" id=7]
|
||||
flags_transparent = true
|
||||
params_billboard_mode = 1
|
||||
|
||||
[node name="Node" type="Node"]
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource( 2 )
|
||||
|
||||
[node name="player2" parent="." instance=ExtResource( 1 )]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -34.2601 )
|
||||
visible = false
|
||||
input_ray_pickable = false
|
||||
|
||||
[node name="player" parent="." instance=ExtResource( 1 )]
|
||||
visible = false
|
||||
input_ray_pickable = false
|
||||
|
||||
[node name="MicamoChar" parent="." instance=ExtResource( 2 )]
|
||||
editor/display_folded = true
|
||||
atlas_preview_path = NodePath("AtlasPreview")
|
||||
model_front_path = NodePath("Viewport/CharacterFrontModel")
|
||||
model_front_animation_player_path = NodePath("Viewport/CharacterFrontModel/AnimationPlayer")
|
||||
model_front_animation_tree_player_path = NodePath("Viewport/CharacterFrontModel/AnimationTree")
|
||||
model_side_path = NodePath("Viewport/CharacterSideModel")
|
||||
model_side_animation_player_path = NodePath("Viewport/CharacterSideModel/AnimationPlayer")
|
||||
model_side_animation_tree_player_path = NodePath("Viewport/CharacterSideModel/AnimationTree")
|
||||
|
||||
[node name="Viewport" type="Viewport" parent="."]
|
||||
size = Vector2( 32, 32 )
|
||||
size = Vector2( 64, 64 )
|
||||
own_world = true
|
||||
world = SubResource( 4 )
|
||||
world = SubResource( 2 )
|
||||
transparent_bg = true
|
||||
handle_input_locally = false
|
||||
hdr = false
|
||||
usage = 0
|
||||
render_target_v_flip = true
|
||||
render_target_update_mode = 3
|
||||
script = ExtResource( 3 )
|
||||
_sprite_size = 32
|
||||
_sprite_num = 16
|
||||
_directions = 16
|
||||
save_texture = true
|
||||
_atlas_show_sprite_path = NodePath("../Sprite3")
|
||||
_sprite_path = NodePath("../Sprite3D")
|
||||
_animation_player_path = NodePath("MicamoChar/AnimationPlayer")
|
||||
_player_path = NodePath("MicamoChar")
|
||||
|
||||
[node name="MicamoChar" parent="Viewport" instance=ExtResource( 4 )]
|
||||
editor/display_folded = true
|
||||
|
||||
[node name="Skeleton" parent="Viewport/MicamoChar" index="0"]
|
||||
bones/0/bound_children = [ ]
|
||||
bones/1/bound_children = [ ]
|
||||
bones/3/bound_children = [ ]
|
||||
bones/4/bound_children = [ ]
|
||||
bones/5/bound_children = [ ]
|
||||
bones/8/bound_children = [ ]
|
||||
bones/9/bound_children = [ ]
|
||||
bones/10/bound_children = [ ]
|
||||
bones/32/bound_children = [ ]
|
||||
bones/33/bound_children = [ ]
|
||||
bones/34/bound_children = [ ]
|
||||
bones/55/bound_children = [ ]
|
||||
bones/56/bound_children = [ ]
|
||||
bones/57/bound_children = [ ]
|
||||
bones/60/bound_children = [ ]
|
||||
bones/61/bound_children = [ ]
|
||||
bones/62/bound_children = [ ]
|
||||
|
||||
[node name="Camera" type="Camera" parent="Viewport"]
|
||||
transform = Transform( 0.707107, -0.353553, 0.612372, 0, 0.866025, 0.5, -0.707107, -0.353553, 0.612372, 2.95796, 3.39896, 2.92486 )
|
||||
environment = SubResource( 5 )
|
||||
projection = 1
|
||||
[node name="Camera" type="Camera2D" parent="Viewport"]
|
||||
position = Vector2( 0, -15.726 )
|
||||
current = true
|
||||
size = 2.2
|
||||
near = 0.01
|
||||
far = 240.8
|
||||
|
||||
[node name="OmniLight" type="OmniLight" parent="Viewport"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.05496, 1.55159, 3.33238 )
|
||||
layers = 3
|
||||
light_color = Color( 0.952941, 0.929412, 0.807843, 1 )
|
||||
light_energy = 0.74
|
||||
light_indirect_energy = 1.27
|
||||
light_specular = 0.15
|
||||
omni_range = 6.4
|
||||
omni_attenuation = 1.1487
|
||||
[node name="CharacterFrontModel" parent="Viewport" instance=ExtResource( 1 )]
|
||||
visible = false
|
||||
_atlas = ExtResource( 6 )
|
||||
|
||||
[node name="OmniLight2" type="OmniLight" parent="Viewport"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.4893, 3.88558, -2.30035 )
|
||||
light_color = Color( 0.898039, 0.898039, 0.729412, 1 )
|
||||
light_energy = 0.58
|
||||
light_indirect_energy = 2.95
|
||||
omni_range = 4.3
|
||||
[node name="Torso" parent="Viewport/CharacterFrontModel/Hip" index="1"]
|
||||
position = Vector2( 0, -2.289 )
|
||||
|
||||
[node name="hand_l" parent="Viewport/CharacterFrontModel/Hip/Torso/arm_l" index="0"]
|
||||
z_index = 1
|
||||
|
||||
[node name="AnimationTree" parent="Viewport/CharacterFrontModel" index="2"]
|
||||
active = false
|
||||
|
||||
[node name="CharacterSideModel" parent="Viewport" instance=ExtResource( 2 )]
|
||||
rotation = 3.14147
|
||||
scale = Vector2( 1, -1 )
|
||||
_atlas = ExtResource( 6 )
|
||||
|
||||
[node name="arm_r" parent="Viewport/CharacterSideModel" index="0"]
|
||||
position = Vector2( -3.50004, -24.6155 )
|
||||
|
||||
[node name="hand_r" parent="Viewport/CharacterSideModel" index="1"]
|
||||
position = Vector2( -3.50004, -19.1155 )
|
||||
z_index = 1
|
||||
|
||||
[node name="Torso" parent="Viewport/CharacterSideModel/Hip" index="3"]
|
||||
position = Vector2( 0, -2 )
|
||||
|
||||
[node name="AnimationTree" parent="Viewport/CharacterSideModel" index="4"]
|
||||
active = false
|
||||
|
||||
[node name="InstantPreview" type="Sprite" parent="."]
|
||||
|
||||
[node name="SpritePreview" type="Sprite" parent="."]
|
||||
|
||||
[node name="AtlasPreview" type="Sprite" parent="."]
|
||||
position = Vector2( 603.531, 254.594 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
position = Vector2( 837.448, 475.588 )
|
||||
centered = false
|
||||
flip_v = true
|
||||
vframes = 16
|
||||
position = Vector2( 101.579, 162.161 )
|
||||
texture = ExtResource( 4 )
|
||||
hframes = 16
|
||||
vframes = 16
|
||||
frame = 9
|
||||
script = ExtResource( 5 )
|
||||
|
||||
[node name="Camera" type="Camera" parent="."]
|
||||
transform = Transform( 0.707107, -0.353553, 0.612372, 0, 0.866026, 0.5, -0.707107, -0.353553, 0.612372, 13.5879, 9.78323, 18.7533 )
|
||||
projection = 1
|
||||
[node name="Test" type="Sprite" parent="."]
|
||||
position = Vector2( -91.0568, 21.4517 )
|
||||
texture = ExtResource( 4 )
|
||||
hframes = 16
|
||||
vframes = 16
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
current = true
|
||||
size = 10.0
|
||||
|
||||
[node name="Sprite2" type="Sprite" parent="."]
|
||||
position = Vector2( 179.55, 160.55 )
|
||||
texture = SubResource( 6 )
|
||||
flip_v = true
|
||||
|
||||
[node name="Sprite3" type="Sprite" parent="."]
|
||||
position = Vector2( 603.531, 254.594 )
|
||||
flip_v = true
|
||||
|
||||
[node name="Sprite3D" type="Sprite3D" parent="."]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8.18889, 0, 14.9987 )
|
||||
material_override = SubResource( 7 )
|
||||
cast_shadow = 0
|
||||
flip_v = true
|
||||
pixel_size = 0.0156
|
||||
vframes = 16
|
||||
hframes = 16
|
||||
script = ExtResource( 5 )
|
||||
|
||||
[node name="Sprite3D2" parent="." instance=ExtResource( 6 )]
|
||||
visible = false
|
||||
|
||||
|
||||
[editable path="Viewport/MicamoChar"]
|
||||
[editable path="Viewport/CharacterFrontModel"]
|
||||
[editable path="Viewport/CharacterSideModel"]
|
||||
|
@ -1,129 +1,209 @@
|
||||
extends Node
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
export (int) var _sprite_size
|
||||
export (int) var _sprite_num
|
||||
export (int) var _directions
|
||||
var _directions : int = 4
|
||||
|
||||
export (bool) var _show_atlas = false
|
||||
|
||||
export (bool) var save_texture = false
|
||||
|
||||
export (NodePath) var _atlas_show_sprite_path
|
||||
export (NodePath) var _sprite_path
|
||||
export (NodePath) var _animation_player_path
|
||||
export (NodePath) var _player_path
|
||||
export (NodePath) var _animation_tree_player_path
|
||||
export (bool) var generate : bool = false setget set_generate, get_generate
|
||||
|
||||
export (String) var output_file_name : String = "res://testsave.png"
|
||||
|
||||
export (Array, String) var animations : Array
|
||||
|
||||
export (NodePath) var instant_preview_path
|
||||
export (NodePath) var sprite_preview_path
|
||||
export (NodePath) var viewport_path
|
||||
export (NodePath) var atlas_preview_path
|
||||
|
||||
export (NodePath) var model_front_path
|
||||
export (NodePath) var model_front_animation_player_path
|
||||
export (NodePath) var model_front_animation_tree_player_path
|
||||
export (NodePath) var model_side_path
|
||||
export (NodePath) var model_side_animation_player_path
|
||||
export (NodePath) var model_side_animation_tree_player_path
|
||||
|
||||
|
||||
var _viewport
|
||||
var _viewport_texture
|
||||
var _sprite
|
||||
var _animation_player
|
||||
var _time = 0
|
||||
var _animation_tree_player
|
||||
var _frame = 0
|
||||
var _rotcount = 0
|
||||
var _rotation = 0
|
||||
var _atlas
|
||||
var _image_texture
|
||||
var _running = false
|
||||
var _atlas_sprite_show_node
|
||||
var _atlas_texture
|
||||
var _player
|
||||
|
||||
var _instant_preview
|
||||
var _sprite_preview
|
||||
var _atlas_preview
|
||||
|
||||
var _time = 0
|
||||
var _frame = 0
|
||||
var _index = 0
|
||||
var _direction = 0
|
||||
var _current_animation_index = 0
|
||||
var _current_animation_player = null
|
||||
|
||||
var _running = false
|
||||
|
||||
var _model_front
|
||||
var _model_front_animation_player
|
||||
var _model_front_animation_tree_player
|
||||
var _model_side
|
||||
var _model_side_animation_player
|
||||
var _model_side_animation_tree_player
|
||||
|
||||
var _texture
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
var _first = true
|
||||
|
||||
func _ready():
|
||||
_viewport = get_node(".")
|
||||
#_viewport.set
|
||||
_sprite = get_node(_sprite_path)
|
||||
_atlas_sprite_show_node = get_node(_atlas_show_sprite_path)
|
||||
_animation_player = get_node(_animation_player_path)
|
||||
_player = get_node(_player_path)
|
||||
_animation_tree_player = get_node(_animation_tree_player_path)
|
||||
_viewport = get_node(viewport_path)
|
||||
|
||||
_instant_preview = get_node(instant_preview_path)
|
||||
_sprite_preview = get_node(sprite_preview_path)
|
||||
_atlas_preview = get_node(atlas_preview_path)
|
||||
|
||||
var img = ImageTexture.new()
|
||||
img.flags = 0
|
||||
img.create(_sprite_size, _sprite_size, 5, 0)
|
||||
_sprite_preview.texture = img
|
||||
|
||||
_model_front = get_node(model_front_path)
|
||||
_model_front_animation_player = get_node(model_front_animation_player_path)
|
||||
_model_front_animation_tree_player = get_node(model_front_animation_tree_player_path)
|
||||
|
||||
if _model_side_animation_tree_player:
|
||||
_model_front_animation_tree_player.active = false
|
||||
|
||||
_model_side = get_node(model_side_path)
|
||||
_model_side_animation_player = get_node(model_side_animation_player_path)
|
||||
_model_side_animation_tree_player = get_node(model_side_animation_tree_player_path)
|
||||
|
||||
if _model_side_animation_tree_player:
|
||||
_model_side_animation_tree_player.active = false
|
||||
|
||||
_model_front.hide()
|
||||
_model_side.show()
|
||||
|
||||
_viewport_texture = _viewport.get_texture()
|
||||
|
||||
_texture = Image.new()
|
||||
var frame = _viewport.get_texture().get_data()
|
||||
_texture.create(_sprite_size * _sprite_num, _sprite_size * _directions, false, frame.get_format())
|
||||
|
||||
yield(get_tree(), "idle_frame")
|
||||
yield(get_tree(), "idle_frame")
|
||||
_texture.create(_sprite_size * _sprite_num, _sprite_size * _directions * animations.size(), false, frame.get_format())
|
||||
|
||||
_running = true
|
||||
|
||||
#_generated_image = Image.new()
|
||||
#_generated_image.
|
||||
#_sprite.set_texture(_viewport_texture)
|
||||
|
||||
|
||||
#_frame_data.clear()
|
||||
|
||||
#_generated_image.create_from_data(64, 64, false, Image.FORMAT_RGBA4444, texture.get_data().get_data())
|
||||
#texture = _viewport.get_texture()
|
||||
#_sprite.set_texture(texture)
|
||||
set_process(true)
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
|
||||
#if not _running and Input.is_key_pressed(KEY_K):
|
||||
# _running = true
|
||||
|
||||
if not _running:
|
||||
return
|
||||
#todo remove, only to make development easier
|
||||
if !_viewport:
|
||||
_ready()
|
||||
|
||||
#_viewport.update_worlds()
|
||||
if _first:
|
||||
_first = false
|
||||
|
||||
setup_direction()
|
||||
|
||||
_current_animation_player.play(animations[_current_animation_index])
|
||||
_current_animation_player.seek(0, true)
|
||||
|
||||
return
|
||||
|
||||
var frame = _viewport.get_texture().get_data()
|
||||
|
||||
_sprite_preview.get_texture().set_data(frame)
|
||||
|
||||
#if _frame == 0 and _rotcount == 0:
|
||||
|
||||
_texture.blend_rect(frame, frame.get_used_rect(), Vector2((_frame * _sprite_size), (_rotcount * _sprite_size)))
|
||||
|
||||
#_time += 0.3
|
||||
#_animation_player.seek (_time , true )
|
||||
_frame += 1
|
||||
|
||||
if _frame > _sprite_num - 1:
|
||||
_frame = 0
|
||||
|
||||
_rotcount += 1
|
||||
if not _running:
|
||||
return
|
||||
|
||||
if (_rotcount > _sprite_num - 1):
|
||||
if _frame >= _sprite_num:
|
||||
_frame = 0
|
||||
_index += 1
|
||||
_direction += 1
|
||||
|
||||
if _direction >= _directions:
|
||||
_direction = 0
|
||||
|
||||
_current_animation_index += 1
|
||||
|
||||
setup_direction()
|
||||
|
||||
if (_index >= _directions * animations.size()):
|
||||
_running = false
|
||||
create_atlas()
|
||||
return
|
||||
|
||||
#var m3 = Basis()
|
||||
#m3 = m3.rotated( Vector3(0,1,0), 0.19625 )
|
||||
_player.rotate_y((PI*2)/float(_directions))
|
||||
|
||||
_animation_player.play("default")
|
||||
#_rotation = _rotcount * 22.5
|
||||
#_player.tra
|
||||
|
||||
|
||||
#return
|
||||
_current_animation_player.play(animations[_current_animation_index])
|
||||
_current_animation_player.seek(0, true)
|
||||
return
|
||||
|
||||
#0.83
|
||||
_animation_player.seek(_frame * (_animation_player.current_animation_length / (_sprite_num - 1)), true)
|
||||
#_animation_tree_player.advance(0.05)
|
||||
var ur = frame.get_used_rect()
|
||||
var xx : float = 0
|
||||
xx = (_sprite_size - ur.size.x) / 2
|
||||
|
||||
_texture.blend_rect(frame, ur, Vector2((_frame * _sprite_size) + xx, (_index * _sprite_size)))
|
||||
|
||||
_current_animation_player.seek(_frame * (_current_animation_player.current_animation_length / (_sprite_num - 1)), true)
|
||||
|
||||
_frame += 1
|
||||
|
||||
#enum CharacterFacing
|
||||
# FACING_FRONT = 0,
|
||||
# FACING_BACK = 1,
|
||||
# FACING_RIGHT = 2,
|
||||
# FACING_LEFT = 3,
|
||||
|
||||
func setup_direction():
|
||||
if _direction == 0:
|
||||
_current_animation_player = _model_side_animation_player
|
||||
_model_side.set_facing(2)
|
||||
_model_side.transform.x.x = -1
|
||||
|
||||
_model_side.show()
|
||||
_model_front.hide()
|
||||
if _direction == 1:
|
||||
_current_animation_player = _model_side_animation_player
|
||||
_model_side.set_facing(3)
|
||||
_model_side.transform.x.x = 1
|
||||
|
||||
_model_side.show()
|
||||
_model_front.hide()
|
||||
if _direction == 2:
|
||||
_current_animation_player = _model_front_animation_player
|
||||
_model_front.set_facing(0)
|
||||
|
||||
_model_side.hide()
|
||||
_model_front.show()
|
||||
if _direction == 3:
|
||||
_current_animation_player = _model_front_animation_player
|
||||
_model_front.set_facing(1)
|
||||
|
||||
_model_side.hide()
|
||||
_model_front.show()
|
||||
|
||||
|
||||
func create_atlas():
|
||||
_image_texture = ImageTexture.new()
|
||||
_image_texture.create_from_image(_texture, 0)
|
||||
|
||||
_image_texture.get_data().save_png("res://testsave.png")
|
||||
_image_texture.get_data().save_png(output_file_name)
|
||||
|
||||
if save_texture:
|
||||
_sprite.set_texture(_image_texture)
|
||||
_sprite_preview.set_texture(_image_texture)
|
||||
|
||||
if _show_atlas:
|
||||
_atlas_sprite_show_node.set_texture(_image_texture)
|
||||
_atlas_preview.set_texture(_image_texture)
|
||||
|
||||
pass
|
||||
|
||||
func set_generate(v : bool) -> void:
|
||||
if !v:
|
||||
return
|
||||
|
||||
#for easier development
|
||||
_ready()
|
||||
_running = true
|
||||
#set_process(true)
|
||||
|
||||
func get_generate() -> bool:
|
||||
return false
|
||||
|
BIN
game/testsave.png
Normal file
BIN
game/testsave.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
34
game/testsave.png.import
Normal file
34
game/testsave.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/testsave.png-4896f165f21664f61c0d9c325caba67a.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://testsave.png"
|
||||
dest_files=[ "res://.import/testsave.png-4896f165f21664f61c0d9c325caba67a.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=1
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
Loading…
Reference in New Issue
Block a user