D2R Sprite ED2R v1.2.1
[ 디아블로 2 레저렉션 Sprite 에디터 - 버그 수정 ]


"툴바 버그 수정패치 했습니다."
- 툴바 ON/OFF 기능 제거 및 제거된 툴바 복구 -


* 다운로드 : https://drive.google.com/file/d/17Dy9M3Lz7iiopT4_W34kLJnO3ggLfsnS/view?usp=sharing

v1.2.1 최신 패치내역


* 버그 수정 
   - 미완성 기능인 '도킹가능 패널의 커스터마이징'의 잔재로 '메인툴바' 체크 해제시 제거된 메인툴바를 다시 
    불러올 수 없는 문제 수정 : 툴바 우클릭 비활성화(향후 다른 도킹 가능 패널이 생긴다면 넣을 예정)
   - 메인툴바가 사라졌을 경우 해당 버전 시작 시 자동으로 살려줍니다.

v1.2 최신 패치내역


1. 신규기능 : 세로 분할(GIF/Sprite)
   
<세로 분할 시 얻는 이점>
Sprite는 여러 이미지를 '가로로' 이어 붙인 파일입니다. 일전에 설명드린 약 8196px의 제한은 세로에도 마찬가지로 적용됩니다. 여기서 중요한 건, Sprite 특성상 항상 일정한 세로 길이는 약 8196만 넘기지 않으면 되고 가로 길이는 제약이 크다는 것이죠. 이말은 즉, 디아블로2 레저렉션의 환경에선 화면을 넘길 세로 길이여도 아무 문제가 없고 오직 가로 길이만 짧으면 된다는 것입니다.

가령 300x300px의 이미지가 있다고 하면 일반적인 방법으로는 300/8196 = 27.32Frame으로 27프레임의 Sprite만 만들 수 있습니다. 하지만 이걸 10등분 해서 30x300px의 Sprite를 10개로 만든다면 이야기가 달라지겠죠. 무려 각 273프레임의 애니메이션을 재생할 수 있게 됩니다. 

아니 이렇게 해도 게임에서 못버티는 거 아냐?라고 하신다면 그렇지 않습니다. Sprite의 크기 제한은 컴퓨터의 전반적인 사양이 아니라 그래픽 API(Direct3D, OpenGL 등)의 허용 규격 제한입니다. 때문에 규격 외의 Sprite는 원칙상 표시하지 않을 뿐 세로 분할 방식으로 출력한다면 얼마든지 고화질에 고프레임 재생이 가능합니다(물론 사양이 너무너무 낮으면 이야기가 다르겠지만요.).

   
   ▲ 세로 분할 기능 : GIF 또는 Sprite를 세로로 등분(Sprite 특성상 모든 Frame의 Size는 동일)합니다. 
       // 스크린샷의 경우 325x325px의 GIF를 5등분으로 세로분할 중

   
   ▲ 325x325px의 GIF가 각 65x325px인 sprite+lowend 파일 5쌍으로 변환이 되었습니다.
       (프레임이 122개이므로 122/8196 = 67.1로 가로길이는 근사치인 65로 잡았습니다.)

   
   ▲ HUD panel에 5개의 AnimatedImageWidget을 추가하고, 가로 65px이므로 가장 왼쪽 이미지의 위치를 
      맞춘 다음 x값을 65씩 추가해 이어서 배치했습니다.

   ​
   ▲ 기존에 훨씬 적은 프레임+추가 Scale(화질감소)을 줬던데 반해, 122 프레임에 원본크기임에도 문제없이 
       재생되는걸 볼 수 있습니다.


2. GIF 기능 강화​
  ① 이제 GIF, Sprite에서 GIF로 저장이 가능합니다. (프레임 에디터 - 다른 이름으로 저장)
  ② 자르기 외에도 PNG처럼 이미지 편집 기능이 온전히 가능해졌습니다. (지우기, 위치변경, Undo/Redo 등)


3. QOL 패치
   
   ① 미리보기에 현재 프레임 보기, 이동 추가

   
  ② GIF 자르기의 아이콘이 다크테마에서 잘 안 보이던 점 개선

  
  ③ 설정 팝업시 최하단이 약간 덜 늘어나던 점 개선


 v1.0 ~ v1.1 최신 패치내역 


1. 테마 개편

   
   ▲ 상단 툴바 개편 - 아이콘화 : 기본 아이콘(스크린샷) 기본 제공, 설정에서 PNG파일로 직접 커스텀 가능

   
   ▲ 다크 테마 추가 : 설정에서 라이트/다크 선택 가능

   
   ▲ 개선된 설정창 : 테마 선택(라이트/다크), 툴바 아이콘 크기/커스터마이징 설정 추가


