kyohei`s Note
2016年の目標 「コンポジットとエフェクトの仕事をできるようになる」
2016年11月1日火曜日
2016年9月11日日曜日
Houdiniプロシージャルモデリングテクニカルセミナー 2016/8/27
ゲーム関係
●FX
Texture sheetをつかって出す
●煙からMeshを作って、Normalを出す
●Joint animation、Texture based animation
・TextureにTranslate等の情報をBakeする
・Translate(R,G,B)→Texture(R,G,B)
●列がFrame、行がValue
Substance Designer + Houdini
●Houdini用Substanceプラグイン
●Houdini上でパラメーターを調整できる
●Custom Attributeでパラメーター欄を作れる
●Houdini上でパラメーターをいじると、Textureが再生成される
●Unityにデジタルアセットとして読み込み可能
?Hight map、Roughness map
・http://docs.unity3d.com/jp/current/Manual/StandardShaderMaterialParameterHeightMap.html
・http://www.cgradproject.com/archives/3153
トランジスタスタジオ
●Resumple Node
●Normal Node
●UP vectorとNrmalがあると配置しやすい
●ループ、再帰で木や雷を作る
菊池さん
●Outputを2つにする
●HDA
Houdini Digital Asset
●原点にPoint、発生源にPointを作って、雷を走らせる
●HDAを作る時は、Scalableに作ることが大事
・Scalable→Sourceが複数あっても成り立つ
座談会
●Houdiniに限らず、どんなソフトでもUnit scaleは変えない!
●Houdiniはデータ量に気をつけた方がいい
●FX
Texture sheetをつかって出す
●煙からMeshを作って、Normalを出す
●Joint animation、Texture based animation
・TextureにTranslate等の情報をBakeする
・Translate(R,G,B)→Texture(R,G,B)
●列がFrame、行がValue
Substance Designer + Houdini
●Houdini用Substanceプラグイン
●Houdini上でパラメーターを調整できる
●Custom Attributeでパラメーター欄を作れる
●Houdini上でパラメーターをいじると、Textureが再生成される
●Unityにデジタルアセットとして読み込み可能
?Hight map、Roughness map
・http://docs.unity3d.com/jp/current/Manual/StandardShaderMaterialParameterHeightMap.html
・http://www.cgradproject.com/archives/3153
トランジスタスタジオ
●Resumple Node
●Normal Node
●UP vectorとNrmalがあると配置しやすい
●ループ、再帰で木や雷を作る
菊池さん
●Outputを2つにする
●HDA
Houdini Digital Asset
●原点にPoint、発生源にPointを作って、雷を走らせる
●HDAを作る時は、Scalableに作ることが大事
・Scalable→Sourceが複数あっても成り立つ
座談会
●Houdiniに限らず、どんなソフトでもUnit scaleは変えない!
●Houdiniはデータ量に気をつけた方がいい
Nuekセミナーまとめ 2016/8/6
キーイング
・参考
http://cgworld.jp/regular/nuke010.html
●IBK
・Image based keying
http://help.thefoundry.co.uk/nuke/8.0/content/getting_started/tutorial3/image_based_keying.html
・https://compositingmentor.com/2014/07/19/advanced-keying-breakdown-alpha-1-4-ibk-stacked-technique/
●Conpositiong Mentor
https://compositingmentor.com/2014/07/19/advanced-keying-breakdown-alpha-1-4-ibk-stacked-technique/
●A、Bの2点で値を評価するツール
自作らしい。
どういうものだったか忘れてしまった・・・
●dispill、kyelightを使う
●light wrapをとる
髪の毛用、エッジ部分の調整
●logkeyer
●Roto animationをつける時は、copyでoriginalを引っ張ってくる
軽くていいらしい
インテグレーション(なじませ)
●Base compを作っておくといいみたい
●Light wrap、Edge、色収差など
●マイナス値があるとCompしにくい
●Grainがある状態でBlackをとらないと合わない
●Expression NodeでR、G、B合わせたアルファを作る
●Normal passとRelight Nodeを使って、アルファをとる
SQEX Kings graveメイキング
●BBC
色域 D65
●AOV
Arbitrary Output Variables
レンダーパスのこと
http://takumikim.blogspot.jp/2014/01/blog-post.html
座談会
●簡易的なHDR
・Theta s
http://www.ricoh-imaging.co.jp/japan/products/theta_s/
●チェックは「RV」か「Hiero」
●露出アンダーにしても、画がなりたつかチェック
・参考
http://cgworld.jp/regular/nuke010.html
●IBK
・Image based keying
http://help.thefoundry.co.uk/nuke/8.0/content/getting_started/tutorial3/image_based_keying.html
・https://compositingmentor.com/2014/07/19/advanced-keying-breakdown-alpha-1-4-ibk-stacked-technique/
●Conpositiong Mentor
https://compositingmentor.com/2014/07/19/advanced-keying-breakdown-alpha-1-4-ibk-stacked-technique/
●A、Bの2点で値を評価するツール
自作らしい。
どういうものだったか忘れてしまった・・・
●dispill、kyelightを使う
●light wrapをとる
髪の毛用、エッジ部分の調整
●logkeyer
●Roto animationをつける時は、copyでoriginalを引っ張ってくる
軽くていいらしい
インテグレーション(なじませ)
●Base compを作っておくといいみたい
●Light wrap、Edge、色収差など
●マイナス値があるとCompしにくい
●Grainがある状態でBlackをとらないと合わない
●Expression NodeでR、G、B合わせたアルファを作る
●Normal passとRelight Nodeを使って、アルファをとる
SQEX Kings graveメイキング
●BBC
色域 D65
●AOV
Arbitrary Output Variables
レンダーパスのこと
http://takumikim.blogspot.jp/2014/01/blog-post.html
座談会
●簡易的なHDR
・Theta s
http://www.ricoh-imaging.co.jp/japan/products/theta_s/
●チェックは「RV」か「Hiero」
●露出アンダーにしても、画がなりたつかチェック
2016年3月22日火曜日
フレーム移動スクリプト
アニメーション作業中にフレームの計算が面倒なので、スクリプト化しました。
●add frame
入力した数字分だけ、フレームがプラス方向に移動します。
●minus frame
入力した数字分だけ、フレームがマイナス方向に移動します。
●start frame
中間フレームを求めるための、始めのフレームをセットします。
●end frame
中間フレームを求めるための、終わりのフレームをセットします。
●intermidiate frame
start frame、end frameで入力されたフレームの中間フレームに移動します。
フレーム間が奇数だった場合は、小数点切り捨ての値になります。
例)start frame「10f」、end frame「19f」の場合、「14f」に移動します。
●スクリプト(Python)
################################################################
#
# [name]Set various frame
# [function]add frame, minus frame, culculate intermidiate frame
# [note]if result value is odd, result value round down.
#
# [author]Kyohei Ueno(heikyonoeu.blogspot.jp)
#
################################################################
import maya.cmds as mc
###set current frame in start frame###
def setStaFCurFrame():
curF = mc.currentTime(q=1)
mc.textFieldButtonGrp('staF_fld',edit=1,tx=curF)
###set current frame in end frame###
def setEndFCurFrame():
curF = mc.currentTime(q=1)
mc.textFieldButtonGrp('endF_fld',edit=1,tx=curF)
###set intermidiate frame###
def setIntermidiateFrame():
staF = float(mc.textFieldButtonGrp('staF_fld',q=1,tx=1))
endF = float(mc.textFieldButtonGrp('endF_fld',q=1,tx=1))
intmF = int((endF - staF) / 2)
intmF_result = int(staF + intmF)
mc.textFieldButtonGrp('intm_fld',edit=1,tx=intmF_result)
mc.currentTime(intmF_result)
###add frame###
def addFrame():
a = float(mc.currentTime(q=1))
b = float(mc.textFieldButtonGrp('addFrame',q=1,tx=1))
c = a + b
mc.currentTime(c)
###minus frame###
def minusFrame():
a = float(mc.currentTime(q=1))
b = float(mc.textFieldButtonGrp('minusFrame',q=1,tx=1))
c = a - b
mc.currentTime(c)
###window###
if mc.window('setVariousFrame',ex=1):
mc.deleteUI('setVariousFrame')
mc.window('setVariousFrame',t='Set various frame',s=0)
mc.columnLayout()
mc.rowLayout(nc=2)
mc.textFieldButtonGrp('addFrame',l='add frame',bl='set',tx=0,cw3=(60,50,30),bc=addFrame)
mc.textFieldButtonGrp('minusFrame',l='minus frame',bl='set',tx=0,cw3=(60,50,30),bc=minusFrame)
mc.setParent('..')
mc.rowLayout(nc=3)
mc.textFieldButtonGrp('staF_fld',l='start frame',bl='set',cw3=(60,50,30),bc=setStaFCurFrame)
mc.textFieldButtonGrp('endF_fld',l='end frame',bl='set',cw3=(60,50,30),bc=setEndFCurFrame)
mc.textFieldButtonGrp('intm_fld',l='intermidiate frame',bl='set',cw3=(95,50,30),bgc=(1,0.443,0),bc=setIntermidiateFrame)
mc.showWindow()
●add frame
入力した数字分だけ、フレームがプラス方向に移動します。
●minus frame
入力した数字分だけ、フレームがマイナス方向に移動します。
●start frame
中間フレームを求めるための、始めのフレームをセットします。
●end frame
中間フレームを求めるための、終わりのフレームをセットします。
●intermidiate frame
start frame、end frameで入力されたフレームの中間フレームに移動します。
フレーム間が奇数だった場合は、小数点切り捨ての値になります。
例)start frame「10f」、end frame「19f」の場合、「14f」に移動します。
●スクリプト(Python)
################################################################
#
# [name]Set various frame
# [function]add frame, minus frame, culculate intermidiate frame
# [note]if result value is odd, result value round down.
#
# [author]Kyohei Ueno(heikyonoeu.blogspot.jp)
#
################################################################
import maya.cmds as mc
###set current frame in start frame###
def setStaFCurFrame():
curF = mc.currentTime(q=1)
mc.textFieldButtonGrp('staF_fld',edit=1,tx=curF)
###set current frame in end frame###
def setEndFCurFrame():
curF = mc.currentTime(q=1)
mc.textFieldButtonGrp('endF_fld',edit=1,tx=curF)
###set intermidiate frame###
def setIntermidiateFrame():
staF = float(mc.textFieldButtonGrp('staF_fld',q=1,tx=1))
endF = float(mc.textFieldButtonGrp('endF_fld',q=1,tx=1))
intmF = int((endF - staF) / 2)
intmF_result = int(staF + intmF)
mc.textFieldButtonGrp('intm_fld',edit=1,tx=intmF_result)
mc.currentTime(intmF_result)
###add frame###
def addFrame():
a = float(mc.currentTime(q=1))
b = float(mc.textFieldButtonGrp('addFrame',q=1,tx=1))
c = a + b
mc.currentTime(c)
###minus frame###
def minusFrame():
a = float(mc.currentTime(q=1))
b = float(mc.textFieldButtonGrp('minusFrame',q=1,tx=1))
c = a - b
mc.currentTime(c)
###window###
if mc.window('setVariousFrame',ex=1):
mc.deleteUI('setVariousFrame')
mc.window('setVariousFrame',t='Set various frame',s=0)
mc.columnLayout()
mc.rowLayout(nc=2)
mc.textFieldButtonGrp('addFrame',l='add frame',bl='set',tx=0,cw3=(60,50,30),bc=addFrame)
mc.textFieldButtonGrp('minusFrame',l='minus frame',bl='set',tx=0,cw3=(60,50,30),bc=minusFrame)
mc.setParent('..')
mc.rowLayout(nc=3)
mc.textFieldButtonGrp('staF_fld',l='start frame',bl='set',cw3=(60,50,30),bc=setStaFCurFrame)
mc.textFieldButtonGrp('endF_fld',l='end frame',bl='set',cw3=(60,50,30),bc=setEndFCurFrame)
mc.textFieldButtonGrp('intm_fld',l='intermidiate frame',bl='set',cw3=(95,50,30),bgc=(1,0.443,0),bc=setIntermidiateFrame)
mc.showWindow()
登録:
投稿 (Atom)