조합 효과 for YMM4 — 취급 설명서

버전: 2.2.0  /  지원 OS: Windows 10 / 11 (64bit)  /  런타임: .NET 10.0

1. 개요

「조합 효과」는 YukkuriMovieMaker4(YMM4)에서 동작하는 영상 효과 플러그인입니다. 여러 개의 영상 효과를 하나의 「조합 효과」 아이템에 저장하고, 그룹화 · 프리셋 저장 · 불러오기를 통해 관리할 수 있습니다.

주요 특징은 다음과 같습니다.

  • 여러 효과를 하나의 아이템에 모아 순서대로 적용
  • 이름 있는 프리셋으로 저장 · 불러오기 · 공유
  • 탭 단위로 여러 효과 구성을 관리하고 즉시 전환(추가 · 삭제 · 이름 변경 지원)
  • 그룹 · 즐겨찾기 · 최근 사용 3종 가상 그룹으로 정리
  • Git 유사 스냅샷 기록 및 분기 관리
  • CRC32 검증 포함 원자적 쓰기와 SHA-256 해시 다중 이중화 영속화
  • 프리셋 패키지 파일(.ceprstpkg)로 내보내기 · 가져오기
  • 클립보드를 통한 복사 · 잘라내기 · 붙여넣기
  • 정규 표현식 지원 다축 검색
  • 8개 언어 UI (일본어 · 영어 · 중국어 간체 · 중국어 번체 · 한국어 · 스페인어 · 아라비아어 · 인도네시아어)
  • 폭 400px 미만에서 모바일 레이아웃으로 자동 전환하는 반응형 UI

타임라인 레이블에는 「조합 효과 적용 중: 3개 [프리셋 이름]」처럼 현재 효과 수와 적용된 프리셋 이름이 표시되어 내용을 한눈에 파악할 수 있습니다.

AviUtl 출력(.exo)은 지원하지 않습니다.


2. 동작 요건

항목요건
OSWindows 10 / 11 (64bit)
YukkuriMovieMaker4최신 버전 권장
런타임.NET 10.0
GPUDirect2D 대응 GPU

3. 설치 방법

  1. GitHub의 Releases 페이지에서 최신 .ymme 파일을 다운로드합니다.
  2. YMM4가 실행 중이 아닌지 확인합니다.
  3. 다운로드한 .ymme 파일을 더블 클릭하여 설치합니다.
  4. YMM4를 실행하고 타임라인의 아이템을 선택합니다.
  5. 영상 효과 추가에서 「조합 효과」를 선택합니다.

설치 후 속성 패널에 프리셋 관리 패널과 효과 목록이 표시됩니다.


4. 처음 사용 방법

  1. 타임라인에서 동영상 · 이미지 등의 영상 아이템을 선택합니다.
  2. 영상 효과 추가에서 「조합 효과」를 추가합니다.
  3. 속성 패널 하단의 「활성 효과」 섹션에 원하는 효과를 추가하고 설정합니다.
  4. 프리셋 관리 패널에서 「+ (추가)」 버튼을 클릭하고 이름을 입력하여 프리셋을 저장합니다.
  5. 다른 아이템에도 같은 구성을 적용하려면 프리셋을 선택하고 「✓ (적용)」 버튼을 클릭합니다.

5. 화면 구성

속성 패널에는 위에서 순서대로 다음 섹션이 표시됩니다.

5-1. 프리셋 관리 패널 (PresetManagerControl)

프리셋 관리의 주요 조작 영역입니다. 좌우 2열로 나뉩니다.

영역설명
왼쪽 열 (그룹 목록)사용자 정의 그룹과 가상 그룹(전체 · 최근 사용 · 즐겨찾기)을 목록으로 표시합니다. 클릭으로 선택, 더블 클릭으로 이름 변경, 드래그 & 드롭으로 순서 변경(가상 그룹은 이동 불가)이 가능합니다. 하단의 + 버튼으로 그룹 추가, - 버튼으로 삭제할 수 있습니다.
오른쪽 열 상단 (검색 바)키워드로 프리셋을 필터링합니다. 오른쪽 아이콘을 클릭하여 검색 대상을 변경할 수 있습니다.
오른쪽 열 중앙 (프리셋 목록)선택된 그룹의 프리셋을 목록으로 표시합니다. 각 행에는 ★(즐겨찾기 토글) · 이름 · 효과 수 · 정보 아이콘(툴팁으로 효과 목록 표시)이 있습니다. 다중 선택(Ctrl 클릭 · Shift 클릭)이 가능합니다.
오른쪽 열 하단 (조작 버튼)왼쪽부터 「추가(+)」「삭제(-)」「업데이트(↺)」「적용(✓)」 버튼이 나열됩니다. 마우스 오버 시 레이블이 확장되는 애니메이션이 있습니다.
하단 크기 조절 핸들드래그하여 패널 전체 높이를 변경할 수 있습니다.

