🔹 Open RV 패키지란?
RV에서 키 바인딩, 사용자 정의 메뉴, 자동화 기능 등을 추가하려면 패키지(.rvpkg) 를 만들어야 합니다. 패키지는 Mu 또는 Python 코드를 포함하며, RV에서 쉽게 설치하고 사용할 수 있도록 설계됩니다.
✅ 패키지를 사용하면 가능한 작업
- 단축키 설정: 특정 키를 눌렀을 때 동작 추가
- 사용자 정의 메뉴 생성: RV UI에 새로운 메뉴 추가
- 자동화 기능 구현: RV 동작을 커스터마이징
1️⃣ 간단한 패키지 만들기
패키지를 만들기 위해 Mu 또는 Python을 사용하여 RV 모드를 정의해야 합니다.
🔹 Mu를 사용한 패키지 예제 (mystuff.mu)
use rvtypes;
use extra_commands;
use commands;
module: mystuff {
class: MyStuffMode : MinorMode {
method: MyStuffMode (MyStuffMode;) {
init("mystuff-mode", nil, nil, nil);
}
}
\\: createMode (Mode;) {
return MyStuffMode();
}
}
✅ 위 코드의 역할
- MyStuffMode 클래스를 정의하여 RV 모드를 생성
- init()을 호출하여 RV에서 자동으로 로드되도록 설정
🔹 패키지 메타데이터 파일(PACKAGE) 생성
package: My Stuff
author: M. VFX Artiste
version: 1.0
rv: 3.6
requires: ''
modes:
- file: mystuff
load: immediate
description: |
<p>M. VFX Artiste's Personal RV Customizations</p>
✅ 패키지 메타데이터 역할
- package – 패키지 이름
- author – 작성자 정보
- version – 패키지 버전
- modes – 패키지에서 사용할 Mu 파일 지정
🔹 패키지 파일 생성 (.rvpkg 압축)
zip mystuff-1.0.rvpkg PACKAGE mystuff.mu
✅ 패키지 파일(mystuff-1.0.rvpkg)이 생성됨
2️⃣ 패키지 설치 및 테스트
🔹 RV에 패키지 추가하기
- RV 환경설정(Preferences) → "Packages" 탭으로 이동
- "Add Packages..." 버튼 클릭
- mystuff-1.0.rvpkg 파일을 선택하여 추가
- 패키지를 "설치(install)"하고 "로드(load)" 활성화
✅ RV를 재시작하면 패키지가 정상적으로 로드됨
🔹 패키지 업데이트 방법
- mystuff.mu 파일을 수정
- 패키지 파일 다시 생성
- zip mystuff-1.0.rvpkg PACKAGE mystuff.mu
- RV에서 기존 패키지 삭제 후, 새로운 패키지 추가
3️⃣ 키 바인딩 추가 (재생 속도 조절 기능)
RV에서 특정 키(> 및 <)를 눌렀을 때 재생 속도를 조절하는 기능을 추가할 수 있습니다.
🔹 Mu 코드 예제 (mystuff.mu 수정)
use rvtypes;
use extra_commands;
use commands;
module: mystuff {
class: MyStuffMode : MinorMode {
method: MyStuffMode (MyStuffMode;) {
init("mystuff-mode",
[("key-down-->", faster, "speed up fps"),
("key-down--<", slower, "slow down fps")],
nil, nil);
}
method: faster (void; Event event) {
setFPS(fps() * 1.5);
displayFeedback("%g fps" % fps());
}
method: slower (void; Event event) {
setFPS(fps() * (1.0 / 1.5));
displayFeedback("%g fps" % fps());
}
}
\\: createMode (Mode;) {
return MyStuffMode();
}
}
✅ 위 코드의 기능
- > 키를 누르면 faster() 함수가 호출되어 FPS 증가
- < 키를 누르면 slower() 함수가 호출되어 FPS 감소
- displayFeedback()을 사용하여 현재 FPS를 화면에 표시
4️⃣ 사용자 정의 메뉴 추가
RV의 메뉴바에 "MyStuff" 메뉴를 추가하고, FPS 조절 기능을 메뉴에서 실행할 수 있도록 설정할 수 있습니다.
🔹 Mu 코드 수정 (mystuff.mu)
method: MyStuffMode (MyStuffMode;) {
init("mystuff-mode",
[("key-down-->", faster, "speed up fps"),
("key-down--<", slower, "slow down fps")],
nil,
Menu {
{"MyStuff", Menu {
{"Increase FPS", faster, "="},
{"Decrease FPS", slower, "-"}
}}
});
}
✅ 추가된 메뉴의 기능
- "MyStuff" 메뉴 생성
- "Increase FPS" 클릭 시 faster() 실행
- "Decrease FPS" 클릭 시 slower() 실행
- = 및 `` 키도 사용할 수 있도록 단축키 지정
🔹 Python을 사용한 메뉴 생성 예제
from rv.rvtypes import *
from rv.commands import *
from rv.extra_commands import *
class PyMyStuffMode(MinorMode):
def __init__(self):
MinorMode.__init__(self)
self.init("py-mystuff-mode",
[("key-down-->", self.faster, "speed up fps"),
("key-down--<", self.slower, "slow down fps")],
None,
[("MyStuff",
[("Increase FPS", self.faster, "=", None),
("Decrease FPS", self.slower, "-", None)])])
def faster(self, event):
setFPS(fps() * 1.5)
displayFeedback("%g fps" % fps(), 2.0)
def slower(self, event):
setFPS(fps() * (1.0 / 1.5))
displayFeedback("%g fps" % fps(), 2.0)
def createMode():
return PyMyStuffMode()
✅ Python을 활용하면 Mu 없이도 RV 패키지를 만들 수 있음
5️⃣ 패키지 최종 빌드 및 배포
🔹 최종 패키지 압축
zip mystuff-1.0.rvpkg PACKAGE mystuff.mu
또는 Python 코드 기반 패키지일 경우:
zip mystuff-1.0.rvpkg PACKAGE mystuff.py
🔹 RV에 패키지 추가 및 테스트
- 기존 패키지를 제거하고 새 패키지를 추가
- "Packages" 탭에서 패키지를 설치(install) 및 로드(load)
- RV에서 "MyStuff" 메뉴가 추가되었는지 확인
- > 및 < 키를 눌러 FPS 조절 기능이 동작하는지 테스트
🔹 마무리
✅ Open RV 패키지를 활용하면 다음과 같은 작업이 가능
- 키 바인딩 추가 – 특정 키를 눌렀을 때 동작 수행
- 사용자 정의 메뉴 생성 – RV UI에 새로운 메뉴 추가
- Python 또는 Mu를 활용한 확장 기능 개발
- 자동화 기능 추가 및 커스터마이징 가능
🚀 이제 직접 패키지를 만들어 RV를 커스터마이징해 보세요! 🎯
'RV' 카테고리의 다른 글
Open RV 자동 색상 및 보기 관리 (레퍼런스 매뉴얼 12장 요약) (0) | 2025.02.09 |
---|---|
Open RV 패키지 시스템 가이드 (사용자 매뉴얼 10장 요약) (0) | 2025.02.09 |
Open RV에서 Python 활용하기 (레퍼런스 매뉴얼 4장 요약) (1) | 2025.02.09 |
Open RV에서 OpenColorIO(OCIO) 사용하기 (0) | 2025.02.09 |
Open RV 명령줄 사용법 가이드 (Chapter 3 요약) (0) | 2025.02.09 |