2. 새로 고침(F5) 로직 변경

   ① 새로고침 시 재귀기능 제거 : 더 이상 하위 폴더를 불러오지 않으며, 작업창에 띄워져 있는 폴더만 새로고침 
                                            합니다(특정 상황에 상위폴더를 호출하는 버그 차단). 

   ② 새로고침 시 lowend 생성 : 새로 고침이 작업창 내 lowend가 없는 모든 sprite의 lowend를 생성합니다.
       // 기존 프레임 에디터의 백그라운드 구동이 '다른 이름으로 저장'으로 lowend를 생성하지 못했던 점 개선

   ③ 자동 새로고침 : 모든 sprite 작업 완료 시 기존의 sprite+lowend 생성 시퀀스 대신 자동 새로고침이 작동
                           됩니다. lowend 자동 생성 및 새로고침으로 QOL 개선(대부분의 경우 자동으로 새로 고침)

   ※ 해당 변경점으로 약간 앱이 무거워졌지만, 편의성면에서 실보다는 득이 크다는 판단으로 진행했습니다.


3. PNG 내보내기 / Sprite 변환 추가기능

   
   ① Sprite → PNG 변환 시 '아니오' 선택 : 하나의 이어붙인 이미지로 저장

    
    ▲ 개별 PNG가 아닌 하나의 PNG(이어붙인 이미지)로 저장 됩니다.

    
  ② 이어붙인 PNG → Sprite 변환 시 : 메타데이터(WxH값과 프레임 수 데이터)가 소실되지 않을 경우 자동
                                                    으로 몇 프레임의 이미지인 지 탐지하여 창을 띄웁니다.

    
    ▲ 정상적으로 분할되어 sprite+lowend가 생성되는 것을 볼 수 있습니다.

  ③ 메타데이터(WxH값과 프레임 수 데이터) 소실 시 수동조작
   
     - 웬만해서는 소실되지 않지만 메타데이터가 없는 경우 작업창에서 'PNG 우클릭 - 프레임 스트립으로 
       나누어 변환'을 눌러 직접 프레임을 분할 하실 수 있습니다. 따라서 작업 중 메타데이터가 소실될 환경
       (다른 확장자로 변경, 압축, 공유 등을 거친다거나)이실 경우 프레임 수를 기억해두고 작업하시는 게 좋습
       니다(어차피 원본 sprite를 참조해도 되는 부분이며, PNG 내보내기 시 프레임 수를 이름에 적어줍니다.).



-----------------------------------------------------------------------------------------------------------------------------
  - 패치이력 및 최신버전 확인 : https://www.inven.co.kr/board/diablo2/5842/7845
    // 작은 변경 및 실험적 기능 패치 등은 계속해서 이루어 집니다.
-----------------------------------------------------------------------------------------------------------------------------



《 주요 기능 》

이 프로그램은 디아블로2 레저렉션에서 사용할 sprite를 다룹니다.


1. 상단 메뉴바

   

   * 파일 / 폴더 불러오기
     - 파일 불러오기 : 윈도우 탐색기에서 원하는 '파일(다중 선택 가능)'을 불러옵니다.
     - 폴더 불러오기 : 윈도우 탐색기에서 원하는 폴더의 '모든 하위폴더 및 파일'들을 불러옵니다.

   * 액자 추가 / 관리
     
     - 액자 추가 : PNG나 GIF에 적용할 수 있는 액자를 추가할 수 있습니다.
                       (위의 '기본 액자', '패널 액자'는 기본적으로 앱에 포함되어 있습니다.)
     
     - 액자 관리 : 기본적으로 제공되는 액자 및 자신이 직접 추가한 액자들을 관리합니다.

   * 이름 참조목록 추출 / 이름 참조목록 불러오기
    - sprite 파일 이름바꾸기 시 참조할 디아블로2 레저렉션 경로의 모든 sprite 파일이름을 추출해 본 프로그램
      에서 읽을 수 있는 txt 파일로 변환합니다. '폴더 불러오기 - data/hd/global/ui 폴더 선택 - 이름 참조 목록
      추출' 순서로 진행하면 name_reference.txt가 생성되고 불러와 적용시킬 수 있습니다.
      // 기본적으로 배포 시점 최신버전의 name_reference.txt가 반영 되어있으므로 신규 sprite가 추가되는 큰 
         패치(확장팩)가 아니라면 건드리실 필요가 없습니다.

   * 새로고침
    - 작업창에 불러온 모든 폴더 안의 파일의 변경사항을 새로고침 합니다. F5로도 작동합니다.

   * 목록 비우기
    - 작업창에 불러온 모든 파일/폴더를 비웁니다. 실제 파일은 삭제되지 않습니다.
   
   * 설정
     
     - 파일 / 폴더 불러오기 시 탐색기의 시작점 설정
     - 같은 이름의 파일 저장 시 원본 경로와 같은 폴더를 포함한 .bak 확장자의 백업 파일 생성 지점 설정