5-2. 그리드 분할선

두 열의 경계선을 드래그하여 그룹 열 너비를 조정할 수 있습니다. 조정 값은 다음 시작 시 복원됩니다.

5-3. 모바일 레이아웃 (폭 400px 미만)

컨트롤 폭이 400px 미만이 되면 그룹 목록이 숨겨지고 햄버거 메뉴 버튼(≡)이 표시됩니다. 이 버튼을 클릭하면 팝업으로 그룹 목록이 열립니다.

5-4. 효과 탭 관리 (EffectTabManagerControl)

「활성 효과」 위에 탭 바가 표시됩니다. 각 탭은 독립적인 효과 구성을 저장하며, 탭을 전환하면 선택된 탭의 내용이 즉시 반영됩니다.

  • 오른쪽 + 버튼: 「탭 추가」
  • 각 탭의 × 버튼: 「탭 삭제」(첫 탭 「새 탭」은 삭제 불가)
  • 탭 이름 더블 클릭: 이름 변경(Enter 또는 포커스 이동으로 확정, Esc로 취소)
  • 기본 탭 이름: 첫 번째는 「새 탭」, 이후는 「탭 2」「탭 3」...

5-5. 활성 효과 (VideoEffectSelector)

YMM4 표준 영상 효과 선택기에는 현재 선택된 탭의 효과가 표시됩니다. 여기서의 추가 · 삭제 · 순서 변경 · 활성화/비활성화 작업은 해당 탭에 저장됩니다.


6. 그룹 관리

프리셋은 그룹으로 분류하여 정리할 수 있습니다. 그룹에는 「실제 그룹」과 「가상 그룹」이 있습니다.

6-1. 그룹 추가

  1. 그룹 목록 하단의 「+」 버튼을 클릭합니다.
  2. 대화 상자에 그룹 이름을 입력하고 「OK」를 클릭합니다.
  3. 새 그룹이 목록에 추가되고 자동으로 선택됩니다.

6-2. 그룹 삭제

  1. 삭제할 그룹을 그룹 목록에서 선택합니다.
  2. 그룹 목록 하단의 「-」 버튼을 클릭합니다.
  3. 확인 대화 상자에서 「OK」를 클릭하면 그룹과 그 안의 모든 프리셋이 삭제됩니다.

주의: 「기본」 그룹과 가상 그룹(전체 · 최근 사용 · 즐겨찾기)은 삭제할 수 없습니다.

6-3. 그룹 이름 변경

다음 중 하나의 방법으로 이름을 변경할 수 있습니다.

  • 그룹을 더블 클릭하여 대화 상자를 열고 새 이름을 입력합니다.
  • 그룹을 오른쪽 클릭하여 컨텍스트 메뉴에서 「이름 바꾸기」를 선택합니다.

주의: 가상 그룹은 이름을 변경할 수 없습니다.

6-4. 그룹 순서 변경

실제 그룹을 드래그 & 드롭하여 순서를 변경할 수 있습니다. 가상 그룹은 항상 목록 상단에 고정되어 이동할 수 없습니다.


7. 프리셋 관리

7-1. 프리셋 추가 (저장)

  1. 「활성 효과」에 저장할 효과를 설정합니다.
  2. 저장 대상 그룹을 그룹 목록에서 선택합니다(가상 그룹 선택 시 첫 번째 실제 그룹에 저장됩니다).
  3. 오른쪽 열 하단의 「+ (추가)」 버튼을 클릭합니다.
  4. 대화 상자에 프리셋 이름을 입력하고 「OK」를 클릭합니다.
  5. 현재 효과 구성이 프리셋으로 저장되어 목록에 추가됩니다.

7-2. 프리셋 삭제

  1. 삭제할 프리셋을 목록에서 선택합니다(Ctrl 클릭 · Shift 클릭으로 다중 선택 가능).
  2. 「- (삭제)」 버튼을 클릭하거나 오른쪽 클릭하여 「삭제」를 선택합니다.
  3. 확인 대화 상자에서 「OK」를 클릭하면 삭제됩니다.

여러 프리셋을 선택한 상태에서 삭제하면 선택된 모든 프리셋이 일괄 삭제됩니다.

7-3. 프리셋 이름 변경

  • 프리셋을 더블 클릭하여 대화 상자를 열고 새 이름을 입력합니다.
  • 오른쪽 클릭하여 「이름 바꾸기」를 선택합니다.

7-4. 프리셋 비우기 (내용을 빈 상태로)

프리셋에 저장된 모든 효과를 삭제하여 빈 상태로 만듭니다. 프리셋 자체는 남습니다.

  1. 대상 프리셋을 오른쪽 클릭합니다.
  2. 컨텍스트 메뉴에서 「프리셋 비우기」를 선택합니다.
  3. 확인 대화 상자에서 「OK」를 클릭합니다.

7-5. 프리셋 순서 변경

