Skip to content

Instantly share code, notes, and snippets.

View baku89's full-sized avatar
🍡

Baku 麦 baku89

🍡
View GitHub Profile
@baku89
baku89 / fader.js
Created December 27, 2013 14:14
一定時間かけて直前のキーフレームの値にアニメーションします。F.I F.Oを繰り返す時などに使えます。 duration: アニメーションの長さ
var duration = 1;
if (thisProperty.numKeys < 2) {
value
} else {
var pk = nearestKey(time);
(pk.index > 1 && time < pk.time) ? pk = thisProperty.key(pk.index-1) : false;
if (time - pk.time < duration && pk.index > 1) {
ease(time, pk.time, pk.time+duration, thisProperty.key(pk.index-1).value, pk.value);
} else {
@baku89
baku89 / opacity.js
Last active August 29, 2015 13:56
プレゼン映像のタイトルや吹き出し・矢印など、繰り返し使うようなアニメーションを "_SETTINGS"というコンポジションの中にまとめて宣言して、 レイヤーのインポイントから自動的にアニメーションが開始されるように設定
// opacity
type = "opacity_fade_in";
try {
v = comp("_SETTINGS").layer(type).transform.opacity.valueAtTime(time - thisLayer.inPoint);
} catch(err) {
v = value
}
v
@baku89
baku89 / anime-remap.js
Created March 4, 2014 03:33
アニメの簡単なリマップ編集用です。タイムリマップにペーストして使います。レイヤーマーカーを用いて指定フレーム間の再生やループができます。
var params = {
'in': [0, 44, false],
'loop': [45, 134, true],
'out': [135, 195, false]
};
// ------------
if (marker.numKeys) {
var pm = marker.nearestKey(time);
if (pm.index == 1 && time < pm.time) {
@baku89
baku89 / GLSL-segmentDistance
Created December 17, 2014 07:48
点と線分の距離を算出. 直線の描画に使える
float lineSegDistance( vec2 p, vec2 l1, vec2 l2) {
float a2 = pow( distance(l1, p), 2.0 );
float b2 = pow( distance(l2, p), 2.0 );
float c = abs( distance(l1, l2) );
float c2 = c * c;
if ( a2 + c2 < b2 || b2 + c2 < a2 ) {
return 10000000000000000000.0;
}
@baku89
baku89 / easing-clone-size-gradually.py
Last active September 27, 2016 13:50
C4D Python Effector: Easing new clone's size gradually when cloner's count changed
import c4d
from c4d.modules import mograph as mo
prevCnt = 0
def main():
global prevCnt
md = mo.GeGetMoData(op)
if md==None: return False
@baku89
baku89 / OSX Example
Last active September 1, 2016 11:39 — forked from rc1/OSX Example
Command line arguments in openFrameworks
open -n ./emptyExampleDebug.app/ --args --myargs 1 2 3 4
@baku89
baku89 / Python Tag
Last active September 27, 2016 13:53
C4D: Make only nth child object visible
# Add User Data (ID=1) as Integer
# In python tag
def main():
b = op.GetObject()
idx = b[c4d.ID_USERDATA,1]
children = b.GetChildren()
for i, c in enumerate(children):
v = 2 if idx == i else 1
@baku89
baku89 / post.coffee
Created April 20, 2015 05:20
Capturing canvas as png sequence
# canvas will be exported to "./export/test/test000089.png"
canvas = document.cleateElement('canvas')
# draw something on canvas..
# post
$.ajax
type: "POST"
url: './save.php'
@baku89
baku89 / keyframe-software.md
Last active August 29, 2015 14:21
キーフレームを打つための汎用ツールがほしい

キーフレームを打つための汎用ツールがほしい

インタラクティブとかフィジカル・コンピューティング周りで、キーフレームアニメーション作りたいなーってケースが最近増えてきた。

ジェネ系の作品って、ダタのガンマカーブやcubic-bezierのアニメーションが多かったりして、全然モーションに気を配ってないなって思うこと多い。だから、AEとかC4Dみたいな感覚でアニメーションの試行錯誤ができるようになったらもっとジェネ表現は気持ちよくなる気がする。

例えばoFだと、ofxTimelineがあったりするけど、もっと汎用性の高い、キーフレームアニメーションを打つ専用のスタンドアローンアプリがほしい。

  • 対数グラフが使える (一定速度でのスケール等に使える)
@baku89
baku89 / osc-with-c4d.py
Last active November 14, 2017 18:46
OSC with C4D
# Dependencies
# pyOSC: https://pypi.python.org/pypi/pyOSC
# SimpleOSC: http://www.ixi-audio.net/content/body_backyard_python.html
# SimpleOSC is wrapper of pyOSC indeed. So this code might be able to be written much briefly.
import c4d
import SimpleOSC as osc
from OSC import OSCClient, OSCMessage
oscToNW = None