2015年6月25日木曜日

Juicebox Animation その3

Juiceboxを使ったアニメーションが完成しました。
作業時間は、アニメーション部分だけで約9時間。

●Blocking


Juicebox runningHighJump blocking from Kyohei on Vimeo.

●Finish


juiceboxAnimationRunningHighJump from Kyohei on Vimeo.


●Comment
Good point
・上手くできた!ような気がする。
・助走のところは良い。
・ストローによってキャラクター感を表現できたかな。

Bad point
・ジャンプがいまいちか。もっと、飛ぶために力をためるようにした方がいいかも。
・今更だが、レイアウトが悪い気がする。
 このアングルだと、キャラの動きが手前~奥にしか動かないから、動いている感がない。
 シルエットに変化がないのも、動きが感じられない原因かも。
・時間がかかり過ぎた。今後は作業時間も気にしながらアニメーションをつける。
 ダラダラやるのは、良くない!

・今後はシルエットにも気を配る。
・レイアウトの段階で、どう見えるをもっと考える。

●Next
・次にやるのは、Pendulum。振り子です!

2015年6月21日日曜日

Juicebox Animation その2

今回はプランニングとステージング、レイアウトまで。

●Plan
・走り高跳び
・形状を変えない(カートゥーニーな変形をしない)。
・感情表現をストロー部分で行う。
・キャラクター性を持たせる。

●Staging


●Layout




●Conclusion
・飛んだ時のジュースボックスの重さ、ジュースボックスのキャラクター性を表現できるかが勝負!
・前回は尺が長かったので、今回はなるべく尺を短くする。10秒は最低超えないようにする!

2015年6月19日金曜日

Juicebox aimation その1

今回からは、Juiceboxを使ったアニメーションを作っていきます。

●Model










●Rig


●Animation test


●Conclusion
・ようやくジュースボックスのモデルとリグが完成しました。
・時間かかり過ぎ、スケジュールが大分遅れてしまった。
・前回までの、ボールやピルのリグよりも難しかった。
・今回は接地面が一点ではなく、面だったので前後や左右に動く時に、ピボットが底面の中心にあると沈んでしまう。そこを沈まないようにするのが大変だった。
・それを解決するために、ドリブンキーを今回のリグに使いました。
・また前回まではモデルの形を変えるのに、Nonlinear Deformerを使っていましたが、今回からはボーンによるスキニングとブレンドシェイプを使いました。

●Next
・次はいよいよこのリグを使ってアニメーションを作っていきます。
まずは、どういう動きをさせるかプランニングから。

2015年6月7日日曜日

parapara スクリプト ver.2

以前作った、MayaのGhost機能をまとめた「parapara」スクリプトに手を加えてみました。

●Window


●Description video
※Not sound. 音声ありません。


●Description
・Ghost number :表示するゴーストの数です。
・frame per step :何フレーム毎のゴーストを表示するかの数です。
・Create Ghost :選択したオブジェクトのゴーストを作ります。
・Delete GhostAll :シーン内のゴーストを全て消します。
・Global Prefs :キーフレームが打っていないところもゴーストを表示します。
・KeyframesOnly :キーフレームが打ってあるところだけゴーストを表示します。

●Notes
・コントローラーを使ってアニメーションをつけているオブジェクトに対しては、上手く機能しません。
・ゴーストは選択したオブジェクトに対して作られるので、コントローラを使ってアニメーションをつけている場合、そのコントローラのゴーストが作られるからです。

●Summary
・Notesに書いたとおり、コントローラを使ってアニメーションをつけている場合使えないのが最大の問題。
・説明ビデオに音声が無くてすいません。説明ビデオのためにヘッドセット買おうかな。

●Script
/*parapara script
*/

global proc GhostsPara()
{
    int $val;
    $val = `intSliderGrp -q -value paraSlider`;
    updateGhostData 2 $val;
}

global proc GhostsParaNum()
{
    int $num;
    $num = `intSliderGrp -q -value numSlider`;
    updateGhostData 0 $num;
    updateGhostData 1 $num;
}

global proc CrateGhost()
{
   intSliderGrp -e -value 1 numSlider;
   intSliderGrp -e -value 1 paraSlider;
   updateGhostData 0 1;
   updateGhostData 1 1;
   updateGhostData 2 1;
   CreateGhost;
}

global proc DeleteGhostAll()
{
   intSliderGrp -e -value 1 numSlider;
   intSliderGrp -e -value 1 paraSlider;
   unGhostAll;
}