프리셋 목록 내에서 드래그 & 드롭하여 순서를 변경할 수 있습니다. 가상 그룹(전체 · 즐겨찾기 · 최근 사용)을 표시 중일 때는 순서 변경이 불가합니다.


8. 가상 그룹

가상 그룹은 항상 그룹 목록 상단에 표시되는 특수 그룹입니다. 삭제 · 이름 변경 · 순서 변경은 불가합니다.

그룹 이름내용정렬
전체모든 실제 그룹의 프리셋을 한데 모아 표시합니다.이름순 (오름차순)
최근 사용최근에 적용한 프리셋을 최대 10개 표시합니다.최근 적용 순
즐겨찾기★ 등록된 프리셋을 표시합니다.이름순 (오름차순)

가상 그룹을 선택한 상태에서 프리셋을 추가 · 붙여넣기하면 첫 번째 실제 그룹에 저장됩니다.


9. 프리셋 적용

9-1. 단일 프리셋 적용

  1. 적용할 프리셋을 목록에서 선택합니다.
  2. 「✓ (적용)」 버튼을 클릭하거나 오른쪽 클릭하여 「적용」을 선택합니다.
  3. 프리셋의 효과 구성이 타임라인의 아이템에 로드됩니다.

같은 프리셋을 중복 적용하는 경우: 현재 효과와 완전히 동일한 내용의 프리셋을 적용하려고 하면 확인 대화 상자가 표시됩니다. 「OK」를 클릭하면 현재 효과에 덧씌워(중첩) 적용됩니다. 「취소」로 중단합니다.

9-2. 여러 프리셋 동시 적용

  1. Ctrl 클릭 또는 Shift 클릭으로 여러 프리셋을 선택합니다.
  2. 「✓ (적용)」 버튼을 클릭합니다.
  3. 선택한 여러 프리셋의 효과가 순서대로 결합되어 적용됩니다.

다중 선택 시에는 중복 확인 대화 상자가 표시되지 않습니다. 또한 선택한 프리셋이 2개 이상인 경우 「최근 사용」 추가 및 프리셋 JSON 기록은 수행되지 않습니다.

9-3. 프리셋 적용 후 레이블 반영

단일 프리셋을 적용하면 타임라인 레이블이 「조합 효과 적용 중: 3개 [프리셋 이름]」처럼 업데이트됩니다. 효과를 수동으로 변경해도 적용된 프리셋 이름 표시는 유지됩니다.


10. 프리셋 업데이트

현재 효과 구성으로 선택 중인 프리셋을 덮어씁니다.

  1. 업데이트할 프리셋을 목록에서 선택합니다.
  2. 「활성 효과」의 효과를 변경합니다.
  3. 「↺ (업데이트)」 버튼이 활성화되어 있는지 확인합니다(효과에 변경이 있는 경우에만 활성화).
  4. 「↺ (업데이트)」 버튼을 클릭하거나 오른쪽 클릭하여 「업데이트」를 선택합니다.

업데이트 버튼이 활성화되는 조건: 선택 중인 프리셋이 가장 최근에 적용된 프리셋과 동일하고, 현재 효과 구성이 프리셋에 저장된 내용과 다른 경우에만 활성화됩니다. 효과 파라미터를 변경하면 50ms 디바운스 후 자동으로 판정됩니다.


검색 상자에 키워드를 입력하면 실시간으로 프리셋이 필터링됩니다.

11-1. 검색 모드 전환

검색 상자 오른쪽 끝의 필터 아이콘을 클릭하면 메뉴가 열리고 검색 대상을 변경할 수 있습니다.

검색 모드검색 대상
프리셋 이름 (기본값)프리셋의 이름
효과 이름프리셋에 포함된 모든 효과의 레이블(줄 바꿈으로 구분된 목록)
효과 수프리셋에 포함된 효과의 개수. 숫자를 입력하면 완전 일치를 우선하고 일치하지 않으면 부분 일치로 폴백
내부 데이터 (JSON)직렬화된 효과 구성의 원시 JSON 데이터. 효과 타입 이름이나 파라미터 값으로 검색 가능
모두이름 · 효과 이름 · 원시 JSON 중 하나라도 일치하는 것을 표시

11-2. 정규 표현식 검색

모든 검색 모드에서 정규 표현식(대소문자 구분 없음)을 사용할 수 있습니다.

  • 예: ^blur → 이름이 「blur」로 시작하는 프리셋 검색
  • 예: color|shadow → 이름에 「color」 또는 「shadow」를 포함하는 프리셋 검색
  • 예: [0-9]+ → 이름에 숫자가 포함된 프리셋 검색

유효하지 않은 정규 표현식 패턴을 입력하면 대소문자 구분 없는 부분 일치 검색으로 폴백합니다.


12. 즐겨찾기

자주 사용하는 프리셋을 즐겨찾기로 등록하면 「즐겨찾기」 가상 그룹에서 빠르게 접근할 수 있습니다.

