← 패치노트 목록으로
너의 공격력 마력자체 업데이트
[너공마 Tools] 캐릭터 코디엔진 초기 버전 추가
현재 캐릭터 코디를 불러와 메이플스토리 동적 맵에서 직접 움직이며 확인하는 코디엔진을 추가했습니다.
작업 중
적용 서비스 바로가기
클릭하면 이 업데이트가 적용된 관련 페이지로 직접 이동합니다.
상태 변경 기록
변경 시점을 클릭하면 그때 게시된 내용을 볼 수 있습니다. 스냅샷 기능 도입(2026년 8월 25일) 이전 기록은 내용 복원이 불가합니다.
너공마 Tools의 캐릭터 카테고리에 코디엔진 초기 버전을 추가했습니다.
- 현재 코디 연동: 닉네임을 검색하면 코디 둘러보기와 같은 로컬 아바타 엔진으로 현재 착용 코디를 조립합니다.
- 넥슨 기본 자세 판정: 공식 캐릭터 이미지의 무기 모션, 장착 무기 분류, 이미지 픽셀 비교 순서로 코디 둘러보기와 같은 기본 자세를 적용합니다.
- 동적 맵 미리보기: 헤네시스 배경·오브젝트·발판을 실시간 동적 맵으로 표시합니다.
- 캐릭터 직접 이동: 방향키 또는 A/D로 걷고 Alt로 점프하며 사다리·로프를 오르내릴 수 있습니다. 맵을 클릭하면 선택한 발판으로 이동합니다.
- 검색 전 안내: 첫 진입 시 기본 피부 윤곽과 ‘검색하세요’ 문구를 중앙에 표시합니다.
- 인게임 1배율: 캐릭터를 원본 1배율로 표시하고 선택한 맵과 맵 경계 위치에 관계없이 화면 중앙에서 추적합니다.
- 확대된 기본 화면: 맵과 캐릭터의 비율을 유지한 채 기본 카메라를 2배 확대해 코디를 더 또렷하게 확인할 수 있습니다. 캐릭터 원본 배율 및 HUD·미니맵 UI 크기는 유지됩니다.
- 미니맵 맵 선택: 좌측 상단에 사냥 시뮬레이터 방식의 실제 미니맵과 현재 카메라 영역을 표시하며, 미니맵을 눌러 다른 사냥터로 이동할 수 있습니다. 코디 화면에는 필요 포스 카드를 표시하지 않습니다.
- 코디 컨트롤 툴바: 우측 하단에서 7일 코디 공유, 캐릭터 배율, 위치 초기화, 동작·표정 재생속도를 코디 둘러보기와 같은 버튼으로 조절합니다.
- 명찰·말풍선: 현재 프리셋에 장착한 명찰과 말풍선 반지를 자동 인식합니다. 명찰은 길드 마크 생성기처럼 발밑 기준점·1배 크기·카메라 역배율로 표시하고, 말풍선은 코디 둘러보기 배치를 사용합니다. 각각 켜거나 끌 수 있으며 공유 링크에도 표시 상태를 보존합니다.
- 기본 명찰·말풍선: 명찰 또는 말풍선 반지를 장착하지 않은 캐릭터도 각 표시 버튼을 사용할 수 있습니다. 기본 명찰은 길드 로고 생성기의 기본 길드명찰 배경·테두리와 기존 캐릭터 명찰의 돋움 계열 폰트를 사용하고, 기본 말풍선은 갈색강아지 펫이 사용하는 기본 펫 말풍선 배경에 검정 글자를 사용합니다. 기본 표시도 코디 공유 화면에 그대로 반영됩니다.
- 명찰·말풍선 반지 미리보기: 코디 편집창에서 반지 외형을 크게 확인할 수 있도록 주 미리보기를 2.2배, 연관 반지 미리보기를 1.5배로 확대했습니다. 특수 오버레이가 잘리지 않도록 주 미리보기에는 최소 18rem 높이와 내부 스크롤, 연관 미리보기에는 최소 7rem 높이와 가로 스크롤을 적용했습니다. 명찰에는 현재 검색한 캐릭터 이름을 실제 코디엔진과 같은 11px 글꼴·가로 가운데 정렬로 표시하며, 강제 최소 폭 없이 닉네임의 측정 폭에 맞춰 명찰 박스가 자동으로 늘어납니다. 말풍선 예시 문구는
메이플스토리로 통일해 가운데 정렬합니다. - 프리셋 명령어: 채팅창에
/프리셋을 입력하면 현재 캐릭터와 외형 모드의 프리셋 1·2·3을 실제 아바타 미리보기로 비교할 수 있습니다. 방향키와 Enter 또는 카드 선택으로 프리셋을 불러오며, 코디·명찰·말풍선 상태와 장착 코디 편집창도 함께 전환됩니다. - 맵 목록 지연 로딩: 미니맵을 눌러 여는 맵 선택창은 처음에 30개만 요청합니다. 목록 하단 240px에 접근하면 다음 30개를 자동으로 불러오며, 필터·검색 변경 시 이전 요청을 취소하고 맵 ID 기준으로 중복을 제거합니다. 추가 로딩 실패 시 현재 목록은 유지한 채 다시 시도할 수 있습니다.
- 명찰·말풍선 세트 교체: 교체 모달 3열의 관련 반지 카드에 기본 활성화된
세트로 같이 적용버튼을 추가했습니다. 활성 상태에서 교체하면 주 명찰·말풍선과 연관 반대를 동시에 적용하며, 현재 프리셋의 대응 반지 슬롯을 우선 교체하고 상대 슬롯이 없으면 충돌하지 않는 세트 슬롯으로 추가합니다. 버튼을 끄면 기존처럼 주 반지만 교체합니다. - 화면 내 코디 변경 히스토리: 코디 모드에서 사용자가 아이템을 교체·세트 교체·해제·복원한 순서만 현재 브라우저 세션에 기록합니다. 프리셋 모달 전환과 넥슨 API 과거 스냅샷은 이 기록에 포함하지 않습니다. 명찰·말풍선 ON/OFF 옆의 히스토리 버튼에서 각 변경 시점의 캐릭터 미리보기 카드와 변경 내용을 순서대로 확인할 수 있습니다.
- 과거 코디 기준 편집:
/히스토리또는/날짜에서 선택한 과거 코디를 열어 둔 상태로 코디 모드에 들어가면, 선택 날짜·외형 모드·프리셋을 그대로 코디 편집창에 전달합니다. 코디 모드 진입 시 화면에 열린 완성 스펙을 한 번 고정하고 동일 프리셋은 분해·재합성하지 않고 그대로 사용합니다. 다른 프리셋은 고정된 당시 피부·헤어·성형 위에 해당 날짜 아이템 레이어만 합성하며, 편집 중 부모 스펙이 바뀌어도 초기 기준점은 움직이지 않습니다. 날짜 없는 최신 코디나 최신 기본 명찰이 섞이지 않습니다. - 과거 프리셋별 정확한 미리보기:
/히스토리날짜 카드의 당시 활성 프리셋과 비활성 프리셋을 모두 해당 날짜의 장비·헤어·성형 스펙으로 코디엔진 캔버스에서 직접 렌더링합니다. 모든 카드는 모바일 176px·데스크톱 192px 정사각 표시 영역을 사용하고, 고정 배율 없이 전신 바운딩 박스를 자동 맞춤합니다. 넥슨 공식 캐릭터 이미지는 카드에 표시하지 않고 실제 코디 적용 시 참고 정보로만 유지합니다. 화면 근처 날짜만 지연 요청해 전체 기록을 한꺼번에 렌더링하지 않습니다. - 날짜별 전체 프리셋: 코디 변동이 감지된 각 히스토리 날짜에서 변동 여부와 관계없이 당시 프리셋 1·2·3을 모두 표시합니다. 실제로 그날 변경된 프리셋에는
이날 변동배지를 표시하고, 세 카드 모두 해당 날짜의 코디엔진 스펙으로 미리보기·선택할 수 있습니다. - 엎드리기 무기 자세: 테니 인형극처럼 클라이언트 원본에 일반
prone없이proneStab만 있는 캐시 무기는 엎드리기 입력 시 캐릭터와 무기를 함께 원본 엎드려 찌르기 자세로 렌더링합니다. 직접prone아트가 있는 돌의 정령 솜사탕 같은 아이템은 기존 원본 자세를 우선하며, 공격·등반 등 다른 액션에는 폴백을 확대하지 않습니다. - 엎드리기 얼굴장식 레이어: 냄새가 났어!!처럼 Character 파츠 없이 ItemEff만 있는 얼굴장식도 소유 슬롯
Af를 기준으로 원본accessoryFace레이어에 배치합니다. 얼굴 위에는 보이면서armOverHair팔 뒤에 그려지며, 초코가득 얼굴장식·슈피겔만의 화려한 콧수염 등 같은 구조와 Character+ItemEff 얼굴장식에도 공통 적용됩니다. 얼굴장식이 아닌 효과의 숫자 z 규칙은 유지합니다. - 마지막 맵 자동 복원: 사용자가 미니맵 선택창에서 마지막으로 고른 9자리 맵 ID를 현재 브라우저에 저장합니다. 코디엔진을 나중에 다시 열면 저장소 확인 후 해당 맵을 첫 요청으로 바로 불러오며, 헤네시스를 먼저 중복 로드하지 않습니다. 손상되거나 삭제된 맵 ID는 제거하고 기본 헤네시스로 자동 복귀합니다.
- 동적 맵 말풍선 위치: 1배율 동적 맵 캐릭터에 맞춰 말풍선 기준점을 캐릭터 박스 18%에서 30%로 내려, 머리와 말풍선 사이의 과도한 빈 공간을 줄였습니다.
- 실제 머리 추적 말풍선: 고정 비율 좌표를 제거하고 아바타 엔진이 프레임마다 계산한 실제 캐릭터 상단 바운드에 말풍선을 연결했습니다. 점프·등반·동작 프레임에서 머리 높이가 변하면 말풍선도 함께 이동하며, 하단은 머리 위 4px에 고정됩니다.
- 말풍선 픽셀 줄바꿈: 일반 대화 말풍선은 돋움 폰트의 실제 픽셀 폭을 측정해 최소 60px·최대 160px 표시 폭 안에서 크기를 조절합니다. 한글은 글자 단위로, 영문·숫자는 공백 우선으로 줄바꿈하며 최대 폭에서는 9-slice 배경이 세로로 확장됩니다.
- Enter 대화 말풍선: 코디엔진에서 Enter를 누르면 좌측 하단 기존 5탭 채팅창의 입력줄에 바로 포커스합니다. 전송한 최대 80자 문구는 명찰과 같은 12px 돋움 폰트로 캐릭터 머리 위에 3초 동안 표시됩니다. 장착 말풍선 반지가 없으면 기본 말풍선을 사용하며 대화는 서버에 저장하지 않습니다.
- 일반 채팅 표기: 말풍선과 채팅 메시지는 현재 검색한 캐릭터의 실제 닉네임을 앞에 붙인
닉네임 : 채팅내용형식으로 표시합니다. - 일반 채팅 히스토리: 채팅창 탭을 제거하고, 현재 브라우저·현재 캐릭터의 일반 채팅 최대 50개를
[HH:MM:SS] 닉네임 : 채팅내용형식으로 표시합니다. 히스토리는 서버에 저장하지 않으며 캐릭터를 다시 검색하면 초기화됩니다. - 자모 채팅 정렬: 한 글자 초성·자모 채팅은 유니코드 자모 범위를 판별해 기록 행의 최소 줄 높이 안에서 세로 가운데로 정렬합니다.
- 단독 자모 채팅 보존: 채팅 정규화를 NFKC에서 NFC로 변경해
ㅇ같은 호환 자모가 결합용 초성 문자로 변환되지 않도록 했습니다. 말풍선과 채팅 기록에 입력한 자모가 동일하게 표시됩니다. - 선명한 캐릭터 픽셀: 코디엔진 아바타의 주 캔버스와 반전 캔버스에 nearest-neighbor 렌더링을 명시했습니다. 이미지 보간을 비활성화하고 정수 좌표 오버레이와 CSS pixelated 렌더링을 함께 사용해 장비·이펙트·말풍선과 이동 중에도 픽셀이 뭉개지지 않게 합니다.
- 모자 외곽 픽셀 번짐 수정: 코디엔진 실제 캐릭터에 중복 적용되던 캔버스 보라색 그림자와 외부 검정 그림자를 제거했습니다. 1배율 합성 원점도 정수 픽셀에 고정해 갊죤 캐릭터의 모자 옆처럼 밝은 외곽 픽셀이 늘어나 보이는 현상을 방지합니다.
- 커스텀 스킨 프리즘 손 보정: 스킨 프리즘이 채도 낮은 픽셀을 모두 제외해 핌펑의 손 컬러라인 검은 점이 남던 문제를 수정했습니다. 밝은 무채색 피부 베이스는 보호하고 어두운 무채색 손·외곽 컬러라인만 프리즘 밝기 보정을 받도록 분리했습니다.
- 모든 자세 스킨 프리즘 상속: 대기·걷기·점프·사다리·로프 자세에서 새로 나타나는 body·arm·hand·lHand·rHand가 fallback 레코드 라벨을 사용해도 현재 스킨의 body/head 프리즘을 슬롯 기준으로 자동 상속합니다.
- 진주 구름 픽셀 마스크 복원: 2배 카메라에서 4~8px 검정 외곽선으로 보이던 mailArm 어두운 픽셀을 반영해 스킨 경계 탐색을 최대 4px로 확장했습니다. walk1 프레임별 14·14·14·16개를 가장 가까운 프리즘 스킨 색으로 복원하며 밝은 의상 본체는 유지합니다.
- 캔버스 집중 화면: 별도 캐릭터 정보 카드와 전역 넥슨 Open API 리소스 안내 박스를 코디엔진에서 숨겨 맵과 코디 조작에 집중할 수 있게 정리했습니다.
- 중앙 무작위 리스폰: 기본 헤네시스 맵을 유지하면서, 초기 진입과 맵 전환 시 맵 양끝을 피해 중앙 영역의 유효 발판 중 하나에 무작위로 캐릭터를 배치합니다.
- 맵 이동 UI 정리: 별도 사냥터 이동 버튼은 숨기고 좌측 상단 미니맵 클릭으로만 맵 선택창을 엽니다.
- 설정 드로워: 사냥 빌드 시뮬레이터와 같은 좌측 설정 드로워를 추가해 맵 레이어, 몬스터 투명도, 화면 배율, 텔레포트 거리를 조절할 수 있습니다. 코디엔진과 무관한 설치 스킬 설정은 제외했습니다.
- 전체 동적 맵 선택: 맵 선택 첫 화면은 마을을 우선 표시하고, 검색어를 입력하면 마을·사냥터·기타를 포함한 모든 동적 메이플맵을 이름·지역·맵 ID·초성으로 검색합니다. 대규모 목록은 120개씩 추가 로드합니다.
- 소형 맵 적응형 카메라: 맵의 세로 높이와 현재 브라우저 표시 범위를 비교해 작은 맵에서는 캐릭터를 화면 중앙보다 아래에 배치합니다. 카메라 기준 좌표도 맵 하단 끝선이 브라우저 아래 8px 밖에 머물도록 제한해 아래쪽 맵 끊김이 보이지 않게 합니다.
- 고정 다크 화면: 코디엔진에서는 라이트·다크 전환 버튼을 숨기고 전역 테마 변화에 반응하지 않는 전용 다크 테마를 사용합니다. 사이트의 저장된 테마 값은 변경하지 않아 다른 페이지에는 기존 설정이 유지됩니다.
- 그라디언트와 밝은 미니맵: 상단 검정 그라디언트는 맵 전체에 유지하되 맵 렌더 후·미니맵 렌더 전에 그려, 맵은 기존 분위기를 유지하고 좌측 상단 미니맵은 어두워지지 않게 합니다.
- 깔끔한 기본 맵: 코디엔진에서는 NPC와 몬스터 레이어를 기본 OFF로 시작해 캐릭터 코디가 잘 보이게 합니다. 필요할 때 설정 드로워에서 각각 다시 켤 수 있습니다.
- 메이플 인게임 하단 HUD: UI.wz 시각 명세를 참고해 440×160px 5탭 채팅창을 구현했습니다. 레벨·닉네임은 별도 배경 없이 맵 위에 표시하고, HP·MP를 묶은 독립 게이지 박스와 10% 틱이 있는 별도 EXP 박스로 실제 캐릭터 데이터를 표시합니다.
- 입체 HP·MP 게이지: 참고 이미지처럼 핑크·시안 외곽 프레임, 어두운 슬롯, 다단 충전색, 상단 글로시 라인, 반사광, 하단 음영을 겹쳐 단일 그라디언트보다 실제 인게임에 가까운 게이지 질감을 적용했습니다.
- 확장·은은한 게이지: 상태바를 60px으로 높이고 HP·MP 게이지를 21px로 확대했습니다. 색상 전환은 강한 다단 대비 대신 부드러운 3단 그라디언트와 낮춘 반사광으로 정리했습니다.
- 단일 게이지 프레임: HP·MP 바깥 그룹 패널의 어두운 배경·여백·그림자를 제거했습니다. 각 게이지에는 HP 핑크 또는 MP 시안 색상 프레임 하나만 남겨 이중 테두리처럼 보이지 않게 정리했습니다.
- 내부 검정선 제거: 색상 프레임 안쪽에 있던 2px inset 어두운 슬롯과 내부 반투명 테두리를 제거했습니다. 이제 HP·MP는 색상 프레임 하나와 충전 영역만 사용합니다.
- 게이지 외곽색 제거: HP·MP 충전 그라디언트를 감싸던 핑크·시안 프레임도 제거해, 둥근 충전 영역과 상단 광택만 보이도록 단순화했습니다.
- HP·MP 툴팁 패널: HP·MP 두 줄을 스킬 툴팁과 같은 중성 다크 그레이의 둥근 패널로 묶었습니다. 반투명 흰색 테두리, 상단 하이라이트, 내부 광택·그림자를 적용하되 게이지 자체에는 외곽색 프레임을 추가하지 않았습니다.
- 명찰 폰트 HUD: HP·MP 및 EXP 수치에 명찰 렌더러와 동일한
"돋움", Dotum, "Malgun Gothic", sans-serif폰트 스택을 적용했습니다. - 미니맵 회색 패널·EXP 간격: HP·MP 패널은 미니맵 카드와 동일한 진한 중성 회색
rgba(39,39,42,.9) → rgba(24,24,27,.88) → rgba(9,9,11,.9)팔레트를 사용합니다. 패널을 5px 위로 올려 아래 EXP 바와 간격을 만들었습니다. - 확장 HUD: HP·MP를 각각 26px로 키우고 상태바를 72px으로 확장했습니다. EXP 바는 16px로 높이고 텍스트도 키웠으며 HUD 확대에 맞춰 채팅·검색·코디 툴바 위치를 위로 조정했습니다.
- EXP 색상 보정: EXP 게이지는 더 밝고 채도 높은 연두 계열로 조정해 좌측의
#86B900에서 우측의#C9ED00으로 수평으로 이어집니다. - EXP 입체감: EXP 바 상단에 반투명 흰색 1px 하이라이트를 추가해 게이지 경계와 입체감을 은은하게 보강했습니다.
- 맵 표시 설정: 코디엔진의 설정 드로워 탭과 설명을 맵 표시 설정으로 변경해 레이어·투명도·화면 설정을 다루는 용도를 명확히 했습니다.
- 레벨 표시 정리: 레벨 텍스트를 흰색으로 표시하고, 레벨·닉네임 줄은 화면 좌측에서 시작해 오른쪽으로 사라지는 검정 가로 그라디언트 위에 배치해 맵 배경과의 대비를 높였습니다.
- 채팅창 위치: 하단 HUD와의 간격을 넓히기 위해 채팅창을 기존 위치보다 32px 위로 이동했습니다.
- 이펙트 전체 표시: 캐릭터 주변으로 넓게 퍼지는 무기·세트 이펙트가 본체 캔버스 경계에서 잘리지 않도록 확장 렌더 영역을 적용했습니다.
- 발판 정렬: 확대된 캐릭터의 발끝 기준점을 동적 맵의 발판 좌표에 맞춰 공중에 뜨거나 바닥으로 파고들지 않게 배치했습니다.
현재 개발 서버에서 작업 중이며 정식 배포 후 적용 완료로 전환됩니다.

