
『トータル・リコール』(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



コメント