12-1. 즐겨찾기 등록 · 해제

프리셋 목록의 각 행 왼쪽 끝에 있는 ★ 버튼을 클릭합니다.

  • ★가 노란색(금색)으로 바뀌면 즐겨찾기로 등록된 것입니다.
  • ★가 회색이면 미등록(해제) 상태입니다.

변경 내용은 프리셋 파일에 즉시 저장됩니다.

12-2. 즐겨찾기 그룹 표시

그룹 목록에서 「즐겨찾기」를 선택하면 ★ 등록된 프리셋이 이름순으로 표시됩니다. 「즐겨찾기」 그룹을 표시 중에 프리셋의 즐겨찾기를 해제하면 해당 프리셋이 즉시 목록에서 사라집니다.


13. 복사 · 잘라내기 · 붙여넣기

클립보드를 사용하여 프리셋을 복사 · 잘라내기 · 붙여넣기할 수 있습니다. 데이터는 프리셋 패키지와 동일한 JSON 형식으로 클립보드에 기록되므로 텍스트 에디터에서 내용을 확인하거나 편집할 수도 있습니다.

13-1. 복사

  1. 복사할 프리셋을 선택합니다(다중 선택 가능).
  2. 오른쪽 클릭하여 「복사」를 선택합니다.

원본 프리셋은 그대로 남습니다.

13-2. 잘라내기

  1. 이동할 프리셋을 선택합니다(다중 선택 가능).
  2. 오른쪽 클릭하여 「잘라내기」를 선택합니다.

클립보드에 복사되는 동시에 원본 프리셋이 삭제됩니다. 삭제 확인 대화 상자는 표시되지 않습니다.

13-3. 붙여넣기

  1. 붙여넣을 대상 그룹을 그룹 목록에서 선택합니다.
  2. 프리셋 목록의 빈 공간 또는 임의의 프리셋을 오른쪽 클릭하여 「붙여넣기」를 선택합니다.

클립보드에 유효한 프리셋 패키지 JSON이 포함된 경우에만 실행할 수 있습니다. 붙여넣은 프리셋에는 새로운 GUID가 할당됩니다(원래 ID와 다른 ID가 됩니다). 가상 그룹을 선택 중인 경우 첫 번째 실제 그룹에 추가됩니다.

13-4. 클립보드 데이터 형식

클립보드에 기록되는 데이터는 다음 JSON 형식입니다.

{
  "FormatId": "CombinedEffect.PresetExchange",
  "Version": 1,
  "ExportedAtUtc": "2025-01-01T00:00:00+00:00",
  "Presets": [
    {
      "Id": "...",
      "Name": "프리셋 이름",
      "IsFavorite": false,
      "SerializedTabs": "...",
      "SerializedEffects": "..."
    }
  ]
}

14. 프리셋 내보내기 · 가져오기

프리셋을 패키지 파일(확장자 .ceprstpkg)로 내보내기 · 가져오기하여 환경 간이나 사용자 간에 프리셋을 공유할 수 있습니다.

14-1. 내보내기 (Export)

  1. 내보낼 프리셋을 목록에서 선택합니다(Ctrl 클릭 · Shift 클릭으로 다중 선택 가능).
  2. 오른쪽 클릭하여 「내보내기」를 선택합니다.
  3. 파일 저장 대화 상자가 열립니다. 저장 위치와 파일 이름을 지정하여 저장합니다.
  • 단일 프리셋 선택 시: 프리셋 이름을 기반으로 한 파일 이름이 기본값으로 사용됩니다(파일 이름에 사용할 수 없는 문자는 _로 대체됩니다).
  • 여러 프리셋 선택 시: 기본 번들 이름 「조합효과_프리셋」이 기본값으로 사용됩니다.

14-2. 가져오기 (Import)

  1. 가져온 프리셋을 추가할 그룹을 그룹 목록에서 선택합니다.
  2. 프리셋 목록의 빈 공간을 오른쪽 클릭하여 「가져오기」를 선택합니다.
  3. 파일 선택 대화 상자가 열립니다. .ceprstpkg 파일을 선택합니다(여러 파일을 동시에 선택 가능).
  4. 가져온 프리셋이 현재 그룹에 추가됩니다.

가져온 프리셋에는 새로운 GUID가 할당되므로 기존 프리셋과 충돌하지 않습니다.

14-3. 버전 호환성

패키지 파일에는 형식 버전 번호가 기록되어 있습니다. 현재 버전은 1입니다. 지원되는 버전을 초과하는 패키지를 가져오려고 하면 오류 메시지가 표시됩니다.


15. 스냅샷 기록 · 분기 관리

프리셋별로 Git 유사 기록 관리 창을 제공합니다. 효과 구성의 변경 기록을 스냅샷으로 저장하고 분기를 사용하여 관리할 수 있습니다.

