ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • FxPlug 개발 환경 세팅하기
    Apple🍎/FxPlug 2025. 4. 20. 18:19

    💡시작 전  Plug-ins 이란? 

    플러그인은 확장 기능으로써 Final Cut Pro나 Motion같은 Host Application의 기능을 확장하는 추가 소프트웨어입니다. 

    Host Application?
    호스트 어플리케이션이란 플러그인이 실행되는 기반이 되는 소프트웨어를 의미합니다. 플러그인은 독립적으로 실행될 수 없으며, 항상 호스트 어플리케이션 내에서 작동합니다. 

     

    Final Cut Pro는 Apple의 전문 비디오 편집 소프트웨어로, 주로 다음 목적을 가집니다.

    • 비디오 편집 및 시퀀싱
    • 전체 프로젝트 관리
    • 타임라인 기반 작업
    • 최종 출력 및 내보내기

    Motion은 모션 그래픽 제작 도구로, 주요 목적은 다음과 같습니다.

    • 애니메이션 및 모션 그래픽 제작
    • 시각 효과 생성
    • 타이틀 및 텍스트 애니메이션 제작
    • 효과 및 트랜지션 템플릿 제작

    두 소프트웨어의 관계

    Final Cut Pro와 Motion은 상호 보완적인 관계를 가지고 있습니다.

    1. 워크플로우 분담: Final Cut Pro는 편집 중심, Motion은 그래픽 및 효과 중심입니다.
    2. 템플릿 시스템: Motion에서 만든 그래픽, 효과, 트랜지션 등을 템플릿 형태로 Final Cut Pro에서 사용할 수 있습니다.
    3. 통합 에코시스템: Apple은 두 소프트웨어가 함께 작동하는 통합 워크플로우를 구축했습니다.

     

     

    FxPlugin의 연결 방식

    FxPlugin(효과 플러그인)이 이 두 소프트웨어와 연결되는 방식은 각 소프트웨어의 목적과 관계를 반영합니다.

    1. Motion에서의 FxPlugin
      • 플러그인을 직접 로드하고 사용할 수 있습니다.
      • 효과 생성 및 테스트가 가능합니다.
      • 플러그인의 모든 매개변수와 기능에 직접 접근할 수 있습니다.
      • 이는 Motion이 효과 제작 도구이기 때문에 자연스러운 워크플로우입니다.
    2. Final Cut Pro에서의 FxPlugin
      • 직접 플러그인을 사용하지 않고 템플릿으로 감싸야 합니다.
      • 이 과정은 보통 Motion에서 이루어집니다: Motion에서 플러그인을 사용해 효과 템플릿을 만들고, 이 템플릿을 Final Cut Pro에서 사용합니다.
      • 템플릿은 편집자가 필요한 주요 매개변수만 노출시키고, 나머지는 숨깁니다.
      • 이는 Final Cut Pro가 편집 중심 소프트웨어이기 때문에, 복잡한 효과 매개변수보다는 편집 워크플로우에 집중할 수 있게 해줍니다.
    3. macOS 시스템과의 상호작용
      • 플러그인이 올바르게 설치되면 macOS는 이를 자동으로 인식합니다.
      • Motion은 직접 플러그인에 접근합니다.
      • Final Cut Pro는 Motion에서 만든 템플릿을 통해 간접적으로 플러그인에 접근합니다.

    이러한 구조는 각 소프트웨어의 전문화된 목적을 존중하면서도, 통합된 워크플로우를 제공합니다. 효과 개발자는 Motion에서 직접 작업하고, 편집자는 Final Cut Pro에서 템플릿을 통해 이러한 효과를 쉽게 사용할 수 있습니다.

    ✅ 1. 개발 전 요구사항 확인하기 

    Xcode 15 이상
    Final Cut Pro 10.6.6 이상
    Motion 5.6.4
    Apple Developer 계정 SDK 다운로드시 필요
    • 2025년도 4월 21일 기준 

    📦 2. FxPlug SDK 다운로드

    아래 공식 Documentaion에서 FxPlug SDK를 다운 받을 수 있습니다. 

     

    Setting up for FxPlug development | Apple Developer Documentation

    Download and install the required software to develop FxPlug plug-ins.

    developer.apple.com

    🧪 3. FxPlug 프로젝트 생성

    FxPlug SDK를 다운 받으면 Xcode에서 프로젝트 생성시 macOS에 FxPlug4 템플릿이 추가된 것을 확인할 수 있습니다. 

    템플릿으로 기본 플러그인 생성하기

    1. Xcode를 실행하고 "Create a new Xcode project"를 선택한 후 FxPlug 4 템플릿을 선택합니다.
    2. 템플릿 창에서 macOS 카테고리를 선택하고 FxPlug 4 템플릿을 찾아 선택한 후 Next를 클릭합니다.
    3. 플러그인의 제품 이름(예: MyPlug-in)을 입력하고, Team은 None으로 설정하며, 조직 ID(예: com.mycompany) 등의 옵션을 설정합니다. Objective-C 또는 Swift를 선택하고 Next를 클릭합니다.
    4. 프로젝트 위치를 지정하고 Create를 클릭합니다. 이 템플릿은 밝기 필터 FxPlug 플러그인 프로젝트를 생성합니다.
    5. Xcode 편집기 툴바에서 "Wrapper Application"이 선택된 스키마인지 확인한 후 빌드 및 실행 버튼(►)을 클릭합니다.

    FxPlug 설치 번들을 실행하면 Xcode에서 FxPlug 템플릿을 사용할 수 있게 됩니다. 이 템플릿은 미리 구성된 인터페이스, 소스 코드 파일 및 Metal 렌더러를 포함하고 있어 Swift나 Objective-C로 밝기 조정용 기본 필터 플러그인을 만들 수 있습니다. 기본 밝기 플러그인이 작동하면 이를 수정하여 원하는 기능의 플러그인으로 발전시킬 수 있습니다.

     

    템플릿을 통해 생성된 프로젝트를 보면 Plugin폴더와 Wrapper Application 폴더가 구분되있는 것을 볼 수 있습니다. 

    Plugin 폴더 

    플러그인 폴더는 실제 FxPlug 플러그인의 코드와 리소스를 포함하는 XPC 서비스입니다. 

     

    XPC 서비스란?

    XPC(Cross Process Communication)는 macOS에서 제공하는 프로세스 간 통신 기술입니다. 이는 애플이 macOS와 iOS 운영 체제에서 안전하고 효율적인 프로세스 간 통신을 위해 설계한 메커니즘입니다.

    XPC의 주요 특징과 목적은 다음과 같습니다.

    1. 보안 강화
      • 각 XPC 서비스는 별도의 프로세스로 실행되어 샌드박스 내에서 동작합니다.
      • 메인 애플리케이션과 분리되어 있어, 서비스에 문제가 생겨도 전체 애플리케이션이 충돌하지 않습니다.
    2. 안정성 개선
      • 특정 서비스가 충돌하더라도 자동으로 재시작될 수 있습니다.
      • 메모리 누수나 성능 문제가 메인 애플리케이션에 영향을 주지 않습니다.
    3. 권한 분리
      • 각 XPC 서비스는 필요한 최소한의 시스템 권한만 가질 수 있습니다.
      • 보안 취약점의 영향 범위를 최소화합니다.

    FxPlug 플러그인 시스템에서 XPC의 역할

    1. 호스트 애플리케이션과 플러그인 분리
      • Final Cut Pro나 Motion 같은 호스트 애플리케이션은 별도의 프로세스에서 실행되는 플러그인과 XPC를 통해 통신합니다.
      • 이를 통해 플러그인 오류가 호스트 애플리케이션 전체에 영향을 주지 않습니다.
    2. 리소스 관리
      • 각 플러그인은 독립적인 프로세스에서 실행되므로 자원 사용을 효율적으로 관리할 수 있습니다.
      • 사용하지 않는 플러그인은 메모리에서 해제될 수 있습니다.
    3. 인터페이스 정의
      • XPC는 명확한 인터페이스를 통해 통신하므로, 호스트 애플리케이션과 플러그인 간의 계약이 잘 정의됩니다.
      • 이는 API 안정성을 높이고 버전 호환성 문제를 줄입니다.

    FxPlug 템플릿에서 생성된 프로젝트에서 Plugin 폴더는 XPC 서비스로 구현되어 있습니다. Info.plist 파일을 보면 XPC 관련 설정이 포함되어 있으며, 이를 통해 플러그인이 호스트 애플리케이션과 분리된 프로세스에서 실행될 수 있게 합니다.

    요약하면, XPC는 FxPlug 플러그인이 Final Cut Pro나 Motion과 같은 호스트 애플리케이션과 안전하게 통신할 수 있게 해주는 핵심 기술입니다. 이를 통해 플러그인은 독립적인 프로세스로 실행되며, 호스트 애플리케이션의 안정성에 영향을 주지 않으면서 고성능 이미지 처리 작업을 수행할 수 있습니다.

    Wrapper Applilcation 폴더 

    Wrapper Application은 플러그인을 macOS에 등록하기 위한 호스트 애플리케이션입니다.

     

    왜 Wrapper(레퍼런스) 애플리케이션이 필요한가?

    이 단계는 FxPlug 개발 환경이 제대로 설정되었는지 확인하고, macOS가 플러그인을 찾아 Motion과 Final Cut Pro에서 사용할 수 있도록 등록하기 위한 것입니다. Wrapper 애플리케이션이 별도로 있는 이유는

    1. 플러그인 등록: macOS에 플러그인을 등록하기 위한 메커니즘을 제공합니다.
    2. 초기 검증: 플러그인이 기본적인 수준에서 작동하는지 확인합니다.
    3. 디버깅 환경: 플러그인 개발 과정에서 디버깅을 용이하게 합니다.

    Xcode가 빌드를 성공적으로 완료하면 플러그인의 Wrapper 애플리케이션이 실행됩니다. 단 한 번만 실행하면 macOS에 FxPlug 플러그인으로 등록되므로, 이후에는 앱을 실행할 필요가 없습니다.

    🔉4. Motion에서 플러그인 테스트하기

    템플릿 플러그인을 성공적으로 빌드하고 실행한 후에는 Motion 프로젝트에 적용하여 효과를 확인할 수 있습니다.

    1. Motion을 실행하고 Project Browser에서 새 프로젝트를 생성하거나 File > New를 선택합니다.
    2. Motion 프로젝트에 콘텐츠를 추가합니다. 템플릿 플러그인은 필터이므로 적용할 콘텐츠가 필요합니다. Library 창에서 Generators를 클릭한 다음 Checkerboard를 선택합니다. Checkerboard 생성기를 Motion의 캔버스로 드래그합니다.
    3. 2단계에서 생성한 Checkerboard 생성기가 여전히 선택된 상태에서 새로 생성한 플러그인을 적용합니다. Motion의 Library로 이동하여 Filters를 선택하고, Xcode로 빌드한 필터 이름을 검색하여 선택한 다음 Apply를 클릭합니다.
    4. 플러그인의 매개변수를 테스트합니다. Inspector 창의 Filters 창에서 필터와 사용 가능한 매개변수를 볼 수 있습니다. Brightness 매개변수를 조정하여 캔버스의 이미지에 미치는 영향을 확인합니다.

    플러그인 개발 흐름 정리 

    1. 초기 설정: FxPlug 템플릿으로 프로젝트 생성
    2. Wrapper 앱 실행: 플러그인을 macOS에 등록
    3. 플러그인 테스트: Motion이나 Final Cut Pro에서 플러그인 적용 및 테스트
    4. 커스터마이징: Xcode 프로젝트를 수정하고 다시 컴파일
    5. 재테스트: 변경 사항을 확인하기 위해 호스트 앱(Motion/Final Cut Pro)을 다시 실행

     

     

    Building an FxPlug plug-in from an Xcode template | Apple Developer Documentation

    Create a plug-in in Xcode with the FxPlug template.

    developer.apple.com

    'Apple🍎 > FxPlug' 카테고리의 다른 글

    🎬 FxPlug란 무엇인가?  (0) 2025.04.19

    댓글

Designed by Tistory.