2. 파일 변환 기능

   * 변환 가능한 확장자
     - .png 파일
       → .sprite + .lowend.sprite
     - .gif 파일
       → .sprite + .lowend.sprite
       → .png (선택/모든 프레임)
     - .sprite / .lowend.sprite 파일
       → .png (선택/모든 프레임)

   * 개별 파일 변환 기능
      
     - 불러온 파일은 작업창에서 개별적으로 변환 가능
       (단, GIF → PNG의 경우 본 프로그램의 주요 목적과는 다른 행동이므로 '프레임 에디터'에서 PNG 내보내기
       기능을 이용하여야 합니다.)

   * 폴더 단위 파일 변환 기능
     
     - 폴더 안의 모든 파일을 PNG → Sprite+lowend, Sprite+lowend → PNG로 변환 가능
       (GIF의 경우 지원하지 않습니다. 앞서 언급했듯 GIF의 편집 목적은 Sprite 변환이지 PNG 변환이 아닙니다.)
     - PNG의 전체 변경 사항 저장(원본 덮어쓰기) : 액자 변경 등의 변경 사항을 PNG 그대로 저장 가능


3. 작업창

   

   * 폴더단위 조작 기능
     - 폴더 더블클릭 시 해당 경로의 윈도우 탐색기 팝업 : 앱 조작만으로 부족한 실제 파일 이동/변경/삭제
     
     - 폴더 우클릭 시 PNG 일괄 변경 기능 : 앞선 확장자 변환 외에도 PNG 파일의 전체 Size 조정, 내용 크기
                                                        조정, 액자 설정 
의 기능

   * 기본 QOL 기능
     
     - F2 : 이름 바꾸기 - 디아블로2 레저렉션의 모든 sprite 이름을 대조, 타이핑한 문자열과 일치하는 목록을
             하단에 나열
     - F5 : 새로고침
   
  - Ctrl+A : 모두 선택
     Delete+Enter : 삭제


4. PNG 동작

   

   * Size 변경 : '가로 x 세로 (px)'를 입력해서 이미지와 팔레트 크기를 원하는 크기로 설정합니다. 그 어떤 
                     설정도 무시하고 반영 합니다.

   * 내용 크기 변경 : '가로 x 세로 (px)'를 입력해서 이미지 크기만(팔레트 크기는 고정) 원하는 크기로 설정
                            합니다.

     ​

   * 이미지 편집 :  선택영역 이동/삭제/자르기/크기변경 등의 미니 포토샵 기능. Undo / Redo 기능 포함.

   
    

   * 액자 기능 : 최초 제공되는 기본, 패널 액자 or 직접 추가한 액자를 해당 PNG에 씌웁니다. 항상 전체 Size에 
                     비례 하므로 초상화 등이 잘리지 않으려면 내용 크기 조절로 이미지 축소 후 여백을 두고 설정
                     하세요. (예 : 용병의 경우 '전체 Size 120x120px / 내용 크기 100x100px / 기본 액자')


5. Sprite / Lowend 동작

   
   
 
  * 프레임 에디터
    Sprite에 포함된 프레임(PNG)을 편집하는 기능
  
  - 선택 프레임 편집 : 선택한 프레임의 위치 변경 / 복제 / 삭제 / 크기변경 / PNG로 내보내기
    - 프레임 추가 : 빈 프레임 추가 / PNG 추가 / 마지막 프레임 N회 복제
    - Sprite 저장 시 lowend 생성 : 저장 시 같은 경로에 lowend 파일 자동 생성. 없을 경우 추가, 있을경우 대체


6. GIF 동작

   

  * 즉시 Sprite 변환 가능

  * PNG / Sprite의 기능 혼합
    - Size 변경 / 내용 크기 변경 / 자르기(이미지 편집 기능의 자르기 기능) / 프레임 에디터
    - PNG 변환의 경우 프레임 에디터의 '선택한 프레임 PNG로 내보내기' 기능 이용


7. 부가 기능

  * 폴더 즐겨찾기  
   
    - 자주 이용하는 폴더를 즐겨찾기에 등록하여 클릭으로 바로 불러 올 수 있습니다.

  * 커스텀 시퀀스
    
    ​
    - 최대 3단계의 동작(단계마다 Size 변경, 내용크기 변경, 액자 추가 中 택1) + 저장 형식을 시퀀스로 등록 후
      원버튼 실행
    - 위의 예시와 같게 세팅 시 크기가 제각각인 모든 PNG 선택 후 클릭 한 번으로 용병/몬스터 아이콘 변환이 
      가능

  * PNG / GIF / Sprite 미리보기
    ​
    - 애니메이션 재생 기능(Fps 설정 가능)
    - 마우스 휠로 축소/확대(애니메이션 재생 중 가능)