ProjectRR — нативный прототип на ассетах ProjectR
- Все 189 скелетов Spine сконвертированы в нативные Godot Skeleton2D (.tscn), без Spine в рантайме - Меню + сцены: подземелье (карта комнат), просмотр спрайтов, нативные анимации - Кастомизация цвета (кожа/волосы/глаза) через шейдер - Вытащенные текстуры/UI/шрифты + нарезка спрайтов из атласа - Датасет комнат для LoRA, офлайн-инструменты конвертации в tools/ Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
extends SceneTree
|
||||
|
||||
# Офлайн-запекатель: прогоняет Spine-рантайм и снимает покадрово ЛОКАЛЬНЫЕ трансформы костей
|
||||
# для выбранных анимаций -> tools/rig/<name>_anims.json (только числа, без Spine на выходе).
|
||||
|
||||
const BASE := "res://characters/elf1/spine/elf1_combat"
|
||||
const OUT := "res://tools/rig/elf1_combat_anims.json"
|
||||
const FPS := 30.0
|
||||
const ANIMS := ["idle_0", "walk_0", "attack_0", "attack_1", "knockback_0", "stun_0"]
|
||||
|
||||
func _initialize():
|
||||
var atlas := SpineAtlasResource.new(); atlas.load_from_atlas_file(BASE + ".atlas.txt")
|
||||
var skf := SpineSkeletonFileResource.new(); skf.load_from_file(BASE + ".skel.bytes")
|
||||
var data := SpineSkeletonDataResource.new()
|
||||
data.set_atlas_res(atlas); data.set_skeleton_file_res(skf)
|
||||
|
||||
var sprite := SpineSprite.new()
|
||||
sprite.set_skeleton_data_res(data)
|
||||
get_root().add_child(sprite)
|
||||
var st = sprite.get_animation_state()
|
||||
var skel = sprite.get_skeleton()
|
||||
|
||||
# имена костей в порядке скелета
|
||||
var bone_names := []
|
||||
for bd in data.get_bones():
|
||||
bone_names.append(bd.get_bone_name())
|
||||
|
||||
# имена слотов + индекс по имени (для draw order)
|
||||
var slot_names := []
|
||||
var slot_index := {}
|
||||
var live_slots = skel.get_slots()
|
||||
for i in live_slots.size():
|
||||
var sn = live_slots[i].get_data().get_name()
|
||||
slot_names.append(sn); slot_index[sn] = i
|
||||
|
||||
var out := { "fps": FPS, "bones": bone_names, "slots": slot_names, "animations": {} }
|
||||
|
||||
for anim in ANIMS:
|
||||
var sa = data.find_animation(anim)
|
||||
if sa == null:
|
||||
print("skip (нет): ", anim); continue
|
||||
var dur: float = sa.get_duration()
|
||||
var nframes := int(round(dur * FPS)) + 1
|
||||
st.clear_tracks()
|
||||
st.set_animation(anim, false, 0)
|
||||
|
||||
var frames := []
|
||||
var draworder := []
|
||||
for f in nframes:
|
||||
skel.set_bones_to_setup_pose()
|
||||
skel.set_slots_to_setup_pose()
|
||||
st.apply(skel)
|
||||
var frame := []
|
||||
for name in bone_names:
|
||||
var b = skel.find_bone(name)
|
||||
frame.append([
|
||||
snappedf(b.get_x(), 0.001), snappedf(b.get_y(), 0.001),
|
||||
snappedf(b.get_rotation(), 0.001),
|
||||
snappedf(b.get_scale_x(), 0.001), snappedf(b.get_scale_y(), 0.001)
|
||||
])
|
||||
frames.append(frame)
|
||||
# порядок отрисовки: индексы слотов сзади->вперёд
|
||||
var order := []
|
||||
for s in skel.get_draw_order():
|
||||
order.append(slot_index[s.get_data().get_name()])
|
||||
draworder.append(order)
|
||||
st.update(1.0 / FPS)
|
||||
out["animations"][anim] = { "duration": dur, "frames": frames, "draworder": draworder }
|
||||
print("baked ", anim, " frames=", nframes, " dur=", dur)
|
||||
|
||||
var fp := FileAccess.open(OUT, FileAccess.WRITE)
|
||||
fp.store_string(JSON.stringify(out))
|
||||
fp.close()
|
||||
print("SAVED ", OUT)
|
||||
quit()
|
||||
@@ -0,0 +1 @@
|
||||
uid://bjb1ib2jhhebw
|
||||
@@ -0,0 +1,175 @@
|
||||
extends SceneTree
|
||||
|
||||
# Собирает нативного персонажа (Skeleton2D + взвешенные Polygon2D + AnimationPlayer с
|
||||
# запечёнными анимациями) и СОХРАНЯЕТ как редактируемую сцену res://characters/elf1/elf1_native.tscn.
|
||||
# Запуск: godot ... --headless --script res://tools/build_tscn.gd
|
||||
|
||||
const GEOM := "res://tools/rig/elf1_combat.json"
|
||||
const ANIMS := "res://tools/rig/elf1_combat_anims.json"
|
||||
const PAGE := "res://characters/elf1/spine/elf1_combat.png"
|
||||
const OUT := "res://characters/elf1/elf1_native.tscn"
|
||||
const VP := Vector2(1280, 720)
|
||||
|
||||
var _root: Node2D
|
||||
var _skel: Skeleton2D
|
||||
var _bones := []
|
||||
var _by_name := {}
|
||||
var _poly_by_slot := {} # имя слота -> Polygon2D
|
||||
var _base_rank := {} # имя слота -> setup-ранг (индекс в порядке отрисовки)
|
||||
|
||||
func _initialize():
|
||||
_build_rig()
|
||||
_build_anims()
|
||||
_set_owner(_root, _root)
|
||||
|
||||
var packed := PackedScene.new()
|
||||
var err := packed.pack(_root)
|
||||
if err != OK:
|
||||
push_error("pack failed: %d" % err); quit(); return
|
||||
err = ResourceSaver.save(packed, OUT)
|
||||
print("SAVE ", OUT, " -> ", err, " (кости=%d, привязок=%d)" % [_bones.size(), _skel.get_child_count() - _bones_direct])
|
||||
quit()
|
||||
|
||||
var _bones_direct := 0
|
||||
|
||||
func _build_rig():
|
||||
var f := FileAccess.open(GEOM, FileAccess.READ)
|
||||
var data: Dictionary = JSON.parse_string(f.get_as_text()); f.close()
|
||||
var tex: Texture2D = load(PAGE)
|
||||
var ts := tex.get_size()
|
||||
|
||||
_root = Node2D.new(); _root.name = "ElfNative"
|
||||
var spine := Node2D.new(); spine.name = "SpineRoot"; _root.add_child(spine)
|
||||
_skel = Skeleton2D.new(); _skel.name = "Skeleton2D"; spine.add_child(_skel)
|
||||
|
||||
for bd in data["bones"]:
|
||||
var b := Bone2D.new()
|
||||
b.name = bd["name"]
|
||||
b.set_autocalculate_length_and_angle(false)
|
||||
b.set_length(float(bd["length"]))
|
||||
b.set_bone_angle(0.0)
|
||||
var t := Transform2D(deg_to_rad(float(bd["rotation"])), Vector2(bd["scaleX"], bd["scaleY"]), 0.0, Vector2(bd["x"], bd["y"]))
|
||||
var parent = _by_name.get(bd["parent"], _skel)
|
||||
parent.add_child(b)
|
||||
b.transform = t; b.rest = t
|
||||
_bones.append(b); _by_name[bd["name"]] = b
|
||||
_bones_direct = _skel.get_child_count()
|
||||
|
||||
var minv := Vector2(1e9, 1e9); var maxv := Vector2(-1e9, -1e9)
|
||||
var att_rank := 0
|
||||
for att in data["attachments"]:
|
||||
var world: Array = att["world"]; var uv: Array = att["uv"]
|
||||
var tris: Array = att["triangles"]; var weights: Array = att["weights"]
|
||||
var vc := world.size() / 2
|
||||
var poly := Polygon2D.new(); poly.name = String(att["slot"]); poly.texture = tex
|
||||
var pts := PackedVector2Array(); var uvs := PackedVector2Array()
|
||||
pts.resize(vc); uvs.resize(vc)
|
||||
for i in vc:
|
||||
var p := Vector2(world[i * 2], world[i * 2 + 1]); pts[i] = p
|
||||
uvs[i] = Vector2(uv[i * 2] * ts.x, uv[i * 2 + 1] * ts.y)
|
||||
minv = minv.min(p); maxv = maxv.max(p)
|
||||
poly.polygon = pts; poly.uv = uvs
|
||||
var polys := []
|
||||
for t in range(0, tris.size(), 3):
|
||||
polys.append(PackedInt32Array([tris[t], tris[t + 1], tris[t + 2]]))
|
||||
poly.polygons = polys
|
||||
var c: Array = att["color"]; poly.modulate = Color(c[0], c[1], c[2], c[3])
|
||||
poly.z_index = att_rank # базовый порядок отрисовки (setup)
|
||||
_skel.add_child(poly)
|
||||
poly.skeleton = poly.get_path_to(_skel)
|
||||
_poly_by_slot[String(att["slot"])] = poly
|
||||
_base_rank[String(att["slot"])] = att_rank
|
||||
att_rank += 1
|
||||
var bw := {}
|
||||
for i in vc:
|
||||
for pair in weights[i]:
|
||||
var bi := int(pair[0])
|
||||
if not bw.has(bi): var a := PackedFloat32Array(); a.resize(vc); bw[bi] = a
|
||||
bw[bi][i] = float(pair[1])
|
||||
for bi in bw:
|
||||
poly.add_bone(_skel.get_path_to(_bones[bi]), bw[bi])
|
||||
|
||||
var size := maxv - minv; var center := (minv + maxv) * 0.5
|
||||
var fit: float = min(VP.x * 0.55 / size.x, VP.y * 0.8 / size.y)
|
||||
spine.scale = Vector2(fit, -fit)
|
||||
spine.position = Vector2(VP.x * 0.5 - center.x * fit, VP.y * 0.5 + center.y * fit)
|
||||
|
||||
func _build_anims():
|
||||
var f := FileAccess.open(ANIMS, FileAccess.READ)
|
||||
var data: Dictionary = JSON.parse_string(f.get_as_text()); f.close()
|
||||
var fps := float(data["fps"])
|
||||
var bone_names: Array = data["bones"]
|
||||
var slot_names: Array = data.get("slots", [])
|
||||
var anims: Dictionary = data["animations"]
|
||||
|
||||
var player := AnimationPlayer.new(); player.name = "AnimationPlayer"
|
||||
_root.add_child(player)
|
||||
player.root_node = player.get_path_to(_skel)
|
||||
var lib := AnimationLibrary.new()
|
||||
|
||||
for anim_name in anims:
|
||||
var a: Dictionary = anims[anim_name]
|
||||
var frames: Array = a["frames"]; var nf := frames.size()
|
||||
var anim := Animation.new(); anim.length = float(a["duration"]); anim.loop_mode = Animation.LOOP_LINEAR
|
||||
for bi in bone_names.size():
|
||||
var bn: String = bone_names[bi]
|
||||
if not _by_name.has(bn): continue
|
||||
var rel := String(_skel.get_path_to(_by_name[bn]))
|
||||
var f0: Array = frames[0][bi]
|
||||
var pv := false; var rv := false; var sv := false
|
||||
for fr in range(1, nf):
|
||||
var v: Array = frames[fr][bi]
|
||||
if not pv and (not is_equal_approx(v[0], f0[0]) or not is_equal_approx(v[1], f0[1])): pv = true
|
||||
if not rv and not is_equal_approx(v[2], f0[2]): rv = true
|
||||
if not sv and (not is_equal_approx(v[3], f0[3]) or not is_equal_approx(v[4], f0[4])): sv = true
|
||||
_add_track(anim, rel + ":position", frames, bi, fps, nf, 0, pv)
|
||||
_add_track(anim, rel + ":rotation", frames, bi, fps, nf, 1, rv)
|
||||
_add_track(anim, rel + ":scale", frames, bi, fps, nf, 2, sv)
|
||||
|
||||
# --- draw order -> z_index (дискретно) ---
|
||||
var draworder: Array = a.get("draworder", [])
|
||||
if not draworder.is_empty() and not slot_names.is_empty():
|
||||
# ранг полигон-слота = позиция среди слотов-С-привязкой в порядке отрисовки
|
||||
var ranks := {} # имя слота -> [ранг по кадрам]
|
||||
for name in _poly_by_slot: ranks[name] = []
|
||||
for fr in nf:
|
||||
var r := 0
|
||||
for si in draworder[fr]:
|
||||
var sn: String = slot_names[si]
|
||||
if _poly_by_slot.has(sn):
|
||||
ranks[sn].append(r); r += 1
|
||||
for sn in ranks:
|
||||
var seq: Array = ranks[sn]
|
||||
var vary := false
|
||||
for v in seq:
|
||||
if v != _base_rank[sn]: vary = true; break
|
||||
if not vary: continue
|
||||
var rel := String(_skel.get_path_to(_poly_by_slot[sn]))
|
||||
var ti := anim.add_track(Animation.TYPE_VALUE)
|
||||
anim.track_set_path(ti, rel + ":z_index")
|
||||
anim.value_track_set_update_mode(ti, Animation.UPDATE_DISCRETE)
|
||||
anim.track_set_interpolation_type(ti, Animation.INTERPOLATION_NEAREST)
|
||||
for fr in nf:
|
||||
anim.track_insert_key(ti, fr / fps, seq[fr])
|
||||
|
||||
lib.add_animation(anim_name, anim)
|
||||
player.add_animation_library("", lib)
|
||||
|
||||
func _add_track(anim: Animation, path: String, frames: Array, bi: int, fps: float, nf: int, kind: int, vary: bool):
|
||||
if not vary: return
|
||||
var ti := anim.add_track(Animation.TYPE_VALUE)
|
||||
anim.track_set_path(ti, path)
|
||||
anim.track_set_interpolation_type(ti, Animation.INTERPOLATION_LINEAR)
|
||||
for fr in nf:
|
||||
var v: Array = frames[fr][bi]
|
||||
var val
|
||||
match kind:
|
||||
0: val = Vector2(v[0], v[1])
|
||||
1: val = deg_to_rad(float(v[2]))
|
||||
2: val = Vector2(v[3], v[4])
|
||||
anim.track_insert_key(ti, fr / fps, val)
|
||||
|
||||
func _set_owner(node: Node, owner: Node):
|
||||
for ch in node.get_children():
|
||||
ch.owner = owner
|
||||
_set_owner(ch, owner)
|
||||
@@ -0,0 +1 @@
|
||||
uid://dvx6hce5d7x20
|
||||
@@ -0,0 +1,225 @@
|
||||
extends SceneTree
|
||||
|
||||
# Пакетный конвертер: по всем tools/rig/geom/<char>__<stem>.json запекает анимации из Spine
|
||||
# и собирает нативные characters/<char>/<stem>_native.tscn (Skeleton2D + Polygon2D + AnimationPlayer).
|
||||
# Запуск: godot ... --headless --script res://tools/convert_all.gd
|
||||
|
||||
const GEOM_DIR := "res://tools/rig/geom"
|
||||
const FPS := 30.0
|
||||
const VP := Vector2(1280, 720)
|
||||
|
||||
func _initialize():
|
||||
var files := []
|
||||
var d := DirAccess.open(GEOM_DIR)
|
||||
d.list_dir_begin()
|
||||
var n := d.get_next()
|
||||
while n != "":
|
||||
if n.ends_with(".json"): files.append(n)
|
||||
n = d.get_next()
|
||||
files.sort()
|
||||
|
||||
var ok := 0; var fail := 0; var i := 0
|
||||
for fn in files:
|
||||
i += 1
|
||||
var stem_full: String = fn.get_basename() # char__stem
|
||||
var sep := stem_full.find("__")
|
||||
var char := stem_full.substr(0, sep)
|
||||
var stem := stem_full.substr(sep + 2)
|
||||
var base := "res://characters/%s/spine/%s" % [char, stem]
|
||||
if not FileAccess.file_exists(base + ".skel.bytes"):
|
||||
fail += 1; continue
|
||||
var out := "res://characters/%s/%s_native.tscn" % [char, stem]
|
||||
if _convert(base, GEOM_DIR + "/" + fn, out):
|
||||
ok += 1
|
||||
else:
|
||||
fail += 1
|
||||
if i % 10 == 0:
|
||||
print("... %d/%d (ok=%d)" % [i, files.size(), ok])
|
||||
await process_frame
|
||||
print("CONVERT ALL done: ok=%d fail=%d из %d" % [ok, fail, files.size()])
|
||||
quit()
|
||||
|
||||
func _convert(base: String, geom_path: String, out_path: String) -> bool:
|
||||
var gf := FileAccess.open(geom_path, FileAccess.READ)
|
||||
if gf == null: return false
|
||||
var geom: Dictionary = JSON.parse_string(gf.get_as_text()); gf.close()
|
||||
if geom == null or not geom.has("bones"): return false
|
||||
|
||||
var anims = _bake(base)
|
||||
if anims == null: return false
|
||||
|
||||
var root = _build(geom, anims, base.get_base_dir())
|
||||
if root == null: return false
|
||||
_set_owner(root, root)
|
||||
|
||||
var packed := PackedScene.new()
|
||||
if packed.pack(root) != OK:
|
||||
root.free(); return false
|
||||
var err := ResourceSaver.save(packed, out_path)
|
||||
root.free()
|
||||
return err == OK
|
||||
|
||||
# ---------- запекание анимаций ----------
|
||||
func _bake(base: String):
|
||||
var atlas := SpineAtlasResource.new()
|
||||
if atlas.load_from_atlas_file(base + ".atlas.txt") != OK: return null
|
||||
var skf := SpineSkeletonFileResource.new(); skf.load_from_file(base + ".skel.bytes")
|
||||
var data := SpineSkeletonDataResource.new()
|
||||
data.set_atlas_res(atlas); data.set_skeleton_file_res(skf)
|
||||
if not data.is_skeleton_data_loaded(): return null
|
||||
|
||||
var sprite := SpineSprite.new(); sprite.set_skeleton_data_res(data)
|
||||
get_root().add_child(sprite)
|
||||
var st = sprite.get_animation_state()
|
||||
var skel = sprite.get_skeleton()
|
||||
|
||||
var bone_names := []
|
||||
for bd in data.get_bones(): bone_names.append(bd.get_bone_name())
|
||||
var slot_names := []; var slot_index := {}
|
||||
var live_slots = skel.get_slots()
|
||||
for i in live_slots.size():
|
||||
var sn = live_slots[i].get_data().get_name()
|
||||
slot_names.append(sn); slot_index[sn] = i
|
||||
|
||||
var out := { "fps": FPS, "bones": bone_names, "slots": slot_names, "animations": {} }
|
||||
for sa in data.get_animations():
|
||||
var anim_name = sa.get_name()
|
||||
var dur: float = sa.get_duration()
|
||||
var nframes := int(round(dur * FPS)) + 1
|
||||
st.clear_tracks(); st.set_animation(anim_name, false, 0)
|
||||
var frames := []; var draworder := []
|
||||
for f in nframes:
|
||||
skel.set_bones_to_setup_pose(); skel.set_slots_to_setup_pose()
|
||||
st.apply(skel)
|
||||
var frame := []
|
||||
for nm in bone_names:
|
||||
var b = skel.find_bone(nm)
|
||||
frame.append([snappedf(b.get_x(),0.001), snappedf(b.get_y(),0.001), snappedf(b.get_rotation(),0.001), snappedf(b.get_scale_x(),0.001), snappedf(b.get_scale_y(),0.001)])
|
||||
frames.append(frame)
|
||||
var order := []
|
||||
for s in skel.get_draw_order(): order.append(slot_index[s.get_data().get_name()])
|
||||
draworder.append(order)
|
||||
st.update(1.0 / FPS)
|
||||
out["animations"][anim_name] = { "duration": dur, "frames": frames, "draworder": draworder }
|
||||
|
||||
get_root().remove_child(sprite); sprite.free()
|
||||
return out
|
||||
|
||||
# ---------- сборка нативного рига ----------
|
||||
func _build(geom: Dictionary, anims: Dictionary, spine_dir: String):
|
||||
# текстуры страниц атласа
|
||||
var pagetex := {}
|
||||
for pg in geom.get("pages", []):
|
||||
pagetex[pg] = load(spine_dir + "/" + pg)
|
||||
|
||||
var root := Node2D.new(); root.name = "Native"
|
||||
var spine := Node2D.new(); spine.name = "SpineRoot"; root.add_child(spine)
|
||||
var skel := Skeleton2D.new(); skel.name = "Skeleton2D"; spine.add_child(skel)
|
||||
|
||||
var by_name := {}; var bones := []
|
||||
for bd in geom["bones"]:
|
||||
var b := Bone2D.new(); b.name = bd["name"]
|
||||
b.set_autocalculate_length_and_angle(false); b.set_length(float(bd["length"])); b.set_bone_angle(0.0)
|
||||
var t := Transform2D(deg_to_rad(float(bd["rotation"])), Vector2(bd["scaleX"], bd["scaleY"]), 0.0, Vector2(bd["x"], bd["y"]))
|
||||
var parent = by_name.get(bd["parent"], skel)
|
||||
parent.add_child(b); b.transform = t; b.rest = t
|
||||
bones.append(b); by_name[bd["name"]] = b
|
||||
|
||||
var poly_by_slot := {}; var base_rank := {}
|
||||
var minv := Vector2(1e9,1e9); var maxv := Vector2(-1e9,-1e9); var rank := 0
|
||||
for att in geom["attachments"]:
|
||||
var world: Array = att["world"]; var uv: Array = att["uv"]; var tris: Array = att["triangles"]; var weights: Array = att["weights"]
|
||||
var vc := world.size() / 2
|
||||
if vc < 3: continue
|
||||
var tex = pagetex.get(att["page"], null)
|
||||
if tex == null: continue
|
||||
var ts: Vector2 = tex.get_size()
|
||||
var poly := Polygon2D.new(); poly.name = String(att["slot"]); poly.texture = tex
|
||||
var pts := PackedVector2Array(); var uvs := PackedVector2Array(); pts.resize(vc); uvs.resize(vc)
|
||||
for i in vc:
|
||||
var p := Vector2(world[i*2], world[i*2+1]); pts[i] = p
|
||||
uvs[i] = Vector2(uv[i*2] * ts.x, uv[i*2+1] * ts.y)
|
||||
minv = minv.min(p); maxv = maxv.max(p)
|
||||
poly.polygon = pts; poly.uv = uvs
|
||||
var polys := []
|
||||
for t in range(0, tris.size(), 3): polys.append(PackedInt32Array([tris[t], tris[t+1], tris[t+2]]))
|
||||
poly.polygons = polys
|
||||
var c: Array = att["color"]; poly.modulate = Color(c[0],c[1],c[2],c[3])
|
||||
poly.z_index = rank
|
||||
skel.add_child(poly); poly.skeleton = poly.get_path_to(skel)
|
||||
poly_by_slot[String(att["slot"])] = poly; base_rank[String(att["slot"])] = rank; rank += 1
|
||||
var bw := {}
|
||||
for i in vc:
|
||||
for pair in weights[i]:
|
||||
var bi := int(pair[0])
|
||||
if not bw.has(bi): var a := PackedFloat32Array(); a.resize(vc); bw[bi] = a
|
||||
bw[bi][i] = float(pair[1])
|
||||
for bi in bw: poly.add_bone(skel.get_path_to(bones[bi]), bw[bi])
|
||||
|
||||
if maxv.x < minv.x: root.free(); return null # нет привязок
|
||||
var size := maxv - minv; var center := (minv + maxv) * 0.5
|
||||
var fit: float = min(VP.x * 0.55 / max(size.x,1), VP.y * 0.8 / max(size.y,1))
|
||||
spine.scale = Vector2(fit, -fit)
|
||||
spine.position = Vector2(VP.x*0.5 - center.x*fit, VP.y*0.5 + center.y*fit)
|
||||
|
||||
# AnimationPlayer
|
||||
var player := AnimationPlayer.new(); player.name = "AnimationPlayer"; root.add_child(player)
|
||||
player.root_node = player.get_path_to(skel)
|
||||
var lib := AnimationLibrary.new()
|
||||
var bone_names: Array = anims["bones"]; var slot_names: Array = anims.get("slots", [])
|
||||
for anim_name in anims["animations"]:
|
||||
var a: Dictionary = anims["animations"][anim_name]
|
||||
var frames: Array = a["frames"]; var nf := frames.size()
|
||||
var anim := Animation.new(); anim.length = max(float(a["duration"]), 0.001); anim.loop_mode = Animation.LOOP_LINEAR
|
||||
for bi in bone_names.size():
|
||||
var bn: String = bone_names[bi]
|
||||
if not by_name.has(bn): continue
|
||||
var rel := String(skel.get_path_to(by_name[bn]))
|
||||
var f0: Array = frames[0][bi]; var pv := false; var rv := false; var sv := false
|
||||
for fr in range(1, nf):
|
||||
var v: Array = frames[fr][bi]
|
||||
if not pv and (not is_equal_approx(v[0],f0[0]) or not is_equal_approx(v[1],f0[1])): pv = true
|
||||
if not rv and not is_equal_approx(v[2],f0[2]): rv = true
|
||||
if not sv and (not is_equal_approx(v[3],f0[3]) or not is_equal_approx(v[4],f0[4])): sv = true
|
||||
_track(anim, rel+":position", frames, bi, nf, 0, pv)
|
||||
_track(anim, rel+":rotation", frames, bi, nf, 1, rv)
|
||||
_track(anim, rel+":scale", frames, bi, nf, 2, sv)
|
||||
var draworder: Array = a.get("draworder", [])
|
||||
if not draworder.is_empty() and not slot_names.is_empty():
|
||||
var ranks := {}
|
||||
for nm in poly_by_slot: ranks[nm] = []
|
||||
for fr in nf:
|
||||
var r := 0
|
||||
for si in draworder[fr]:
|
||||
var sn: String = slot_names[si]
|
||||
if poly_by_slot.has(sn): ranks[sn].append(r); r += 1
|
||||
for sn in ranks:
|
||||
var seq: Array = ranks[sn]; var vary := false
|
||||
for v in seq:
|
||||
if v != base_rank[sn]: vary = true; break
|
||||
if not vary or seq.size() != nf: continue
|
||||
var rel := String(skel.get_path_to(poly_by_slot[sn]))
|
||||
var ti := anim.add_track(Animation.TYPE_VALUE)
|
||||
anim.track_set_path(ti, rel + ":z_index")
|
||||
anim.value_track_set_update_mode(ti, Animation.UPDATE_DISCRETE)
|
||||
anim.track_set_interpolation_type(ti, Animation.INTERPOLATION_NEAREST)
|
||||
for fr in nf: anim.track_insert_key(ti, fr / FPS, seq[fr])
|
||||
lib.add_animation(anim_name, anim)
|
||||
player.add_animation_library("", lib)
|
||||
return root
|
||||
|
||||
func _track(anim: Animation, path: String, frames: Array, bi: int, nf: int, kind: int, vary: bool):
|
||||
if not vary: return
|
||||
var ti := anim.add_track(Animation.TYPE_VALUE)
|
||||
anim.track_set_path(ti, path); anim.track_set_interpolation_type(ti, Animation.INTERPOLATION_LINEAR)
|
||||
for fr in nf:
|
||||
var v: Array = frames[fr][bi]; var val
|
||||
match kind:
|
||||
0: val = Vector2(v[0], v[1])
|
||||
1: val = deg_to_rad(float(v[2]))
|
||||
2: val = Vector2(v[3], v[4])
|
||||
anim.track_insert_key(ti, fr / FPS, val)
|
||||
|
||||
func _set_owner(node: Node, owner: Node):
|
||||
for ch in node.get_children():
|
||||
ch.owner = owner; _set_owner(ch, owner)
|
||||
@@ -0,0 +1 @@
|
||||
uid://g8wsbadhw3r6
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["human_baby.png"],"attachments":[{"slot":"BabyB_#00","name":"BabyB_4","type":"mesh","page":"human_baby.png","world":[-24.22212,12.42406,-20.63627,16.5125,-16.35433,17.66073,-7.522231,18.24291,-4.024691,17.28302,0.83280945,12.55472,9.61414,7.48172,12.18867,3.59915,14.23861,-1.20219,13.94568,-5.97163,9.255491,-14.08906,2.0385706,-16.02162,-1.8049693,-15.96008,-6.6989594,-14.5544,-20.81525,-6.38441,-22.37441,-0.5531,-22.0868,3.56079,-24.59612,4.99905,-25.81384,9.60414],"uv":[0.46075773,0.037032127,0.5024266,0.053613663,0.52692175,0.10258484,0.565361,0.21754932,0.57252884,0.27237606,0.5595126,0.37504578,0.55949163,0.5335045,0.54327965,0.5986748,0.51880217,0.6639242,0.48538876,0.69722176,0.41214657,0.6971731,0.37088013,0.6146145,0.3562827,0.56212425,0.3466761,0.4849186,0.34681106,0.23007393,0.38017416,0.16341877,0.40913153,0.13517094,0.40906048,0.08997917,0.43546104,0.037524223],"triangles":[16,17,18,3,16,2,5,3,4,16,18,0,1,16,0,16,1,2,3,5,16,14,5,13,5,12,13,5,15,16,5,14,15,5,6,12,6,7,12,11,12,7,7,9,11,9,10,11,7,8,9],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"BabyA_#00","name":"BabyA_4","type":"mesh","page":"human_baby.png","world":[-6.4700704,11.1277,-3.8404708,15.72608,0.17129913,19.87942,10.920399,22.75879,17.837759,22.36506,27.60789,16.73708,30.91719,12.98452,33.18158,4.66843,32.30855,-0.1791,27.06319,-9.24791,23.16436,-11.83216,14.732061,-14.10332,3.9622407,-15.11733,-0.48965946,-12.28344,-6.06632,1.45389,-7.3769803,6.30883],"uv":[0.15412664,0.08418083,0.19550991,0.08383846,0.23928165,0.105677605,0.3007517,0.22863579,0.32510853,0.32531452,0.3251953,0.5014887,0.31273317,0.5755863,0.26531267,0.671196,0.229105,0.6972542,0.14725733,0.69712734,0.114542484,0.6645584,0.0662384,0.5681982,0.017308235,0.4303875,0.01909113,0.34800625,0.0902524,0.16522217,0.11798,0.10955715],"triangles":[11,13,14,12,13,11,5,11,4,4,11,3,14,3,11,5,10,11,14,15,0,14,0,1,3,1,2,1,3,14,9,10,8,6,7,5,10,5,8,7,8,5],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["human_fetus.png"],"attachments":[{"slot":"BabyB_fetalstage$0_#00","name":"BabyB_4","type":"mesh","page":"human_fetus.png","world":[-1.3515112,27.189,3.9821088,26.12778,7.117479,22.99363,12.037709,15.6359,12.955189,12.12699,11.28911,5.55613,11.28643,-4.58523,9.21129,-8.75613,6.0781703,-12.93209,1.8012607,-15.06313,-7.5737395,-15.06002,-12.85585,-9.77627,-14.72432,-6.41689,-15.95396,-1.47573,-15.936691,14.83433,-11.666211,19.10026,-7.959671,20.90812,-7.968761,23.80039,-4.589491,27.15751],"uv":[0.46075773,0.037032127,0.5024266,0.053613663,0.52692175,0.10258484,0.565361,0.21754932,0.57252884,0.27237606,0.5595126,0.37504578,0.55949163,0.5335045,0.54327965,0.5986748,0.51880217,0.6639242,0.48538876,0.69722176,0.41214657,0.6971731,0.37088013,0.6146145,0.3562827,0.56212425,0.3466761,0.4849186,0.34681106,0.23007393,0.38017416,0.16341877,0.40913153,0.13517094,0.40906048,0.08997917,0.43546104,0.037524223],"triangles":[16,17,18,3,16,2,5,3,4,16,18,0,1,16,0,16,1,2,3,5,16,14,5,13,5,12,13,5,15,16,5,14,15,5,6,12,6,7,12,11,12,7,7,9,11,9,10,11,7,8,9],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"BabyA_fetalstage$0_#00","name":"BabyA_4","type":"mesh","page":"human_fetus.png","world":[6.4018397,11.1671,11.698939,11.18899,17.30173,9.79136,25.16989,1.92205,28.28759,-4.26542,28.29869,-15.5406,26.70352,-20.28282,20.633772,-26.40188,15.999171,-28.06957,5.522671,-28.06136,1.3352312,-25.97701,-4.847799,-19.81,-11.110879,-10.99007,-10.8826,-5.71766,-1.7740502,5.98053,1.7751096,9.54307],"uv":[0.15412664,0.08418083,0.19550991,0.08383846,0.23928165,0.105677605,0.3007517,0.22863579,0.32510853,0.32531452,0.3251953,0.5014887,0.31273317,0.5755863,0.26531267,0.671196,0.229105,0.6972542,0.14725733,0.69712734,0.114542484,0.6645584,0.0662384,0.5681982,0.017308235,0.4303875,0.01909113,0.34800625,0.0902524,0.16522217,0.11798,0.10955715],"triangles":[11,13,14,12,13,11,5,11,4,4,11,3,14,3,11,5,10,11,14,15,0,14,0,1,3,1,2,1,3,14,9,10,8,6,7,5,10,5,8,7,8,5],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["human_fetus_body.png"],"attachments":[{"slot":"BabyB_fetalstage$0_#00","name":"BabyB_4","type":"mesh","page":"human_fetus_body.png","world":[-1.3515112,27.189,3.9821088,26.12778,7.117479,22.99363,12.037709,15.6359,12.955189,12.12699,11.28911,5.55613,11.28643,-4.58523,9.21129,-8.75613,6.0781703,-12.93209,1.8012607,-15.06313,-7.5737395,-15.06002,-12.85585,-9.77627,-14.72432,-6.41689,-15.95396,-1.47573,-15.936691,14.83433,-11.666211,19.10026,-7.959671,20.90812,-7.968761,23.80039,-4.589491,27.15751],"uv":[0.26526546,0.037032127,0.34860325,0.053613663,0.3975935,0.10258484,0.47447205,0.21754932,0.48880768,0.27237606,0.46277523,0.37504578,0.46273327,0.5335045,0.4303093,0.5986748,0.38135433,0.6639242,0.3145275,0.69722176,0.16804314,0.6971731,0.085510254,0.6146145,0.056315422,0.56212425,0.037102222,0.4849186,0.037372112,0.23007393,0.10409832,0.16341877,0.16201305,0.13517094,0.16187096,0.08997917,0.21467209,0.037524223],"triangles":[16,17,18,3,16,2,5,3,4,16,18,0,1,16,0,16,1,2,3,5,16,14,5,13,5,12,13,5,15,16,5,14,15,5,6,12,6,7,12,11,12,7,7,9,11,9,10,11,7,8,9],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["human_fetus_head.png"],"attachments":[{"slot":"BabyA_fetalstage$0_#00","name":"BabyA_4","type":"mesh","page":"human_fetus_head.png","world":[6.4018397,11.1671,11.698939,11.18899,17.30173,9.79136,25.16989,1.92205,28.28759,-4.26542,28.29869,-15.5406,26.70352,-20.28282,20.633772,-26.40188,15.999171,-28.06957,5.522671,-28.06136,1.3352312,-25.97701,-4.847799,-19.81,-11.110879,-10.99007,-10.8826,-5.71766,-1.7740502,5.98053,1.7751096,9.54307],"uv":[0.3082533,0.037305832,0.39101982,0.036963463,0.4785633,0.058802605,0.6015034,0.18176079,0.65021706,0.27843952,0.6503906,0.4546137,0.62546635,0.5287113,0.53062534,0.624321,0.45821,0.6503792,0.29451466,0.65025234,0.22908497,0.6176834,0.1324768,0.5213232,0.03461647,0.3835125,0.03818226,0.30113125,0.1805048,0.11834717,0.23596,0.06268215],"triangles":[11,13,14,12,13,11,5,11,4,4,11,3,14,3,11,5,10,11,14,15,0,14,0,1,3,1,2,1,3,14,9,10,8,6,7,5,10,5,8,7,8,5],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["human_suckle_left.png"],"attachments":[{"slot":"baby_body_#00","name":"B_bodyB_oni","type":"mesh","page":"human_suckle_left.png","world":[18.05194,4.9483,18.067081,-23.16284,-6.2595787,-29.8941,-26.6496,-9.43146],"uv":[0.8402147,0.02230072,0.8404846,0.32785702,0.4060793,0.4010229,0.041971207,0.17860317],"triangles":[2,3,0,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"baby_head_#00","name":"B_headB_slave","type":"mesh","page":"human_suckle_left.png","world":[35.40454,21.76181,17.65179,-13.97603,-12.981199,-14.2151,-4.3984413,35.28235],"uv":[0.90009785,0.57868767,0.58308506,0.96714306,0.03606701,0.9697418,0.1893301,0.4317255],"triangles":[1,3,0,2,3,1],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["human_suckle_left_body.png"],"attachments":[{"slot":"body_#00","name":"B_bodyB_oni","type":"mesh","page":"human_suckle_left_body.png","world":[18.05194,4.9483,18.067081,-23.16284,-6.2595787,-29.8941,-26.6496,-9.43146],"uv":[0.90484524,0.05129242,0.9051361,0.7540703,0.437315,0.92235374,0.045199394,0.41078758],"triangles":[2,3,0,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["human_suckle_left_head.png"],"attachments":[{"slot":"head_#00","name":"B_headB_slave","type":"mesh","page":"human_suckle_left_head.png","world":[35.40454,21.76181,17.65179,-13.97603,-12.981199,-14.2151,-4.3984413,35.28235],"uv":[0.90009785,0.28998756,0.58308506,0.9281626,0.03606701,0.9324322,0.1893301,0.048549652],"triangles":[1,3,0,2,3,1],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["human_suckle_right.png"],"attachments":[{"slot":"baby_head_#00","name":"B_headA_slave","type":"mesh","page":"human_suckle_right.png","world":[24.7469,5.47355,-0.13018902,-22.66902,-30.47783,-2.32667,-4.6263213,34.10309],"uv":[0.45549917,0.56377125,0.22591972,0.92932034,0.020028591,0.53395844,0.26834726,0.043533325],"triangles":[2,3,0,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"baby_body_#00","name":"B_bodyA_slave","type":"mesh","page":"human_suckle_right.png","world":[24.018562,-32.09669,-8.779638,-38.08854,-16.22972,-5.21896,18.45294,-0.75707],"uv":[0.7505064,0.9211178,0.4900341,0.92432976,0.4773059,0.3983307,0.75020075,0.42377472],"triangles":[1,2,3,1,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["human_suckle_right_body.png"],"attachments":[{"slot":"body_#00","name":"B_bodyA_slave","type":"mesh","page":"human_suckle_right_body.png","world":[24.018562,-32.09669,-8.779638,-38.08854,-16.22972,-5.21896,18.45294,-0.75707],"uv":[0.9266205,0.92379,0.09310913,0.9289284,0.052378654,0.087329865,0.925642,0.12804031],"triangles":[1,2,3,1,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["human_suckle_right_head.png"],"attachments":[{"slot":"head_#00","name":"B_headA_slave","type":"mesh","page":"human_suckle_right_head.png","world":[24.7469,5.47355,-0.13018902,-22.66902,-30.47783,-2.32667,-4.6263213,34.10309],"uv":[0.91099834,0.56377125,0.45183945,0.92932034,0.040057182,0.53395844,0.5366945,0.043533325],"triangles":[2,3,0,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0},{"name":"subRoot","parent":"root","x":-1.1564333E-14,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["door1.png"],"attachments":[{"slot":"Defense_build_00","name":"Defense_build_00","type":"region","page":"door1.png","world":[116.22398,-184.8599,-165.77602,-184.8599,-165.7761,744.14014,116.2239,744.14014],"uv":[0.9861111,0.9946581,0.0069444445,0.9946581,0.0069444445,0.0021367522,0.9861111,0.0021367522],"triangles":[0,1,2,2,3,0],"weights":[[[1,1]],[[1,1]],[[1,1]],[[1,1]]],"color":[1,1,1,1]}]}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["goblin_baby.png"],"attachments":[{"slot":"BabyB_#00","name":"BabyB","type":"mesh","page":"goblin_baby.png","world":[-6.288921,17.83787,17.75637,1.55669,5.958331,-18.64447,-19.83856,-9.02339,-27.85903,16.15398],"uv":[0.6351843,0.31460476,0.6189556,0.76717377,0.43619204,0.76534843,0.40051746,0.34110928,0.53953314,0.035881042],"triangles":[3,4,0,2,3,0,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"BabyA_#00","name":"BabyA","type":"mesh","page":"goblin_baby.png","world":[14.172299,24.23465,34.4434,12.44275,29.89135,-9.37827,-0.5551392,-19.38121,-8.756781,16.05449],"uv":[0.37557793,0.2915039,0.37497997,0.6579294,0.20956135,0.76680946,0.022951603,0.43296623,0.23066568,0.04514408],"triangles":[0,3,4,0,2,3,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["goblin_dead.png"],"attachments":[{"slot":"shadow","name":"shadow","type":"mesh","page":"goblin_dead.png","world":[63.0683,22.07513,123.10071,9.68713,133.2088,-3.44836,109.90753,-15.14221,53.14954,-23.00897,-51.20703,-23.04657,-97.94235,-16.04987,-128.59637,-6.78906,-123.12354,7.79218,-74.3616,19.89484,-70.73181,21.99036],"uv":[0.6931013,0.82473135,0.90750253,0.8689742,0.9436029,0.9158869,0.8603841,0.95765066,0.65767705,0.98574615,0.28497505,0.9858804,0.11806309,0.9608922,0.008584499,0.9278178,0.028130293,0.87574196,0.20228004,0.83251834,0.21524358,0.82503414],"triangles":[3,0,1,3,1,2,6,8,9,7,8,6,0,5,10,4,0,3,4,5,0,9,10,5,6,9,5],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"M_bodyA_#00","name":"M_bodyA","type":"mesh","page":"goblin_dead.png","world":[-4.9290233,80.85559,75.53302,28.37317,74.87939,-9.04932,-113.86621,-9.03918,-133.52316,7.04034,-46.228035,72.23212],"uv":[0.46811068,0.48980165,0.75547516,0.67723894,0.7531408,0.8108907,0.07904923,0.81085443,0.008845925,0.7534275,0.32061422,0.52059984],"triangles":[3,4,5,2,0,1,5,0,2,3,5,2],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"M_bodyclothA_#06","name":"M_bodyclothA","type":"mesh","page":"goblin_dead.png","world":[23.443539,51.04504,34.824276,56.96265,-20.287231,27.11987,-41.564793,76.93036,-3.4594734,77.15137],"uv":[0.76229835,0.121268034,0.8029437,0.10013366,0.6061171,0.20671487,0.53012586,0.028820276,0.66621625,0.02803111],"triangles":[2,3,4,2,4,0,2,0,1],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"M_armA1_#00","name":"M_armA1","type":"mesh","page":"goblin_dead.png","world":[59.82031,4.61597,48.08795,-19.08398,-81.49683,-20.94342,-83.77521,9.80328,-82.00201,9.06281,28.54974,15.33014],"uv":[0.5207896,0.047800064,0.47888827,0.13244271,0.016085386,0.13908362,0.007948279,0.029273987,0.014281154,0.031918526,0.40910888,0.009535074],"triangles":[1,5,0,2,4,5,2,5,1,3,4,2],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"M_armclothA1_#05","name":"M_armclothA1","type":"mesh","page":"goblin_dead.png","world":[-12.971069,-20.00055,-66.06607,-20.10333,-61.63541,6.09088,-12.782711,16.29486],"uv":[0.9572461,0.81071615,0.7676212,0.8110833,0.78344494,0.7175324,0.9579188,0.6810899],"triangles":[0,2,3,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"M_armclothA2_#05","name":"M_armclothA2","type":"mesh","page":"goblin_dead.png","world":[21.24359,16.12598,19.95471,-17.7865,8.895691,-21.24109,6.56616,-2.93457,9.268679,15.94183],"uv":[0.8437271,0.35312128,0.83912396,0.4742372,0.7996274,0.48657537,0.7913077,0.4211948,0.80095947,0.35377908],"triangles":[0,3,4,1,3,0,2,3,1],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"M_faceC_#01","name":"M_faceC","type":"mesh","page":"goblin_dead.png","world":[119.13208,26.68994,119.17102,15.13397,90.2359,12.9906,68.901,12.9671,68.86279,34.24298],"uv":[0.9469001,0.61896443,0.9470391,0.66023564,0.8436997,0.66789055,0.7675035,0.6679745,0.7673671,0.5919893],"triangles":[2,4,0,2,0,1,3,4,2],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"M_headA_#00","name":"M_headA","type":"mesh","page":"goblin_dead.png","world":[109.93298,69.91882,129.55927,9.93555,107.99988,-17.39636,-8.4245,-2.84894,0.6591202,-3.94836,60.989437,75.59558],"uv":[0.43190348,0.16814709,0.50199735,0.3823731,0.4249996,0.47998714,0.009198308,0.42803192,0.041639805,0.43195844,0.25710523,0.14787292],"triangles":[1,2,5,1,5,0,4,5,2,3,4,2],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"M_headA_L","name":"M_headA_L","type":"mesh","page":"goblin_dead.png","world":[83.81171,72.30133,121.09491,33.86609,121.12415,27.28711,118.72723,-1.43182,46.295715,56.00952,62.580315,69.1532],"uv":[0.64575624,0.2167809,0.7789104,0.35404944,0.7790148,0.37754583,0.7704544,0.4801135,0.5117705,0.27496576,0.5699296,0.22802424],"triangles":[5,1,2,1,5,0,2,4,5,3,4,2],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"M_headC","name":"M_headC","type":"mesh","page":"goblin_dead.png","world":[89.51343,-20.78076,79.60657,-2.61566,109.2135,2.8009],"uv":[0.8018336,0.58135986,0.7664521,0.5164845,0.8721912,0.49713945],"triangles":[0,1,2],"weights":[[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["goblin_fetus.png"],"attachments":[{"slot":"BabyB_fetalstage$0_#00","name":"BabyB_4","type":"mesh","page":"goblin_fetus.png","world":[-1.4427612,27.20719,3.9565887,26.13773,7.255539,22.84458,12.297959,15.20664,12.28148,9.2512,10.44255,6.83604,11.299,2.62949,11.2816,-4.613,9.17278,-8.84505,6.0517507,-12.95022,1.8560107,-15.05776,-5.4102297,-15.06118,-8.620679,-14.00948,-12.81233,-9.88778,-14.55989,-7.04,-15.94279,-1.5812,-15.940961,12.68491,-14.278881,17.7457,-7.977181,20.94462,-7.959241,23.85758,-4.559281,27.16624],"uv":[0.49910736,0.036747932,0.5412898,0.053458214,0.56706285,0.10491371,0.60645676,0.22425652,0.606328,0.31731033,0.5919614,0.35504723,0.59865236,0.42077446,0.59851646,0.5339384,0.58204126,0.6000643,0.5576582,0.66420746,0.524879,0.69713783,0.46811152,0.69719124,0.44302988,0.6807585,0.4102826,0.61635685,0.3966298,0.57186127,0.38582587,0.48656654,0.38584018,0.26365852,0.39882517,0.18458366,0.44805717,0.13460064,0.44819736,0.08908558,0.47475958,0.037387848],"triangles":[3,5,2,4,5,3,18,19,20,18,20,0,1,18,0,5,16,18,16,5,15,6,14,15,1,2,18,18,2,5,16,17,18,6,15,5,7,8,6,8,14,6,13,14,8,12,13,11,11,13,8,9,10,8,8,10,11],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"BabyA_fetalstage$0_#00","name":"BabyA_4","type":"mesh","page":"goblin_fetus.png","world":[10.836819,11.36788,17.04742,10.12829,26.27186,0.87762,28.3549,-4.36961,28.3305,-16.05966,26.57276,-20.45875,20.565542,-26.45539,15.922401,-28.04596,5.5610113,-28.04603,1.3986912,-25.98899,-5.286599,-19.29438,-6.5826497,-15.56157,-15.89714,-10.73019,-15.92826,-4.55009,-5.28715,0.74719,-0.17855036,8.31213,5.4660597,11.12067],"uv":[0.22747517,0.08121014,0.27599478,0.10057926,0.3480606,0.24512196,0.3643341,0.32710838,0.36414385,0.5097666,0.35041142,0.5785017,0.30348015,0.67219925,0.26720524,0.697052,0.18625689,0.6970539,0.15373898,0.6649132,0.10151005,0.5603075,0.09138489,0.50198364,0.018615246,0.42649364,0.018372297,0.32992744,0.10150576,0.24715805,0.14141655,0.12895584,0.1855154,0.08507252],"triangles":[11,12,13,14,11,13,2,3,9,14,16,11,10,11,16,3,4,9,15,16,14,0,9,10,0,10,16,0,2,9,2,0,1,7,9,4,4,5,7,5,6,7,8,9,7],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["goblin_fetus_body.png"],"attachments":[{"slot":"BabyB_fetalstage$0_#00","name":"BabyB_4","type":"mesh","page":"goblin_fetus_body.png","world":[-1.4427612,27.20719,3.9565887,26.13773,7.255539,22.84458,12.297959,15.20664,12.28148,9.2512,10.44255,6.83604,11.299,2.62949,11.2816,-4.613,9.17278,-8.84505,6.0517507,-12.95022,1.8560107,-15.05776,-5.4102297,-15.06118,-8.620679,-14.00948,-12.81233,-9.88778,-14.55989,-7.04,-15.94279,-1.5812,-15.940961,12.68491,-14.278881,17.7457,-7.977181,20.94462,-7.959241,23.85758,-4.559281,27.16624],"uv":[0.26383972,0.036747932,0.3482046,0.053458214,0.3997507,0.10491371,0.4785385,0.22425652,0.47828102,0.31731033,0.44954777,0.35504723,0.46292973,0.42077446,0.46265793,0.5339384,0.42970753,0.6000643,0.3809414,0.66420746,0.31538296,0.69713783,0.20184803,0.69719124,0.15168476,0.6807585,0.08619022,0.61635685,0.05888462,0.57186127,0.037276745,0.48656654,0.037305355,0.26365852,0.06327534,0.18458366,0.16173935,0.13460064,0.16201973,0.08908558,0.21514416,0.037387848],"triangles":[3,5,2,4,5,3,18,19,20,18,20,0,1,18,0,5,16,18,16,5,15,6,14,15,1,2,18,18,2,5,16,17,18,6,15,5,7,8,6,8,14,6,13,14,8,12,13,11,11,13,8,9,10,8,8,10,11],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["goblin_fetus_head.png"],"attachments":[{"slot":"BabyA_fetalstage$0_#00","name":"BabyA_4","type":"mesh","page":"goblin_fetus_head.png","world":[10.836819,11.36788,17.04742,10.12829,26.27186,0.87762,28.3549,-4.36961,28.3305,-16.05966,26.57276,-20.45875,20.565542,-26.45539,15.922401,-28.04596,5.5610113,-28.04603,1.3986912,-25.98899,-5.286599,-19.29438,-6.5826497,-15.56157,-15.89714,-10.73019,-15.92826,-4.55009,-5.28715,0.74719,-0.17855036,8.31213,5.4660597,11.12067],"uv":[0.45495033,0.034335136,0.55198956,0.05370426,0.6961212,0.19824696,0.7286682,0.28023338,0.7282877,0.46289158,0.70082283,0.5316267,0.6069603,0.62532425,0.5344105,0.650177,0.37251377,0.6501789,0.30747795,0.6180382,0.2030201,0.5134325,0.18276978,0.45510864,0.03723049,0.37961864,0.036744595,0.28305244,0.20301151,0.20028305,0.2828331,0.08208084,0.3710308,0.038197517],"triangles":[11,12,13,14,11,13,2,3,9,14,16,11,10,11,16,3,4,9,15,16,14,0,9,10,0,10,16,0,2,9,2,0,1,7,9,4,4,5,7,5,6,7,8,9,7],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["goblin_suckle_left.png"],"attachments":[{"slot":"B_bodyB_#00","name":"B_bodyB_1_0","type":"mesh","page":"goblin_suckle_left.png","world":[13.6593,2.20018,18.39266,0.03619,18.44362,-15.34947,16.10578,-19.3161,10.500291,-24.96737,4.200351,-27.88704,-5.2864585,-27.67343,-10.999819,-25.25504,-15.805279,-19.08292,-21.70795,-16.11371,-23.17037,-11.55945,-21.86095,-7.31215,-12.63631,-7.18515,-9.14153,-7.93416,-5.3448396,-9.35976,-2.4018397,-6.09799,1.3339001,-2.83065,4.9259,1.49127,9.40504,2.6792,-18.03153,-13.93442,-12.162139,-14.57072,-6.878719,-18.56179,-1.7930292,-17.76426,6.6973004,-14.91831,10.39315,-10.71361,14.67586,-3.39362,12.13687,-5.77603],"uv":[0.6493003,0.2768939,0.686216,0.31098667,0.68615854,0.5513935,0.6677768,0.61323416,0.623816,0.70120454,0.5745105,0.74645245,0.5004004,0.7425532,0.45583558,0.70442706,0.41847545,0.6077021,0.372448,0.56095797,0.3611576,0.48971033,0.37151316,0.42342296,0.44358534,0.4219848,0.4708665,0.43389484,0.5004863,0.45639494,0.5235753,0.40560335,0.5528581,0.35477164,0.581049,0.2874534,0.6160776,0.2691571,0.40123478,0.52712375,0.4470712,0.5374137,0.48823035,0.6000878,0.5279863,0.5879271,0.5944023,0.5439615,0.6234007,0.4784812,0.6570764,0.36435825,0.63716996,0.40143356],"triangles":[6,22,5,5,23,4,5,22,23,7,21,6,6,21,22,7,8,21,21,8,20,4,23,3,23,24,3,3,24,2,9,19,8,8,19,20,21,20,14,21,14,22,14,20,13,23,22,15,9,10,19,24,26,2,26,25,2,2,25,1,22,14,15,15,16,23,23,16,24,19,12,20,20,12,13,10,11,19,19,11,12,24,16,26,26,16,17,26,17,18,25,18,0,25,26,18,25,0,1],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"B_headB_#00","name":"B_headB_1_0","type":"mesh","page":"goblin_suckle_left.png","world":[7.6775985,29.33389,13.580609,29.27509,18.564798,28.02882,23.388659,24.80669,26.96736,20.03051,28.39288,15.87404,28.54728,4.92909,24.95622,-0.91223,22.00582,-4.79237,14.99625,-7.07365,14.265791,-11.73657,9.649541,-15.26327,-0.86307937,-15.16475,-7.1938696,-11.91719,-12.00668,-7.91294,-11.99451,-3.08536,-9.51675,0.34136,-9.53638,4.76218,-8.41133,9.3894,-8.041421,18.77002,-3.839371,24.14537,1.7107788,27.83756,-1.8835005,10.66529,-2.0635202,7.96529,-1.0835103,6.38526,3.9564998,4.6853,-5.3937,-1.70202,1.7263002,-6.34202,9.84631,-6.30201,13.56633,-5.902,11.36629,4.37797,14.56631,4.018,20.64631,-0.10203],"uv":[0.17312695,0.03797947,0.21924433,0.03889759,0.25818342,0.058370978,0.29586983,0.10871667,0.32382834,0.18334386,0.3349657,0.24828944,0.33617136,0.41930544,0.30811614,0.510575,0.2850666,0.57120246,0.23030382,0.60684717,0.22459686,0.6797056,0.18853265,0.73480994,0.1064028,0.73327035,0.05694364,0.6825278,0.019343764,0.61996084,0.019438483,0.5445294,0.03879632,0.4909873,0.03864198,0.42191112,0.047431998,0.349612,0.050322324,0.20303932,0.083150566,0.119050235,0.1265112,0.061359435,0.09843062,0.3296758,0.09702432,0.37186325,0.10468054,0.39655077,0.14405555,0.423113,0.071007356,0.52291524,0.12663217,0.59541506,0.19006968,0.5947903,0.2191324,0.58854,0.20194468,0.4279151,0.22694463,0.43354,0.27444485,0.4979152],"triangles":[22,20,21,19,20,22,18,19,22,23,18,22,25,24,22,23,22,24,0,22,21,22,30,25,0,30,22,1,30,0,30,1,2,30,2,3,31,30,3,4,31,3,5,31,4,6,31,5,16,17,26,23,17,18,24,17,23,32,31,6,7,32,6,24,26,17,8,32,7,29,30,31,29,31,32,9,29,32,28,25,30,28,30,29,25,26,24,27,25,28,27,26,25,8,9,32,10,29,9,26,15,16,13,26,27,26,14,15,13,14,26,12,13,27,11,27,28,12,27,11,28,29,10,11,28,10],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["goblin_suckle_left_body.png"],"attachments":[{"slot":"body_#00","name":"B_bodyB_shortstack_goblin_slave","type":"mesh","page":"goblin_suckle_left_body.png","world":[18.05194,4.9483,18.067081,-23.16284,-6.2595787,-29.8941,-26.6496,-9.43146],"uv":[0.90484524,0.25099373,0.9051361,0.7915926,0.437315,0.92104053,0.045199394,0.5275278],"triangles":[2,3,0,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["goblin_suckle_left_head.png"],"attachments":[{"slot":"head_#00","name":"B_headB_goblin","type":"mesh","page":"goblin_suckle_left_head.png","world":[33.13171,7.56232,7.657961,-16.8517,-13.10217,-10.08649,-6.072751,26.12964,19.310669,31.72488],"uv":[0.877367,0.4721136,0.42247963,0.90807915,0.051763535,0.7872715,0.17728806,0.14055443,0.63056374,0.040639877],"triangles":[0,1,3,0,3,4,2,3,1],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["goblin_suckle_right.png"],"attachments":[{"slot":"B_headA_#00","name":"B_headA_1_0","type":"mesh","page":"goblin_suckle_right.png","world":[-1.1667311,24.32872,4.985159,24.30711,9.937049,23.07691,15.144259,19.42908,18.43981,14.94823,20.44172,8.84243,20.43545,2.23371,19.58355,-1.72754,24.55862,-6.84405,24.47772,-11.61133,21.74952,-12.8564,11.910861,-12.02606,6.0901203,-15.72439,-5.2561398,-15.71615,-13.333,-10.65177,-22.62486,-6.93392,-22.91721,-2.09605,-19.92171,0.54502,-17.10684,2.10825,-17.21425,11.39469,-14.145191,16.6666,-10.087401,20.74957,-5.289011,23.27616,-14.86254,0.17216,-9.90254,-8.58783,16.67887,-1.95584,13.83888,-3.51584,11.35887,-6.19584,10.87887,-10.55584,-4.80113,-2.43585,4.47888,-2.79584],"uv":[0.18678346,0.038536042,0.23484495,0.038873643,0.27353162,0.058095932,0.314213,0.11509314,0.33995947,0.18510646,0.35559934,0.28050944,0.35555038,0.38377076,0.34889495,0.44566506,0.38776267,0.5256106,0.3871306,0.6000993,0.3658166,0.6195537,0.28895202,0.60657954,0.24347755,0.6643659,0.15483488,0.6642367,0.09173438,0.5851062,0.019141726,0.52701485,0.01685778,0.45142305,0.04026019,0.41015637,0.062251374,0.3857308,0.061411902,0.24063051,0.08538899,0.1582568,0.11709072,0.09446022,0.1545782,0.054982558,0.079784915,0.41598243,0.11853492,0.5528572,0.3262021,0.44923228,0.30401462,0.47360724,0.28463963,0.51548225,0.28088963,0.58360726,0.15838964,0.45673245,0.23088968,0.46235722],"triangles":[12,28,11,28,12,30,14,24,13,12,13,30,13,29,30,13,24,29,11,26,10,26,25,10,10,25,8,9,10,8,28,27,11,11,27,26,7,8,25,14,15,23,23,15,17,17,18,23,14,23,24,28,30,27,24,23,29,15,16,17,27,30,26,25,26,5,30,5,26,3,4,30,2,30,1,1,30,0,30,29,0,29,19,20,20,21,29,21,22,29,29,22,0,7,25,6,2,3,30,5,6,25,19,29,23,23,18,19,4,5,30],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"B_bodyA_#00","name":"B_bodyA_1_0","type":"mesh","page":"goblin_suckle_right.png","world":[4.87301,-1.73767,14.63735,-5.25921,22.7475,-9.46812,22.80313,-14.19389,19.5402,-21.55451,15.330991,-28.25889,11.919731,-31.03049,6.4876113,-34.15517,-6.6730285,-34.07447,-12.693729,-31.35839,-16.890368,-27.1431,-19.75844,-20.43402,-22.90154,-12.30335,-22.89573,-6.25112,-14.27799,-3.89985,-4.85932,-1.58646,-17.21616,-14.65748,-12.056159,-14.81747,-12.296159,-23.53749,16.54384,-14.49747,9.4238405,-14.49748,9.303841,-20.01749,-1.4561595,-11.89748,-1.8561591,-21.0575],"uv":[0.6245941,0.16457523,0.700878,0.2195992,0.7642386,0.28536338,0.7646732,0.3592035,0.7391815,0.47421327,0.70629716,0.5789691,0.6796466,0.6222756,0.6372082,0.67109835,0.5343908,0.66983765,0.48735392,0.62739915,0.4545677,0.56153494,0.4321608,0.45670575,0.4076055,0.32966396,0.40765077,0.23509768,0.4749769,0.19835934,0.5485603,0.16221252,0.4520224,0.3664474,0.49233496,0.36894706,0.49045998,0.50519717,0.71577245,0.36394715,0.6601474,0.36394715,0.65920997,0.45019716,0.5751475,0.32332218,0.57202244,0.46644717],"triangles":[8,23,7,7,21,6,7,23,21,9,18,8,8,18,23,9,10,18,6,21,5,5,21,4,19,21,20,21,19,4,10,11,18,11,16,18,18,17,23,18,16,17,4,19,3,21,23,20,23,17,22,11,12,16,20,23,22,16,14,17,17,15,22,17,14,15,12,13,16,16,13,14,20,1,19,19,2,3,19,1,2,22,0,20,20,0,1,22,15,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["goblin_suckle_right_body.png"],"attachments":[{"slot":"body_#00","name":"B_bodyA_shortstack_goblin","type":"mesh","page":"goblin_suckle_right_body.png","world":[26.27991,-3.03253,14.526552,-33.26141,-15.020808,-33.0329,-25.09595,-2.91699],"uv":[0.90466595,0.08423805,0.7087774,0.9239273,0.21632099,0.91757965,0.048401833,0.081027985],"triangles":[1,2,3,0,1,3],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["goblin_suckle_right_head.png"],"attachments":[{"slot":"head_#00","name":"B_headA_shortstack_goblin","type":"mesh","page":"goblin_suckle_right_head.png","world":[28.3728,-10.09888,7.9037504,-15.04913,-5.9216294,-15.05695,-30.69409,-0.94025,8.275628,38.61761],"uv":[0.95895004,0.8516474,0.63912106,0.93415165,0.42309952,0.93428135,0.036029816,0.6990032,0.6449318,0.03970623],"triangles":[4,2,3,0,1,4,1,2,4],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["shield_icon.png"],"attachments":[{"slot":"Icon","name":"Icon","type":"mesh","page":"shield_icon.png","world":[11.262837,59.5,58.5,4.38682,58.5,-4.68684,3.5602427,-59.5,-2.8651474,-59.5,-58.5,-3.59807,-58.5,3.54284,-21.843351,48.6706,-2.9108527,59.5],"uv":[0.57873255,0.016129032,0.9596774,0.46059018,0.9596774,0.53376484,0.5166148,0.9758065,0.46479714,0.9758065,0.016129032,0.5249844,0.016129032,0.4673965,0.31174725,0.103462905,0.4644286,0.016129032],"triangles":[5,6,7,0,7,8,7,0,1,2,4,1,4,7,1,5,7,4,3,4,2],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["horse_dead.png"],"attachments":[{"slot":"horse_tailA1_#02","name":"horse_tailA1","type":"mesh","page":"horse_dead.png","world":[337.2254,9.78021,309.65924,-6.11841,177.8562,2.82892,128.52448,48.44568,118.82299,113.09473,170.07184,113.25598],"uv":[0.40666425,0.25224233,0.35599113,0.28146768,0.11370623,0.2650205,0.02302277,0.18116605,0.0051892996,0.062325954,0.099396706,0.06202948],"triangles":[3,4,5,1,2,5,3,5,2,0,1,5],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"horse_headB","name":"horse_headB","type":"mesh","page":"horse_dead.png","world":[-263.60248,7.24841,-303.61304,-1.49493,-313.02454,16.64172,-268.27625,26.6875],"uv":[0.09631893,0.039984465,0.022770166,0.056056857,0.0054695606,0.022717357,0.08772746,0.004250884],"triangles":[1,2,3,1,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"horse_body_#00","name":"horse_headA","type":"mesh","page":"horse_dead.png","world":[182.88916,130.2558,198.0614,38.92371,150.23505,-2.88873,-101.06924,-23.19958,-307.78644,-10.45203,-326.82928,36.19238,-214.45383,130.32025,-197.92319,117.91461,-183.28284,93.17712,44.24755,195.64044,111.49865,201.53784],"uv":[0.94097275,0.70908856,0.96886295,0.8769784,0.8809468,0.95383954,0.41899037,0.99117565,0.038995504,0.96774256,0.0039902627,0.88199925,0.21056288,0.70897007,0.24095005,0.73177457,0.26786244,0.7772478,0.6861169,0.58889616,0.8097401,0.5780554],"triangles":[0,9,10,2,0,1,5,8,4,6,8,5,7,8,6,3,8,9,4,8,3,2,3,9,0,2,9],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"horse_headcloth_horn$0","name":"horse_headcloth_1","type":"mesh","page":"horse_dead.png","world":[-169.45364,95.64771,-161.23004,30.08069,-182.86456,-8.38751,-266.57703,-6.85577,-285.13055,52.77972,-233.13483,93.92169],"uv":[0.67196023,0.3811623,0.68707716,0.5016898,0.64730775,0.57240343,0.49342456,0.5695877,0.4593188,0.45996368,0.5548992,0.38433504],"triangles":[3,4,5,1,2,5,1,5,0,3,5,2],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"horse_hornB_horn$0_#05","name":"horse_hornB_1","type":"mesh","page":"horse_dead.png","world":[-223.90292,93.92426,-250.33908,81.34363,-235.81812,146.28955,-188.49934,185.54816],"uv":[0.5718696,0.3530804,0.52327377,0.37620652,0.5499667,0.25682068,0.6369498,0.184654],"triangles":[0,2,3,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"horse_hairB_#02","name":"horse_hairB","type":"mesh","page":"horse_dead.png","world":[-26.211988,154.24188,16.954645,121.40436,35.96991,14.92456,-117.6965,14.90271,-175.7128,37.6134,-208.98505,98.7627,-170.80115,143.30243,-123.61021,169.07654],"uv":[0.33968383,0.31573188,0.41903418,0.37609506,0.45398873,0.5718299,0.1715138,0.5718701,0.064866126,0.5301225,0.0037039518,0.41771567,0.07389492,0.33584118,0.16064304,0.28846228],"triangles":[4,5,6,3,7,0,3,0,1,3,1,2,6,7,3,4,6,3],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"horse_hairA_#02","name":"horse_hairA","type":"mesh","page":"horse_dead.png","world":[-142.14078,113.84003,-233.79382,56.92853,-267.4701,50.56451,-271.8498,71.50812,-257.00443,101.35315,-174.12787,136.56921],"uv":[0.88025594,0.25764692,0.7117761,0.36226368,0.6498711,0.37396216,0.6418202,0.33546293,0.66910946,0.28060067,0.8214561,0.21586537],"triangles":[1,4,5,3,4,1,1,5,0,2,3,1],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"horse_earA_#00","name":"horse_earA","type":"mesh","page":"horse_dead.png","world":[-181.67923,75.67859,-201.35431,63.63055,-211.47858,92.58563,-178.43369,125.63696],"uv":[0.9766926,0.55022323,0.9405252,0.5723703,0.9219144,0.51914406,0.9826587,0.45838785],"triangles":[0,2,3,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"horse_hornA_horn$0_#05","name":"horse_hornA_1","type":"mesh","page":"horse_dead.png","world":[-211.87732,76.24078,-231.05759,70.00305,-234.62338,100.58923,-220.76572,145.66101,-177.86848,178.36542],"uv":[0.45426962,0.27161634,0.4190118,0.28308272,0.41245696,0.22685814,0.43793067,0.14400566,0.51678586,0.0838871],"triangles":[0,3,4,2,3,0,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":-0.6182251,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["horse_fetus.png"],"attachments":[{"slot":"BabyB_fetalstage$0_#00","name":"BabyB_4","type":"mesh","page":"horse_fetus.png","world":[19.68064,1.9049495,-5.7642097,-23.035946,-20.964043,7.2074485,-0.45780537,34.838387],"uv":[0.9095783,0.75342035,0.38511562,0.97854567,0.06167221,0.7099948,0.4826498,0.46132898],"triangles":[2,3,0,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"BabyA_fetalstage$0_#00","name":"BabyA_4","type":"mesh","page":"horse_fetus.png","world":[34.953453,-27.852974,-7.473013,-27.50714,-6.856782,8.0266905,19.834137,17.890244],"uv":[0.94268036,0.4283285,0.058771133,0.42932606,0.06362343,0.112020016,0.6174345,0.021386623],"triangles":[2,3,0,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["horse_fetus_body.png"],"attachments":[{"slot":"BabyB_fetalstage$0_#00","name":"BabyB_4","type":"mesh","page":"horse_fetus_body.png","world":[10.128301,-14.5603,-18.21503,-14.47467,-13.609681,27.57343,13.334589,25.3028],"uv":[0.48637962,0.70406723,0.043515205,0.7027292,0.11547375,0.04572773,0.53647804,0.08120632],"triangles":[0,2,3,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["horse_fetus_head.png"],"attachments":[{"slot":"BabyA_fetalstage$0_#00","name":"BabyA_4","type":"mesh","page":"horse_fetus_head.png","world":[29.669312,-27.55682,-7.1349487,-27.52875,-6.9494004,13.28125,26.65991,11.85565],"uv":[0.8264437,0.8970165,0.05968952,0.89643097,0.06355381,0.046222687,0.7637491,0.07592201],"triangles":[1,2,3,1,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["man_dead.png"],"attachments":[{"slot":"shadow","name":"shadow","type":"mesh","page":"man_dead.png","world":[198.59277,13.69922,216.28076,-12.40997,73.59424,-23.51697,-154.48929,-22.88666,-263.64413,5.73608,-213.55649,17.198,1.2908889,25.47003],"uv":[0.95203435,0.91250163,0.9882803,0.9660041,0.69588983,0.9887642,0.22850555,0.9874727,0.0048276186,0.9288195,0.10746622,0.9053319,0.5477272,0.8883812],"triangles":[3,5,6,4,5,3,2,6,0,2,0,1,3,6,2],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"M_body","name":"M_body","type":"mesh","page":"man_dead.png","world":[131.97235,62.74426,143.69537,10.61243,-4.3132286,-30.02588,-176.95047,-30.03241,-161.50867,1.73242,-154.72305,10.9118,-275.81323,2.3114,-271.9425,19.89899,-236.97012,54.26666,48.429436,73.28558],"uv":[0.8401072,0.691098,0.8641299,0.79792535,0.5608336,0.88120055,0.20706868,0.881214,0.23871171,0.81612206,0.25261664,0.797312,0.004481077,0.8149357,0.012412906,0.7788956,0.0840776,0.70847,0.66891277,0.6694969],"triangles":[5,8,9,6,7,8,6,8,5,2,5,9,1,2,9,1,9,0,2,3,4,2,4,5],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_hairD_hairfront$0_#02","name":"C_hairD_0","type":"mesh","page":"man_dead.png","world":[212.13776,47.83203,204.15515,3.72113,151.43805,-17.55878,114.96814,41.16266,129.42609,84.91687,193.41095,85.17426],"uv":[0.20520031,0.35280323,0.18884265,0.4431945,0.08081567,0.4868008,0.0060822964,0.36646998,0.035709262,0.2768097,0.16682589,0.2762823],"triangles":[4,5,3,3,5,0,1,2,0,2,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_headA_race$0_#00","name":"C_headA_0","type":"mesh","page":"man_dead.png","world":[194.99567,36.22101,195.03058,6.98779,166.64752,-3.19788,126.66534,-2.88184,122.01617,43.49915,139.448,62.22601],"uv":[0.15367961,0.18807161,0.15375125,0.2479757,0.09558916,0.26884806,0.013658643,0.2682004,0.0041315556,0.17315745,0.0398525,0.13478267],"triangles":[4,2,3,5,2,4,5,0,2,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_faceB1","name":"C_faceB2_c","type":"mesh","page":"man_dead.png","world":[157.69098,42.64777,178.09338,1.84137,172.02289,2.04614,158.1922,28.06494],"uv":[0.21248138,0.40236115,0.2542895,0.48598087,0.24185014,0.48556125,0.21350849,0.43224406],"triangles":[0,1,3,1,2,3],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_hairA_hairfront$0_#02","name":"C_hairA_0","type":"mesh","page":"man_dead.png","world":[208.2337,39.39752,207.95477,11.43488,171.72467,-6.65027,127.85425,21.00677,136.24298,53.30719,178.61908,57.45691],"uv":[0.42670846,0.56885755,0.42613685,0.6261579,0.35189486,0.66321766,0.2619965,0.6065434,0.2791865,0.540354,0.3660227,0.5318506],"triangles":[1,5,0,5,3,4,2,5,1,2,3,5],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_armA3_#00","name":"C_armA3","type":"mesh","page":"man_dead.png","world":[207.21704,-22.16937,175.75232,-21.94043,172.44037,5.07965,210.9657,4.99536],"uv":[0.9410184,0.8814945,0.87654144,0.8810253,0.86975473,0.8256563,0.9487,0.825829],"triangles":[0,1,2,3,0,2],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"M_arm","name":"M_arm","type":"mesh","page":"man_dead.png","world":[131.05292,65.02222,131.05865,31.76013,132.17023,15.33459,207.7398,2.70764,188.10193,-17.28827,93.66656,-15.93732,85.12366,4.59387,105.01447,65.19885],"uv":[0.09846902,0.49380696,0.09848082,0.5619669,0.10075867,0.59562576,0.2556144,0.62150073,0.2153728,0.66247594,0.02185762,0.65970755,0.004351735,0.61763537,0.045111656,0.49344492],"triangles":[1,6,7,1,7,0,2,5,6,2,6,1,4,2,3,5,2,4],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["man_portrait_combat.png"],"attachments":[{"slot":"C_hairE_hairback$0_#02","name":"C_hairE_0","type":"region","page":"man_portrait_combat.png","world":[45,-32,-45,-32,-45.000004,57,44.999996,57],"uv":[0.4509804,0.99019605,0.009803922,0.99019605,0.009803922,0.5539216,0.4509804,0.5539216],"triangles":[0,1,2,2,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_armB1","name":"C_armB1","type":"region","page":"man_portrait_combat.png","world":[51.000004,-77,6.0000033,-77,6.0000014,-30,51,-30],"uv":[0.9607843,0.4117647,0.74019605,0.4117647,0.74019605,0.18137255,0.9607843,0.18137255],"triangles":[0,1,2,2,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_bodyA","name":"C_bodyA","type":"region","page":"man_portrait_combat.png","world":[38.000004,-77,-34.999996,-77,-35,-12,38,-12],"uv":[0.8186275,0.99019605,0.46078432,0.99019605,0.46078432,0.67156863,0.8186275,0.67156863],"triangles":[0,1,2,2,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_hairD_hairfront$0_#02","name":"C_hairD_0","type":"region","page":"man_portrait_combat.png","world":[48,-27,26.000002,-27,25.999998,39,48,39],"uv":[0.4852941,0.5441176,0.37745097,0.5441176,0.37745097,0.22058824,0.4852941,0.22058824],"triangles":[0,1,2,2,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_cloth_bodyA1","name":"C_cloth_bodyA1","type":"region","page":"man_portrait_combat.png","world":[22.000002,-52,-27.999998,-52,-27.999998,-27,22.000002,-27],"uv":[0.9852941,0.17156863,0.74019605,0.17156863,0.74019605,0.04901961,0.9852941,0.04901961],"triangles":[0,1,2,2,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_armA2","name":"C_armA2","type":"region","page":"man_portrait_combat.png","world":[-10.999996,-77,-58.999996,-77,-59,-26,-10.999999,-26],"uv":[0.73039216,0.37745097,0.49509802,0.37745097,0.49509802,0.12745099,0.73039216,0.12745099],"triangles":[0,1,2,2,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_headA_race$0_#00","name":"C_headA_0","type":"region","page":"man_portrait_combat.png","world":[45,-35,-27.999998,-35,-28.000002,32,45,32],"uv":[0.36764705,0.5441176,0.009803922,0.5441176,0.009803922,0.21568628,0.36764705,0.21568628],"triangles":[0,1,2,2,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_faceB1","name":"C_faceB1_a","type":"region","page":"man_portrait_combat.png","world":[43,-25,3.0000012,-25,2.9999995,13,43,13],"uv":[0.4117647,0.20588236,0.21568628,0.20588236,0.21568628,0.019607844,0.4117647,0.019607844],"triangles":[0,1,2,2,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_hairC_hairfront$0_#02","name":"C_hairC_0","type":"region","page":"man_portrait_combat.png","world":[38,-4,-10,-4,-10.000002,45,37.999996,45],"uv":[0.9705882,0.6617647,0.7352941,0.6617647,0.7352941,0.42156863,0.9705882,0.42156863],"triangles":[0,1,2,2,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_hairB_hairfront$0_#02","name":"C_hairB_0","type":"region","page":"man_portrait_combat.png","world":[57,-10,10,-10,9.999998,46,56.999996,46],"uv":[0.7254902,0.6617647,0.49509802,0.6617647,0.49509802,0.3872549,0.7254902,0.3872549],"triangles":[0,1,2,2,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_hairA_hairfront$0_#02","name":"C_hairA_0","type":"region","page":"man_portrait_combat.png","world":[4.000001,-24,-28.999998,-24,-29.000002,32,3.9999986,32],"uv":[0.99019605,0.99019605,0.82843137,0.99019605,0.82843137,0.71568626,0.99019605,0.71568626],"triangles":[0,1,2,2,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"C_faceA1","name":"C_faceA1_a","type":"region","page":"man_portrait_combat.png","world":[43,-25,3.0000012,-25,2.9999995,13,43,13],"uv":[0.20588236,0.20588236,0.009803922,0.20588236,0.009803922,0.019607844,0.20588236,0.019607844],"triangles":[0,1,2,2,3,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"bones":[{"name":"root","parent":null,"x":0,"y":0,"rotation":0,"scaleX":1,"scaleY":1,"shearX":0,"shearY":0,"length":0}],"pages":["oni_baby.png"],"attachments":[{"slot":"BabyB_#00","name":"BabyB","type":"mesh","page":"oni_baby.png","world":[-6.288921,17.83787,17.75637,1.55669,5.958331,-18.64447,-19.83856,-9.02339,-27.85903,16.15398],"uv":[0.9678998,0.38720512,0.94317055,0.94421387,0.6646733,0.941967,0.610312,0.4198265,0.82214546,0.04416275],"triangles":[3,4,0,2,3,0,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]},{"slot":"BabyA_#00","name":"BabyA","type":"mesh","page":"oni_baby.png","world":[12.786739,26.42896,36.80927,12.04053,27.54828,-10.23413,-0.6212792,-19.10791,-8.101201,13.24072],"uv":[0.57478285,0.35308456,0.56943226,0.8915138,0.28465986,0.951458,0.025496006,0.5676365,0.3144822,0.13202095],"triangles":[4,2,3,4,0,2,1,2,0],"weights":[[[0,1]],[[0,1]],[[0,1]],[[0,1]],[[0,1]]],"color":[1,1,1,1]}]}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user