Document

3DCG作成
11/06/17
・アニメーションの作成 ー 人の動き
マクロによる形状定義と利用:
マクロの定義:「雛形」,「プロトタイプ」
パラメータ(仮引数)の利用
マクロの参照:
パラメータ(実引数)代入により
「実体」の生成
マクロ定義の例
#macro parts(r)
sphere_sweep{
linear_spline
2,
<0,0,0>,r
<0,-2,0>,r
}
#end
仮パラメータ
マクロ名
マクロ本体
マクロの参照
parts(0.4) /マクロ参照
#macro parts( r )
object{
parts(0.4)
rotate <0,0,45>
}
マクロ定義部
生成実体のアフィ
ン変換
マクロ定義と参照(unit.pov)
#include "colors.inc“
background { color Cyan }
camera{
location <10,4,-10>
look_at<0,0,0> }
light_source{ < 0,5,-10> color White}
union{
object{ parts(0.4) }
object{ parts(0.4)
translate <0,-2,0> }
pigment { color Blue}
}
#macro parts(r)
sphere_sweep{
linear_spline
2,
<0,0,0>,r
<0,-2,0>,r
}
#end
演習
下記のシーンを作成しなさい.->2箇所にrotateを
加える
=30度
部分の動きと全体の動き
Upper
Lower
Upper
Lower
union{
}
// right_hand
object{ }
// upper
object{
// lower
rotate<0,0,-90>
//
translate <0,-2,0>
}
rotate<0,0,-90>
//
translate<-1.3,2.7,0> //肩の付け根に移動
Humanbody.povの全体概要
union{
// -> A
cylinder{}
// Body
sphere {}
// Head
union{
// right_leg
object{ }
// upper
object{
// lower
translate <0,-2,0>
}
translate<-0.5,-1,0>
}
union{
// left_leg
object{ }
// upper
object{
// lower
translate <0,-2,0>
}
translate<0.5,-1,0>
}
union{
}
union{
// right_hand
object{ }
// upper
object{
// lower
rotate<0,0,-90>
//
translate <0,-2,0>
}
rotate<0,0,-90>
//
translate<-1.3,2.7,0>
// left_hand
object{ }
// upper
object{
// lower
translate <0,-2,0>
}
translate<1.3,2.7,0>
}
}
//
<- A
動きの定式化
T1=clock
clock
clock
#if(clock <= 0.5)
#declare t=2*clock ;
#else
#declare t=2*(1-clock) ;
#end
動きの定式化-2
#if( clock < 0.5)
T3=4*(0.25-|clock-0.25|)
#else
union{
T3=0
#end
object{}
-> rotate <0, 0, T3*90>
object{
rotate<0,0,T*2>
clock
translate<0,yy,0)
}
rotate<0,0,T>
translate<0,
-2*L*(1-cos(T*pi/180)),
0>
}
課題(1)
PPOV-Rayのプログラミング機能を用いて
「繰り返しのあるシーン」を作成しなさい.
基本形状以外の形状を含むこと
・来週(6月24日)は,この作品作成
・提出:シーンファイルのみ
(17コマ以上については,詳細を記載し
たテキストファイルを提出)
・提出先:第1回提出フォルダー,
・提出期限:6月29日 23:59
課題(2)
配布した humanbody を用いて
17コマで「人の動き」を表現しなさい.
「Initial_Frame=0 Final_Frame=16」
・来週(6月24日)は,このアニメーション作成
・提出:シーンファイルのみ
(17コマ以上については,詳細を記載し
たテキストファイルを提出)
・提出先:第2回提出フォルダー,
・提出期限:6月29日 23:59