15-1. 기록 관리 창 열기

  1. 기록을 관리할 프리셋을 오른쪽 클릭합니다.
  2. 컨텍스트 메뉴에서 「기록 관리」를 선택합니다.
  3. 기록 관리 창이 열립니다(프리셋마다 1개의 창이 열립니다).

15-2. 기록 관리 창 구성

패널설명
왼쪽 (분기 목록)이 프리셋에 존재하는 분기를 목록으로 표시합니다. 클릭으로 선택하면 선택된 분기의 스냅샷 기록이 중앙에 표시됩니다. 하단 텍스트 상자에 분기 이름을 입력하고 「새 분기 생성」 버튼으로 새 분기를 추가할 수 있습니다.
중앙 (스냅샷 목록)선택된 분기의 HEAD에서 역방향으로 스냅샷을 목록으로 표시합니다. 각 행에는 커밋 아이콘(현재 HEAD는 채워진 상태) · 태그 · 메시지 · 날짜/시간 · 차이 요약 · ID가 표시됩니다. 오른쪽 클릭으로 컨텍스트 메뉴가 열립니다. 하단에서 메시지를 입력하고 「새 스냅샷 저장」 버튼을 누르면 현재 구성이 저장됩니다. 하단의 「이 상태로 되돌리기」 버튼으로 선택된 스냅샷으로 되돌릴 수 있습니다.
오른쪽 (차이 표시)선택된 스냅샷과 현재 효과 구성의 차이를 표시합니다. 추가는 초록색 · 삭제는 빨간색 · 변경은 노란색으로 색상 코드 표시됩니다. 효과 수의 증감과 각 속성의 변경 전 · 후 값이 Consolas 폰트로 표시됩니다.

15-3. 스냅샷 생성

  1. 기록 관리 창을 엽니다.
  2. 중앙 패널 하단의 텍스트 상자에 변경 내용의 메시지를 입력합니다.
  3. 「새 스냅샷 저장」 버튼을 클릭합니다.
  4. 현재 프리셋의 효과 구성이 스냅샷으로 저장되고 선택된 분기의 HEAD가 업데이트됩니다.

15-4. 스냅샷으로 되돌리기 (Revert)

  1. 되돌릴 스냅샷을 목록에서 선택합니다.
  2. 「이 상태로 되돌리기」 버튼을 클릭합니다.
  3. 프리셋과 타임라인의 아이템(조합 효과)의 효과 구성이 선택된 스냅샷 시점으로 복원됩니다.

15-5. 분기 생성

  1. 왼쪽 패널 하단의 텍스트 상자에 새 분기 이름을 입력합니다.
  2. 「새 분기 생성」 버튼을 클릭합니다.
  3. 현재 선택된 스냅샷(또는 현재 분기 HEAD)을 기점으로 새 분기가 생성됩니다.

15-6. 컨텍스트 메뉴 조작

스냅샷을 오른쪽 클릭하면 컨텍스트 메뉴가 표시됩니다.

조작설명
현재 기록에 병합선택된 스냅샷의 효과를 현재 효과의 끝에 추가합니다.
변경 유지 (Soft)선택된 분기의 HEAD를 선택한 스냅샷으로 이동합니다. 타임라인의 효과는 변경되지 않습니다.
변경 버림 (Hard)변경 유지 (Soft)와 스냅샷으로의 되돌리기를 동시에 실행합니다.
태그 관리스냅샷의 태그 관리 창을 엽니다.

15-7. 차이 요약 보는 방법

스냅샷 목록의 「변경 내용」 열에 차이 요약이 표시됩니다.

  • 「추가됨 (+N)」: 현재보다 효과가 N개 더 많음
  • 「삭제됨 (N)」: 현재보다 효과가 N개 더 적음
  • 「수정됨」: 효과 수는 같지만 파라미터가 변경됨
  • (빈 칸): 현재 효과 구성과 동일한 내용

15-8. 기록 데이터 저장 위치

기록 데이터는 플러그인 디렉터리 하위의 History/ 폴더에 저장됩니다. 프리셋별로 하위 폴더가 만들어지고 분기 정보는 branches.json, 각 스냅샷은 {ID}.json으로 저장됩니다.


16. 태그 관리

스냅샷에 여러 개의 태그를 부여하여 정리할 수 있습니다. 태그는 스냅샷 목록에서 초록색으로 표시됩니다.

16-1. 태그 추가

  1. 태그를 추가할 스냅샷을 오른쪽 클릭합니다.
  2. 컨텍스트 메뉴에서 「태그 관리」를 선택합니다.
  3. 태그 관리 창이 열립니다.
  4. 상단의 텍스트 상자에 태그 이름을 입력하고 「추가」 버튼을 클릭합니다.

동일한 태그 이름은 중복 추가되지 않습니다.

16-2. 태그 삭제

  1. 태그 관리 창을 엽니다.
  2. 삭제할 태그 행의 「제거」 버튼을 클릭합니다.

17. 효과 일괄 삭제

