Houdini에서 그라데이션 선택기를 구현하는 방법
소개
요 전날, PySide 연구회 에서 안도씨가 발표한 Substance Designer와 같은 그라데이션 피커를 Houdini에 구현하는 방법을 소개합니다.
안도 씨의 그라데이션 피커 소개, 해설 기사
실제로 사용하면 아래 그림과 같이 램프 파라미터에 피커로 주운 그라데이션이 적용됩니다.
아래 그림은 네트워크 에디터에 화상을 읽고 있습니다만, 화면내이면 어디서나 색을 취득할 수 있습니다.
구현 방법
h tps : // s ぺ ts. 카치 r. 이오 / s 닛페 t / 2c7496d1d bdc093033c
모르는 경우는
%HOMEDRIVE%%HOMEPATH%\Documents\houdiniバージョン\scripts\python
에 복사하면 자동으로 인식됩니다 (폴더가 없는 경우는 작성합니다). HDA의 Type Properties > Scripts 탭으로 이동하여 Event Handler를 Python Module로 변경합니다.
그러면 오른쪽의 파이썬 코드 필드가 활성화되므로 아래의 램프 매개 변수에 그라데이션을 적용하는 코드를 입력합니다.
Houdini 메뉴에서 Windows > Python Source Editor를 클릭하고 Python Source Editor를 시작하고 코드 입력란에 아래의 램프 파라미터에 그라데이션을 적용하는 코드를 입력합니다.
램프 파라미터에 그라데이션을 적용하는 코드
# -*- coding: utf-8 -*-
import hou
from PySide2.QtCore import Qt
from gradationPicker import ColorPick
class _GCProtector(object):
widgets = []
def rampColorPicker(parm, threshold=0.05):
def setRampColor(colors):
# 引数のcolorsは[グラデーションの位置, 色]が入ったリスト
curveKeys = []
curveValues = []
# 二次元のリストをcurveKeys、curveValuesの二つに分ける
for pos, color in colors:
curveKeys.append(pos)
# PySideの色空間がsRGBで、Houdiniはリニアなので、2.2乗して変換
curveValues.append([(ch / 255.0) ** 2.2 for ch in color])
linears = [hou.rampBasis.Linear] * len(colors)
ramp = hou.Ramp(linears, curveKeys, curveValues)
parm.set(ramp)
picker = ColorPick()
# フォーカスが移らないように最前面に表示
picker.setWindowFlags(Qt.WindowStaysOnTopHint)
# どれぐらい色の差を識別するかのしきい値を設定
picker.threshold = threshold
# ピッカーのメインウィンドウをスクリーン全体に表示する
picker.showFullScreen()
# マウスを離した時に関数を実行する
picker.getGradation.connect(setRampColor)
# 普通に表示するとメモリを開放してすぐに消えてしまうのを回避する処理
_GCProtector.widgets.append(picker)
4. 마지막으로 이 코드를 실행하기 위한 버튼을 작성합니다.
5. 작성한 버튼의 Callback Script란에 아래 코드를 입력합니다.
hou.phm().rampColorPicker(kwargs['node'].parm('ramp'), threshold=0.05)
hou.session.rampColorPicker(kwargs['node'].parm('ramp'), threshold=0.05)
※
parm('ramp')
의 개소는 대상으로 하는 램프 파라미터의 이름으로 변경해 주십시오.threshold의 값은 숫자가 낮을수록 정밀도가 높아지지만 그만큼 키가 늘어납니다.
버튼에 아이콘을 설정하려면 Button Icon 필드에 BUTTONS_secondary_colors를 입력하면 같은 아이콘이 표시됩니다.
이제 버튼을 누르면 그라데이션 피커 모드가되므로 드래그하여 색상을 선택해보십시오.
마지막으로
이상 그라데이션 피커를 Houdini에 구현하는 방법이었습니다.
PySide는 여러가지가 되어 즐겁네요.
덧붙여서 그라데이션 피커를 개변하는 것으로 아래와 같은 램프 파라미터의 커브를 필기로 쓰는 기능을 만들 수도 있습니다.
Reference
이 문제에 관하여(Houdini에서 그라데이션 선택기를 구현하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/d658t/items/73fe50e90ab8c6617015
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Houdini에서 그라데이션 선택기를 구현하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/d658t/items/73fe50e90ab8c6617015텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)