xtrace "楕円メタ-でめきん" { // constants nvar fn_all=16; // animation anime fn, 1,fn_all,1, "demel.avi"; var z1=fn/fn_all; // world view 35, 0,1,0, 0,0,0, 60,30,60; ambi 1., 0.400,0.500,0.600, 0.000, 0,0; inf 3,1,3, 0.2666, 0.900,0.900,0.900; attr demel_eye= { color 0.8,0.8,0.8; diff 0.9,0.4; refl 0.01,10,0.2; }; attr demel_eye_bk= { color 0,0,0; diff 0.9,0; refl 0.1,10,0.4; }; attr demel_body= { color 0.900,0.300,0.100; diff 0.9,0.3; refl 0.01,10,0.5; }; attr demel_mouth= { dupri demel_body; color 0.600,0.000,0.000; }; procedure demel { meta : model "メタブロック" { model "胴体" { attr demel_body; meta rth (16/20) : sphere 0,0,0, 20; attr demel_mouth; screwx 20; meta -rth (0.9) : sphere 0,0,16, 4*(cos (z1*2*PI) + 1.2)/2.2; } model "左目(向かって右)" { leverz 8,8,14; screwx 3*sin (z1*4*PI); attr demel_eye; meta rth (1/1.4) : sphere 0,0,15, 7*1.4; attr demel_eye_bk; meta rth (1/1.2) : ellips 0,0,15 + 7, 2,2,1; } model "右目(向かって左)" { leverz -8,8,14; screwx -3*sin (z1*4*PI); attr demel_eye; meta rth (1/1.4) : sphere 0,0,15, 7*1.4; attr demel_eye_bk; meta rth (1/1.2) : ellips 0,0,15 + 7, 2,2,1; } model "背びれ" { para 0,16,-2; attr demel_body; meta rth (1/1.5) : oval 0,0,0, 1,0,0, 3*1.5,10*1.5; } model "右の胸びれ" { para 13,-11,2; screwz -(45 + 20*sin (z1*4*PI)); attr demel_body; meta rth (1/1.5) : oval 0,0,0, 0,1,0, 3*1.5,9*1.5; } model "左の胸びれ" { para -13,-11,2; screwz 45 + 20*sin (z1*4*PI); attr demel_body; meta rth (1/1.5) : oval 0,0,0, 0,1,0, 3*1.5,9*1.5; } model "尾びれ" { para 0,0,-32; para 0,0,18; screwy -25*sin (z1*4*PI); para 0,0,-18; attr demel_body; meta rth (1/1.5) : oval 0,0,0, 1,0,0, 3*1.5,18*1.5; meta -rth (1/1.05) : sphere 0,-17,-17, 20*1.05; } } } model { para 0,4*sin (z1*2*PI),0; screwy 5*sin (z1*4*PI); demel; } }