『トータル・リコール』(2012米)
1990年版の『トータル・リコール』でアーノルド・シュワルツェネッガーが演じてた主人公の役は、コリン・ファレルが演じています。日々に不満を感じてる主人公は、夢を売るリコール社でサービスを受けますが、今の生活が作られた日常であることを知ります。1990年版と同じく、記憶が戻ったのか、リコール社による作られた記憶なのか、はっきりわかりません。それも映画を面白くしている要素の一つです。
本作に地球の裏側と往来できるエレベーターが出てきますが、Blenderでも似たような動きをさせたくなりました。Blenderで力場の設定をしてみます。
地球の画像はNASA(http://visibleearth.nasa.gov/view.php?id=74493)から
world.topo.200411.3x5400x2700.jpgを取得しました。
スクリプトはこれです。
6行目で重力をなくして、26,27でForce Fieldの設定をしています。(forcefield_toggle()は2回実行する)
これでエレベーターに見立てた円柱が中心に引っ張られて落ちていきます。
~$ cat -n elevator.sh 1 #!/bin/bash 2 cat <<EOL>/tmp/tmp.py 3 4 import bpy,os 5 6 bpy.data.scenes["Scene"].gravity.z=0 7 8 bpy.data.objects['Cube'].select = True 9 bpy.ops.object.delete() 10 11 bpy.ops.mesh.primitive_uv_sphere_add() 12 13 mat=bpy.data.materials.new('Material.001') 14 mat.emit=1 15 tex1 = bpy.data.textures.new('Tex1', type='IMAGE') 16 fname=os.path.expanduser('~/world.topo.200411.3x5400x2700.jpg') 17 tex1.image = bpy.data.images.load(fname) 18 bpy.context.object.data.materials.append(mat) 19 20 mt=mat.texture_slots.add() 21 mat.texture_slots[0].texture_coords='OBJECT' 22 mat.texture_slots[0].texture=tex1 23 mat.texture_slots[0].object=bpy.data.objects['Sphere'] 24 mat.texture_slots[0].mapping='SPHERE' 25 26 bpy.ops.object.forcefield_toggle() 27 bpy.ops.object.forcefield_toggle() 28 bpy.data.objects['Sphere'].field.strength=-5 29 30 bpy.ops.mesh.primitive_cylinder_add() 31 bpy.ops.transform.translate(value=(0,0,1.2)) 32 bpy.ops.transform.resize(value=(0.1, 0.1, 0.4)) 33 34 cy=bpy.data.objects['Cylinder'] 35 36 bpy.ops.rigidbody.object_add(type='ACTIVE') 37 38 bpy.data.objects['Camera'].location=(4,-4,3) 39 40 bpy.data.lamps['Lamp'].distance=2000 41 42 bpy.data.scenes['Scene'].render.resolution_x=760 43 bpy.data.scenes['Scene'].render.resolution_y=480 44 45 EOL 46 blender -b -P /tmp/tmp.py -o //test -a -F PNG -x 1 -f 1 | grep ^Save 47 convert -layers optimize -loop 0 -delay 5 test????.png test.gif
コメント