「조합 효과」 내에서 비활성화(체크 해제)된 효과를 한꺼번에 삭제할 수 있습니다.

  1. 프리셋 목록의 빈 공간을 오른쪽 클릭합니다.
  2. 컨텍스트 메뉴의 「지우기」 → 「선택되지 않은 효과 제거」를 선택합니다.
  3. 확인 대화 상자에서 「OK」를 클릭합니다.
  4. 현재 비활성화된 모든 효과가 삭제됩니다.

활성화된 효과는 삭제되지 않습니다. 비활성화된 효과가 없는 경우 아무것도 일어나지 않습니다.


18. 반응형 UI 및 레이아웃 조정

18-1. 패널 높이 조정

프리셋 관리 패널 하단의 크기 조절 핸들(이중 선)을 위아래로 드래그하여 패널 높이를 변경할 수 있습니다. 최소 높이는 200px입니다. 드래그를 놓을 때 설정이 저장되어 다음 시작 시 복원됩니다.

18-2. 그룹 열 너비 조정

그룹 목록과 프리셋 목록의 경계선(그리드 분할선)을 좌우로 드래그하여 그룹 열 너비를 변경할 수 있습니다. 최소 너비는 120px, 최대 너비는 400px입니다. 드래그 완료 시 설정이 저장됩니다.

18-3. 모바일 레이아웃

컨트롤 폭이 400px 미만이 되면 다음과 같이 변경됩니다.

  • 그룹 목록 패널이 숨겨집니다.
  • 그리드 분할선이 숨겨집니다.
  • 검색 바 왼쪽에 햄버거 메뉴 버튼(≡)이 표시됩니다.
  • 버튼을 클릭하면 팝업으로 그룹 목록이 열립니다. 그룹을 선택하면 팝업이 닫힙니다.

컨트롤 폭이 400px 이상으로 돌아오면 자동으로 데스크톱 레이아웃으로 전환됩니다.


19. 데이터 저장 및 안전한 영속화

모든 프리셋 데이터 · 그룹 구성 · 기록 데이터는 JSON 파일로 저장됩니다. 다음의 다중 이중화 · 무결성 검증 메커니즘으로 단일 장애로 인한 데이터 손실을 방지합니다.

19-1. 원자적 쓰기

파일 쓰기는 다음 절차로 수행됩니다.

  1. 임시 파일(.tmp)에 씁니다.
  2. File.Replace로 본체 파일과 교체하고 이전 파일을 백업(.bak)으로 이동합니다.
  3. 쓰기 중 충돌이 발생해도 본체 파일 또는 백업 파일 중 하나는 항상 유효한 상태를 유지합니다.

19-2. CRC32 검증

쓰기 시 파일 내용의 CRC32 체크섬을 계산하여 파일 끝에 부가합니다. 읽기 시 체크섬을 대조하고 불일치 시 백업 파일로부터 복원을 시도합니다.

19-3. SHA-256 해시에 의한 다중 이중화

프리셋 데이터와 그룹 레지스트리는 다음 2곳에 저장됩니다.

  • 메인 스토리지: 플러그인 디렉터리 하위의 presets/ 폴더
  • 백업 스토리지: user/backup/CombinedEffect/ 폴더

시작 시 양쪽의 내용과 CombinedEffectSettings에 기록된 SHA-256 해시 · 타임스탬프를 대조하여 불일치가 감지된 경우 올바른 데이터로 자동 복구(힐링)합니다.

19-4. 디바운스 쓰기

연속된 변경 작업은 300ms(삭제 작업은 100ms) 디바운스되어 함께 기록됩니다. 이를 통해 I/O 부하를 억제합니다.

19-5. 로그 기록

조작 로그 · 오류 로그는 user/log/CombinedEffect/ 하위에 저장됩니다.

  • 로그 파일이 512 KB를 초과하면 새 파일이 생성됩니다.
  • 31일 이상 경과한 로그 파일은 자동 삭제됩니다(1시간마다 확인).

20. 이전 버전에서의 마이그레이션

다음 경로에 이전 버전 데이터 파일이 존재하는 경우 초회 시작 시 자동으로 마이그레이션이 실행됩니다.

%AppData%\YukkuriMovieMaker4\user\plugins\CombinedEffect\presets.json

마이그레이션 완료 후 이전 파일은 presets.json.migrated로 이름이 변경됩니다. 마이그레이션에 실패해도 이전 파일은 삭제되지 않습니다.

마이그레이션 대상:

  • 이전 형식의 그룹 목록(가상 그룹 「전체」「즐겨찾기」에 해당하는 그룹은 제외됩니다)
  • 각 그룹에 속하는 프리셋(이름 · 즐겨찾기 상태 · 효과 구성)

21. 파일 · 폴더 구성

