/* 人形モデル シーンファイル */ #include "parts.inc" /* 人形モデル * 各パーツは階層的に接続される. +-- 胴 +-- 胸 | | | +-- 頭 +-- 上腕 +-- 手 | | | | 全身 --+-- 上半身 --+-- 左腕 --+-- 肘下 --+-- 前腕 | | | +-- 右腕 ... | | +-- 腰 +-- 腿 +-- 足 | | | | +-- 下半身 --+-- 左脚 --+-- 膝下 --+-- 脛 | +-- 右脚 ... * 胴の中央が基準点 <0, 0, 0>. * 距離の単位はメートル程度,角度の単位は度. */ merge { object { Waist } // 胴 merge { // 上半身 object { Chest } // 胸 object { Head // 頭 rotate 0 // 首上部の関節(例:うなづき) translate ChestH*y // 頭を胸の上に配置 rotate 0 // 首下部の関節(例:うなだれ,首振り) } merge { // 左腕(初期状態で腕下げ・親指外向き) object { Arm } // 上腕 merge { // 肘下 object { Forearm } // 前腕 object { LeftHand // 左手 rotate -0*x // 手首屈伸(例:手ウチワ) translate -ForearmLen*y // 手を前腕の先に配置 rotate -0*y // 前腕回旋(例:ネジ回し) } rotate -0*x // 肘屈伸(例:力こぶ) translate -ArmLen*y // 肘下を上腕の先に配置 rotate -0*y // 上腕回旋(例:腕相撲) } rotate 0 // 肩関節(例:羽ばたく) translate ChestW*x // 腕を胸の横に配置 rotate 0 // 胸鎖関節(例:肩をすくめる) } /* merge { // 右腕 ... } */ rotate 0 // 胸椎上部の関節 translate WaistH*y // 上半身を腰の上に配置 rotate 0 // 胸椎下部の関節 } merge { // 下半身 object { Hip } // 腰 /* merge { // 左脚 ... } merge { // 右脚 ... } */ rotate 0 // 腰椎下部の関節 translate -WaistH*y // 下半身を腰の下に配置 rotate 0 // 腰椎上部の関節 } translate 1.0*y // 全体的な変換 rotate 0 pigment { color Gray80 } } object { Axes } // 座標軸(消しちゃって OK) object { Floor } // 床 background { color LightBlue } // 背景 camera { // カメラ RightHandSystem() angle 30 location <1.0, 1.0, 5.0> look_at <0.0, 1.0, 0.0> }