Skip to content

Instantly share code, notes, and snippets.

Tai Komatsu taikomatsu

View GitHub Profile
@taikomatsu
taikomatsu / assign_mat.py
Created Jun 12, 2020
Assign a material to selected objects in Blender
View assign_mat.py
# reference:
# https://blender.stackexchange.com/questions/23433/how-to-assign-a-new-material-to-an-object-in-the-scene-from-python
import bpy
mat = bpy.data.materials.get('my_material')
for o in bpy.context.selected_objects:
if o.data.materials:
ob.data.materials[0] = mat
else:
o.data.materials.append(mat)
View carve_each_curves.vfl
// carveする値。ここにバラバラの値を入れればバラバラにcarveも可能。
float carve = fit(f@Frame, 1, 24, 1, 0);
int pts[] = primpoints(0, i@primnum);
// carve後のcurveのポイントを保持する配列
int newpts[] = {};
foreach (int pt; pts) {
float u = point(0, "curveu", pt);
// carveの向きはここの条件やcarveの変化を変えればOK
if (u<carve)
removepoint(0, pt);
View convert_hdri_to_png.py
import os
import os.path
import imageio
import numpy as np
from PIL import Image
# .hdrや.exrなど、読み込む際にfreeimageを使う必要があるフォーマット用にfreeimageをダウンロードしてくれるらしい
imageio.plugins.freeimage.download()
def list_hdri(dirname):
@taikomatsu
taikomatsu / display_hdr_qt.py
Created May 29, 2019
Display hdr using PySide2
View display_hdr_qt.py
from PySide2 import QtWidgets, QtGui
from PySide2 import QtCore
import sys
import imageio
import numpy as np
from PIL import Image, ImageQt
imgpath = 'myhdri.hdr'
imageio.plugins.freeimage.download()
img = imageio.imread(imgpath)
View displayhdr.py
import numpy as np
import imageio
from PIL import Image
import matplotlib.pyplot as plt
# imageioで画像を読み込み
imgpath = 'myhdri.hdr'
imageio.plugins.freeimage.download()
img = imageio.imread(imgpath)
@taikomatsu
taikomatsu / readhdr.py
Created May 27, 2019
Read hdr using imageio
View readhdr.py
import imageio
imgpath = 'myhdri.hdr'
# freeimageがインストールされていないシステムでも以下の一行を実行すればHDRが読める
imageio.plugins.freeimage.download()
img = imageio.imread(imgpath)
# 画像サイズも確認可能
print(img.shape)
@taikomatsu
taikomatsu / bias_gain_short.vfl
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);
@taikomatsu
taikomatsu / bias_gain.vfl
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;
}
@taikomatsu
taikomatsu / easy_angle_difference_detection.py
Created Apr 13, 2018
超手抜き版エッジから正しいポジションを復元させるやーつ。任意の軸とエッジ(2点)の角度の差をdegreeでなんとなく取得する。
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))))
@taikomatsu
taikomatsu / check_dynArray_value.py
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):
You can’t perform that action at this time.