global proc ChangGlobalPrefs()
{
    string $sel[] = `ls -sl`;
    string $shapeSel[] = `listRelatives -s`;
    setAttr ($shapeSel[0] + ".ghostingControl") 0;
}

global proc ChangKeyframesOnly()
{
    string $sel[] = `ls -sl`;
    string $shapeSel[] = `listRelatives -s`;
    setAttr ($shapeSel[0] + ".ghostingControl") 4;
    
    float $startRange = `playbackOptions -q -min`;
    float $endRange = `playbackOptions -q -max`;
    setAttr ($shapeSel[0] + ".ghostRangeStart") $startRange;
    setAttr ($shapeSel[0] + ".ghostRangeEnd") $endRange;
}

{
if(`window -exists parapara`)
deleteUI parapara;

window parapara;
showWindow parapara;

columnLayout;

intSliderGrp -label "Ghost number" -field true
             -value 1
             -minValue 1
             -maxValue 10
             -fmx 100
             -cc"GhostsParaNum()" numSlider;

intSliderGrp -label "frame per step" -field true
             -value 1
             -minValue 1
             -maxValue 30
             -fmx 100
             -cc"GhostsPara()" paraSlider;
            
setParent ..;

//ゴーストの作成、削除
rowLayout -numberOfColumns 3;

text -label "                           ";
            
button -label "Create Ghost"
       -command "CrateGhost()";
                  
button -label "Delete GhostAll"
       -command "DeleteGhostAll()";
       
setParent ..;

//ゴーストの表示の仕方変更
rowLayout -numberOfColumns 3;

text -label "Ghosting Control";          
       
button -label "Global Prefs"
       -command "ChangGlobalPrefs()";
       
button -label "KeyframesOnly"
       -command "ChangKeyframesOnly()";
       
setParent ..;

}

2015年6月6日土曜日

Pill animation その3

Pill animationができました。

●Movie



●Memo
・上手くできた気がする!
・目的だった、アンティックとキャラクター性は上手く入れられたかな。
・ピルがジャンプする前に、「向こう岸の距離と穴の深さにビビるが、ジャンプすることを決める」という演技をさせたつもりだが、伝わらないかも。
・ビビる動作が入ってないからか。2度見と、じっと下を見つめるだけじゃ足りないかも。
・考えている動作の間の取り方が難しい。
・59~70f、130~148fの動きがリニアっぽい。
・ステージングの段階で直すべきだったけど、穴が大きすぎた。
・そしてやっぱり尺が流すぎる!

●Next
・次はジュースボックスを使ったアニメーションを作る。
・ジュースボックスは、今回のようにモデルをあまりSquash and Stretchをさせずにアニメーションさせる。



2015年6月4日木曜日

Pill animation その2


今回はステージからブロッキングまで

●Stage


●Comment
・前回に引き続き、マリオブラザーズのステージを真似してます。

●Blocking animation



●Comment
・あれこれ演技を入れていたら尺が長くなってしまった。もっと簡潔に!かつ面白く!
・後ろにジャンプするところが変。ジャンプのてっぺんの時のポーズが変だと思われる。

●まとめ
・今回はブロッキングまで。今回は前回よりも丁寧にブロッキングをつけました。
・今回の課題は、予備動作(Anticipation→Anticというらしい)とキャラクターっぽくすること。これらについては、中々うまくできている気がする。

●ブロッキングをつけている時に気づいたこと
・ブロッキングも複数のステップに分けた方が良さそう。
・いきなりアンティックから細かい演技までいれながらアニメーションをつけていると、途中で集中力が切れるし何より時間がかかる。

(例)1.おおよその位置
   2.位置を細かく入れる
   3.アンティックや演技

・まず、ざーっと作っちゃってから細かく修正していく感じで作るといいかも!
・ちょっと違うけど、↓のような感じ。


Progression of an Animated Shot: Gothel & Rapunzel Disney's Tangled from Jamaal Bradley on Vimeo.

●次回
・カーブをいじって、ポリッシュ(仕上げることを言うのかな?今度調べる)!

2015年6月1日月曜日

Pill animation その1

今回からは、Pill(カプセル状の薬)を使ったアニメーションを進めていきます。

●Purpose
・予備動作(Anticipation
・キャラクター性
以上の2点の勉強のために作ります。

●Reference


●Model


●Rig


●Plan

●まとめ
今回はここまで、明日から演技プランに沿ってブロッキングアニメーションをつけていきたいと思います。