제갈량 부채 → 깃털부채(트레이드 마크) — 세 자세 부채만 교체(캐릭터 생성 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,
|
||||
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,
|
||||
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(짙은 피부 = 피부 판정 밖)
|
||||
|
|
|
|||
|
Binary file not shown.
|
Before Width: | Height: | Size: 420 KiB After Width: | Height: | Size: 448 KiB |
|
|
@ -50,7 +50,7 @@ TextureImporter:
|
|||
spriteExtrude: 1
|
||||
spriteMeshType: 0
|
||||
alignment: 9
|
||||
spritePivot: {x: 0.5, y: 0.02092}
|
||||
spritePivot: {x: 0.5, y: 0.02047}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
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
|
||||
spriteMeshType: 0
|
||||
alignment: 9
|
||||
spritePivot: {x: 0.5, y: 0.02092}
|
||||
spritePivot: {x: 0.5, y: 0.02047}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
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
|
||||
spriteMeshType: 0
|
||||
alignment: 9
|
||||
spritePivot: {x: 0.5, y: 0.02092}
|
||||
spritePivot: {x: 0.5, y: 0.02047}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
|
|
|
|||
|
|
@ -2,15 +2,15 @@
|
|||
"fps": 1,
|
||||
"ppu": 100,
|
||||
"frame": [
|
||||
1015,
|
||||
956
|
||||
989,
|
||||
977
|
||||
],
|
||||
"pivot": [
|
||||
0.5,
|
||||
0.02092
|
||||
0.02047
|
||||
],
|
||||
"charHeightPx": 895,
|
||||
"bodyHeightPx": 886,
|
||||
"charHeightPx": 916,
|
||||
"bodyHeightPx": 904,
|
||||
"clips": [
|
||||
{
|
||||
"name": "front_idle",
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@
|
|||
표 = Assets/Resources/Units/art_size.csv(utf-8-sig · SOT) · mounted = 게임 표(영웅·무장·병사)의 병종이 cavalry 면 1(art_types ·
|
||||
표에 없는 아트만 기존 값 · 그것도 없으면 이름에 cavalry 면 1).
|
||||
눈을 못 찾으면 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]
|
||||
"""
|
||||
|
|
@ -23,6 +25,7 @@ import csv
|
|||
import glob
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
|
||||
import numpy as np
|
||||
|
|
@ -196,6 +199,9 @@ def main():
|
|||
eye = float(prev['eye_px']) # 자동으로 못 찾는 그림(안대·눈썹과 붙은 눈·짙은 피부) = 표에 적은 수동 실측 값 유지
|
||||
lock = prev.get('lock', '')
|
||||
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 「전위·태사자처럼 너무 위쪽에 보이는 영웅은 내려」)
|
||||
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
|
||||
|
|
|
|||
Loading…
Reference in New Issue