제갈량 부채 → 깃털부채(트레이드 마크) — 세 자세 부채만 교체(캐릭터 생성 0) · 크기 표 「머리 수동」 note 지원(#1108 7차 · PD 2026-11-10)
- PD 「제갈량의 부채는 트레이드 마크라고 할 수 있는 깃털부채로 변경」 · 옛 그림 = 대기 깃털 한 가닥 막대 · 준비 종이 접이부채 · 돌진 검은 얼룩 둥근 부채 - 깃털부채 소품 1개(화풍 C t2i)를 옮겨 붙임: 대기·돌진 = 옛 자루 선 그대로 주먹 앞 · 준비 = 입을 가린 자세 + 주먹이 손잡이 위 · QA r1 B3 → S4 PASS - Tools/unit_art_size.py: note 「머리 수동 <머리÷눈>·<정수리÷눈>」 = 소품이 얼굴에 붙어 자동 머리 폭이 소품까지 재는 그림용(비율 = 묶음 배율이 바뀌어도 맞음) · 제갈량 3.345·1.883(바꾸기 전 실측) · size 983.3 = 962.8 × 묶음 배율비 1.021(게임 크기 같음) - 확인(고친 부분만): 아트 재임포트 error 0 · UnitArt_SizeTable 1/1 · 영웅 목록 캡처 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
499e7184ec
commit
d48b33728a
|
|
@ -124,5 +124,5 @@ zhaoyun,1,100.4,655.1,199,393.0,192.0,926,590.9,1,,
|
||||||
zhoucang,0,173.3,538.3,453,598.0,276.0,856,1091.8,,1.092,
|
zhoucang,0,173.3,538.3,453,598.0,276.0,856,1091.8,,1.092,
|
||||||
zhoutai,0,162.2,609.1,429,599.5,273.0,885,993.6,,1.026,
|
zhoutai,0,162.2,609.1,429,599.5,273.0,885,993.6,,1.026,
|
||||||
zhugejin,0,160.2,562.8,372,501.0,270.0,870,954.7,,1.08,
|
zhugejin,0,160.2,562.8,372,501.0,270.0,870,954.7,,1.08,
|
||||||
zhugeliang,0,140.2,529.3,336,469.0,264.0,886,962.8,,1.18,
|
zhugeliang,0,143.2,541.6,342,479.0,269.6,904,983.3,,1.18,머리 수동 3.345·1.883 = 부채 바꾸기 전 실측(머리 469·정수리 264 ÷ 눈 140.2) · 깃털부채가 얼굴 옆에 붙어 자동 머리 폭이 부채까지 잼(PD 2026-11-10 「제갈량 부채 = 깃털부채」)
|
||||||
zhurong,0,118.6,458.1,261,524.0,258.0,773,758.1,,1.02,눈 수동 실측 2026-11-10(눈 간격·눈 높이): 눈 덩어리 중심 x 524.4 · 642.7(짙은 피부 = 피부 판정 밖)
|
zhurong,0,118.6,458.1,261,524.0,258.0,773,758.1,,1.02,눈 수동 실측 2026-11-10(눈 간격·눈 높이): 눈 덩어리 중심 x 524.4 · 642.7(짙은 피부 = 피부 판정 밖)
|
||||||
|
|
|
||||||
|
Binary file not shown.
|
Before Width: | Height: | Size: 420 KiB After Width: | Height: | Size: 448 KiB |
|
|
@ -50,7 +50,7 @@ TextureImporter:
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 0
|
spriteMeshType: 0
|
||||||
alignment: 9
|
alignment: 9
|
||||||
spritePivot: {x: 0.5, y: 0.02092}
|
spritePivot: {x: 0.5, y: 0.02047}
|
||||||
spritePixelsToUnits: 100
|
spritePixelsToUnits: 100
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 384 KiB After Width: | Height: | Size: 405 KiB |
|
|
@ -50,7 +50,7 @@ TextureImporter:
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 0
|
spriteMeshType: 0
|
||||||
alignment: 9
|
alignment: 9
|
||||||
spritePivot: {x: 0.5, y: 0.02092}
|
spritePivot: {x: 0.5, y: 0.02047}
|
||||||
spritePixelsToUnits: 100
|
spritePixelsToUnits: 100
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 395 KiB After Width: | Height: | Size: 446 KiB |
|
|
@ -50,7 +50,7 @@ TextureImporter:
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 0
|
spriteMeshType: 0
|
||||||
alignment: 9
|
alignment: 9
|
||||||
spritePivot: {x: 0.5, y: 0.02092}
|
spritePivot: {x: 0.5, y: 0.02047}
|
||||||
spritePixelsToUnits: 100
|
spritePixelsToUnits: 100
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,15 @@
|
||||||
"fps": 1,
|
"fps": 1,
|
||||||
"ppu": 100,
|
"ppu": 100,
|
||||||
"frame": [
|
"frame": [
|
||||||
1015,
|
989,
|
||||||
956
|
977
|
||||||
],
|
],
|
||||||
"pivot": [
|
"pivot": [
|
||||||
0.5,
|
0.5,
|
||||||
0.02092
|
0.02047
|
||||||
],
|
],
|
||||||
"charHeightPx": 895,
|
"charHeightPx": 916,
|
||||||
"bodyHeightPx": 886,
|
"bodyHeightPx": 904,
|
||||||
"clips": [
|
"clips": [
|
||||||
{
|
{
|
||||||
"name": "front_idle",
|
"name": "front_idle",
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,8 @@
|
||||||
표 = Assets/Resources/Units/art_size.csv(utf-8-sig · SOT) · mounted = 게임 표(영웅·무장·병사)의 병종이 cavalry 면 1(art_types ·
|
표 = Assets/Resources/Units/art_size.csv(utf-8-sig · SOT) · mounted = 게임 표(영웅·무장·병사)의 병종이 cavalry 면 1(art_types ·
|
||||||
표에 없는 아트만 기존 값 · 그것도 없으면 이름에 cavalry 면 1).
|
표에 없는 아트만 기존 값 · 그것도 없으면 이름에 cavalry 면 1).
|
||||||
눈을 못 찾으면 size_px 를 비워 둔다(게임은 bodyHeightPx 로 대체) · 실행 결과를 --sheet 시트로 눈 위치를 확인할 것.
|
눈을 못 찾으면 size_px 를 비워 둔다(게임은 bodyHeightPx 로 대체) · 실행 결과를 --sheet 시트로 눈 위치를 확인할 것.
|
||||||
|
note 가 「머리 수동 <머리÷눈>·<정수리÷눈>」 으로 시작하면 head_px·crown_px = 그 비율 × 자동 eye_px(소품이 머리 옆에 붙어
|
||||||
|
자동 머리 폭이 소품까지 재는 그림 · 예 제갈량 깃털부채 2026-11-10 · 묶음 배율이 바뀌어도 맞도록 비율로 적음).
|
||||||
|
|
||||||
사용: python -I -B -X utf8 Tools/unit_art_size.py <프로젝트 루트> [--sheet out.png]
|
사용: python -I -B -X utf8 Tools/unit_art_size.py <프로젝트 루트> [--sheet out.png]
|
||||||
"""
|
"""
|
||||||
|
|
@ -23,6 +25,7 @@ import csv
|
||||||
import glob
|
import glob
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
@ -196,6 +199,9 @@ def main():
|
||||||
eye = float(prev['eye_px']) # 자동으로 못 찾는 그림(안대·눈썹과 붙은 눈·짙은 피부) = 표에 적은 수동 실측 값 유지
|
eye = float(prev['eye_px']) # 자동으로 못 찾는 그림(안대·눈썹과 붙은 눈·짙은 피부) = 표에 적은 수동 실측 값 유지
|
||||||
lock = prev.get('lock', '')
|
lock = prev.get('lock', '')
|
||||||
hw, cr = head_width(img, eyes)
|
hw, cr = head_width(img, eyes)
|
||||||
|
mh = re.match(r'머리 수동 ([\d.]+)·([\d.]+)', prev.get('note', ''))
|
||||||
|
if mh and eye > 0:
|
||||||
|
hw, cr = round(float(mh.group(1)) * eye, 1), round(float(mh.group(2)) * eye, 1)
|
||||||
# 눈 높이(발 위 px) = 영웅 목록 카드가 눈 줄을 맞추는 기준(PD 2026-11-10 「전위·태사자처럼 너무 위쪽에 보이는 영웅은 내려」)
|
# 눈 높이(발 위 px) = 영웅 목록 카드가 눈 줄을 맞추는 기준(PD 2026-11-10 「전위·태사자처럼 너무 위쪽에 보이는 영웅은 내려」)
|
||||||
foot_y = img.height - meta['pivot'][1] * img.height
|
foot_y = img.height - meta['pivot'][1] * img.height
|
||||||
eye_up = round(foot_y - (eyes[0][2] + eyes[1][2]) / 2, 1) if eyes else 0
|
eye_up = round(foot_y - (eyes[0][2] + eyes[1][2]) / 2, 1) if eyes else 0
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue