{{ message }}

Instantly share code, notes, and snippets.

# Tai Komatsutaikomatsu

Last active Apr 19, 2019
bias & gain for VEX short ver
View bias_gain_short.vfl
 float bias(float b; float x) { return pow(x, log(b)/log(0.5)); } float gain(float g; float x) { return (x<0.5) ? bias(1-g, 2*x)*.5 : 1-bias(1-g, 2-2*x)*.5; } // usage example float x = v@P.x; //v@P.y = bias(0.8, x);
Last active Jan 22, 2019
bias & gain for VEX
View bias_gain.vfl
 float bias(float b; float x) { return pow(x, log(b)/log(0.5)); } float gain(float g; float x) { if (x<0.5) return bias(1-g, 2*x)/2; else return 1-bias(1-g, 2-2*x)/2; }
Created Apr 13, 2018

View easy_angle_difference_detection.py
 from pymel.core import * import math pt0, pt1 = selected(fl=True) p0 = dt.Vector(xform(pt0, q=True, ws=True, t=True, a=True)) p1 = dt.Vector(xform(pt1, q=True, ws=True, t=True, a=True)) diff = p0-p1 axis = dt.Vector(0, 0, 1) print(math.degrees(math.acos(diff.normal().dot(axis))))
Last active Dec 20, 2017
dynamic attributeの値をチェックする。主にSOuPやMash使ってる時用かも。
View check_dynArray_value.py
 # とりあえず大急ぎで書いてる # あれこれ書き方忘れてたので参考ページもメモ # https://area.autodesk.jp/column/tutorial/maya_atoz/attribute_plug/ # http://ianwaters.co.uk/wp/mash/accessing-mash-point-data-with-the-maya-api/ from maya import OpenMaya import pymel.core as pm def mdg_from_name(name):
Created Oct 9, 2017
Convert AOV from Focal Length / Focal Length from AOV (Maya)
View convert_focal_aov.py
 # Mayaで諸事情によりカメラスケール使えなかった時用に調べて書いた # degreeとmmで計算してます import math def focal_to_aov(focal, aperture): ''' focal: focal length aperture: horizontal aperture (mm) '''
Created Apr 25, 2017
Remove expressions from file knob on all Reads in Nuke.
View remove_filepath_expression.py
 import nuke import os.path reads = nuke.allNodes('Read') err_cnt = 0 for i, r in enumerate(reads): raw = r.knob('file').getValue() evaluated = r.knob('file').getEvaluatedValue() full_path = '{}/{}'.format(os.path.dirname(evaluated), os.path.basename(raw)) try:
Created Apr 10, 2017
H16 PySide2 easy example
View pyside2_test.py
 import hou from PySide2 import QtWidgets class MainWindow(QtWidgets.QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.construct_ui() def construct_ui(self): self.setWindowTitle('PySide2 Test')
Created Jan 11, 2017
View move_to_rop.py
 # filecache SOPにボタンを追加して、そのボタンのCallback Scriptに登録して使う # filecacheと同名のropにジャンプする # ジャンプした際、対象のropは選択状態になっている node = hou.pwd() out_node = '/out/{}'.format(node.name()) hou.hscript('panepath -f {}'.format(out_node)) hou.node(out_node).setSelected(1)
Last active Jan 10, 2017
Create clone cameras for data exchanging with other DCC apps.
View bakecam.py
 # Houdiniにカメラを持っていく用に、値をbakeしてシンプルなデータにするための処理を自動化。 # 一応複数対応してる感じで書いてるけど、あんまり想定してないしテストもしていないｗ # filmoffsetに関して、アニメーションの再接続をしているもののこれもそのままは持っていけないので一応やってるだけ。 # bakeするレンジはtime sliderに準拠する。 from pymel.core import * cams = [] for o in selected(): new_cam = duplicate(o, rr=True)[0]
Created Nov 28, 2016
extend curve (vex)
View extend_curve.vfl
 // curveの先端を接線（というか隣のポイントとの差分）を使って伸ばす vector p0 = point(0, "P", 0); vector p1 = point(0, "P", 1); vector np0 = point(0, "P", i@numpt-1); vector np1 = point(0, "P", i@numpt-2); vector tan_in = normalize(p0-p1); vector tan_out = normalize(np0 - np1); float ext = ch("ext"); addpoint(0, p0+tan_in*ext);
You can’t perform that action at this time.