경로 (플러그인 디렉터리 기준)내용
presets/메인 프리셋 데이터 저장 폴더
presets/groups.json그룹 구성(그룹 이름 · 소속 프리셋 ID 목록)
presets/{GUID}.json각 프리셋의 데이터(이름 · 즐겨찾기 · 효과 구성 JSON)
presets/recent_ids.json최근 사용 프리셋 ID 목록(최대 10개)
presets/UISettings.jsonUI 설정(패널 높이 · 그룹 열 너비)
History/스냅샷 기록 데이터 저장 폴더
History/{프리셋 GUID}/branches.json해당 프리셋의 분기 목록
History/{프리셋 GUID}/{스냅샷 GUID}.json각 스냅샷의 데이터
user/backup/CombinedEffect/백업 스토리지(YMM4 설치 디렉터리 기준)
user/log/CombinedEffect/로그 파일 저장 폴더(YMM4 설치 디렉터리 기준)

프리셋 데이터는 메인 스토리지와 백업 스토리지 양쪽에 저장됩니다. 한쪽 폴더가 손실되어도 다른 쪽에서 복원할 수 있지만, 양쪽 모두 삭제되면 데이터를 복원할 수 없습니다.


22. 다국어 지원

YMM4의 언어 설정에 맞춰 UI 전체가 자동으로 전환됩니다. 추가 설정은 필요하지 않습니다.

언어 코드언어
ja-jp일본어
en-us영어
zh-cn중국어(간체)
zh-tw중국어(번체)
ko-kr한국어
es-es스페인어
ar-sa아라비아어
id-id인도네시아어

23. 파라미터 목록

파라미터 이름형식기본값애니메이션설명
활성 효과 (Effects)ImmutableList<IVideoEffect>(비어 있음)없음저장할 영상 효과의 목록. YMM4 표준 효과 선택기로 추가 · 삭제 · 순서 변경 · 활성화/비활성화할 수 있습니다. 위에서 순서대로 파이프라인 처리됩니다. 비활성화된 효과는 건너뜁니다.
EffectTabsJsonString(JSON 형식)(빈 문자열)없음효과 탭 상태(선택된 탭 ID, 탭 이름, 탭별 효과 JSON)를 저장하는 내부용 속성입니다. 탭 추가/삭제/이름 변경/전환 시 자동으로 갱신됩니다.
SelectedPresetJsonString(JSON 형식)(빈 문자열)없음현재 적용된 프리셋의 정보를 보유하는 내부용 속성. 프리셋 적용 시 자동으로 설정됩니다. 직접 편집은 권장하지 않습니다. 타임라인 레이블 표시에 사용됩니다.
PresetManagerVisiblebooltrue없음프리셋 관리 패널의 표시를 제어하는 내부용 플래그. JSON 직렬화 대상 외([JsonIgnore])입니다.

레이블 표시 형식

상태표시 형식예시
프리셋 미적용{효과 이름} 적용 중: {N}개조합 효과 적용 중: 3개
프리셋 적용됨{효과 이름} 적용 중: {N}개 [{프리셋 이름}]조합 효과 적용 중: 3개 [효과 A 세트]

24. 조작 목록 (빠른 참조)

탭 조작

조작방법제한 · 보충
탭 추가탭 바 오른쪽 「+」 버튼새 탭은 빈 효과 구성으로 생성
탭 삭제탭의 「×」 버튼첫 탭 「새 탭」은 삭제 불가
탭 이름 변경탭 더블 클릭 후 편집Enter/포커스 이동으로 확정, Esc로 취소
탭 전환탭 클릭선택 탭의 효과가 「활성 효과」에 반영

그룹 조작

조작방법제한
그룹 추가그룹 목록 하단 「+」 버튼없음
그룹 삭제그룹 목록 하단 「-」 버튼기본 · 가상 그룹은 불가
그룹 이름 변경더블 클릭, 또는 오른쪽 클릭 → 「이름 바꾸기」가상 그룹은 불가
그룹 순서 변경드래그 & 드롭가상 그룹은 불가

프리셋 조작

조작방법제한 · 보충
프리셋 추가「+ (추가)」 버튼가상 그룹 선택 시 첫 번째 실제 그룹에 저장
프리셋 삭제「- (삭제)」 버튼, 또는 오른쪽 클릭 → 「삭제」확인 대화 상자 있음. 다중 선택 가능
프리셋 이름 변경더블 클릭, 또는 오른쪽 클릭 → 「이름 바꾸기」없음
프리셋 순서 변경드래그 & 드롭가상 그룹 표시 중 불가
프리셋 적용「✓ (적용)」 버튼, 또는 오른쪽 클릭 → 「적용」동일 내용인 경우 확인 대화 상자 있음
프리셋 업데이트「↺ (업데이트)」 버튼, 또는 오른쪽 클릭 → 「업데이트」효과에 변경이 있는 경우에만 활성화
프리셋 비우기오른쪽 클릭 → 「프리셋 비우기」확인 대화 상자 있음. 효과가 1개 이상인 경우에만 활성화
즐겨찾기 전환★ 버튼 클릭없음
복사오른쪽 클릭 → 「복사」다중 선택 가능
잘라내기오른쪽 클릭 → 「잘라내기」확인 대화 상자 없음. 다중 선택 가능
붙여넣기오른쪽 클릭 → 「붙여넣기」클립보드에 유효한 JSON 필요
내보내기오른쪽 클릭 → 「내보내기」다중 선택 가능. .ceprstpkg 형식
가져오기빈 공간 오른쪽 클릭 → 「가져오기」여러 파일 동시 선택 가능
선택되지 않은 효과 제거빈 공간 오른쪽 클릭 → 「지우기」 → 「선택되지 않은 효과 제거」확인 대화 상자 있음
기록 관리 열기오른쪽 클릭 → 「기록 관리」프리셋마다 1개의 창

기록 관리 조작

조작방법설명
스냅샷 저장메시지 입력 → 「새 스냅샷 저장」 버튼메시지가 비어 있으면 비활성화
스냅샷으로 되돌리기스냅샷 선택 → 「이 상태로 되돌리기」 버튼프리셋과 타임라인 양쪽에 반영
분기 생성분기 이름 입력 → 「새 분기 생성」 버튼분기 이름이 비어 있으면 비활성화
병합스냅샷 오른쪽 클릭 → 「현재 기록에 병합」효과를 현재 끝에 추가
변경 유지 (Soft Reset)스냅샷 오른쪽 클릭 → 「변경 유지 (Soft)」HEAD만 이동, 효과 변경 없음
변경 버림 (Hard Reset)스냅샷 오른쪽 클릭 → 「변경 버림 (Hard)」Soft Reset + 되돌리기 동시 실행
태그 관리스냅샷 오른쪽 클릭 → 「태그 관리」태그 관리 창 열기

25. 주의 사항

  • AviUtl 형식(.exo) 출력은 지원하지 않습니다.
  • 「조합 효과」 내에 같은 「조합 효과」를 중첩하는 것은 권장하지 않습니다.
  • 「전체」「즐겨찾기」「최근 사용」 가상 그룹은 삭제 · 이름 변경 · 순서 변경이 불가합니다.
  • 「기본」 그룹은 삭제할 수 없습니다.
  • 가상 그룹을 선택한 상태에서 프리셋을 추가 · 붙여넣기하면 첫 번째 실제 그룹에 저장됩니다.
  • 패키지 파일을 가져오면 원래 GUID와 다른 새 ID가 할당됩니다. 따라서 가져온 프리셋은 스냅샷 기록을 이어받지 않습니다.
  • 잘라내기 작업은 확인 대화 상자 없이 프리셋을 삭제합니다. 작업 직후 실행 취소가 불가하므로 주의하십시오.
  • 단일 프리셋 적용 시 저장된 탭 구조(선택된 탭 포함)가 복원됩니다. 여러 프리셋을 동시에 적용하거나 동일 프리셋을 덧붙여 적용하면, 선택 탭의 효과만 병합되고 탭 구조는 단일 「새 탭」으로 재구성됩니다.
  • 프리셋 데이터는 메인 스토리지와 백업 스토리지 2곳에 저장됩니다. 한쪽 폴더를 삭제해도 복원할 수 있는 경우가 있지만, 양쪽을 모두 삭제하면 프리셋이 손실됩니다.
  • 기록 데이터는 History/ 폴더에 저장됩니다. 이 폴더를 삭제하면 모든 기록이 사라집니다.
  • 스냅샷 기록은 무제한으로 증가합니다. 불필요한 기록이 많은 경우 History/{프리셋 GUID}/ 폴더 내의 불필요한 .json 파일을 수동으로 삭제할 수 있습니다(branches.json은 삭제하지 마십시오).
  • 프리셋의 효과 구성으로 저장되는 것은 YMM4 플러그인 시스템이 지원하는 효과뿐입니다. 미지원 효과는 로드 시 건너뛸 수 있습니다.
  • 디바운스 쓰기로 인해 변경 작업에서 실제로 파일에 저장될 때까지 최대 300ms의 지연이 있습니다. YMM4를 즉시 강제 종료한 경우 마지막 작업이 저장되지 않을 수 있습니다.

26. 면책 조항 · 라이선스

본 플러그인은 MIT 라이선스 하에 공개되어 있습니다.

본 소프트웨어는 「현 상태 그대로」 제공되며, 명시적이든 묵시적이든 상품성, 특정 목적에의 적합성, 및 권리 비침해에 관한 보증을 포함한 어떠한 종류의 보증도 하지 않습니다.

작성자는 본 플러그인의 사용 또는 사용 불능으로 인한 어떠한 손해에 대해서도 일절 책임을 지지 않습니다. 이용은 자기 책임으로 부탁드립니다.

작성자: routersys  /  라이선스: MIT License  /  리포지토리: https://github.com/routersys/YMM4-CombinedEffect


이상