BlenderのPlaneを16分割(subdiveで3分割)して頂点を25個にしたオブジェクトをobjファイルにエクスポートした後、コマンドで加工してみます。
準備するもの |
|
まずは、Blenderで最初のCubeオブジェクトを削除〜Plane作成〜objのエクスポートまで。
takk@deb83:~$ cat bl-export-obj.sh 1 #!/bin/bash 2 cat <<EOL>/tmp/tmp.py 3 4 import bpy 5 6 bpy.ops.object.delete() 7 8 bpy.ops.mesh.primitive_plane_add() 9 bpy.ops.transform.resize(value=(9,9,1)) 10 bpy.ops.object.mode_set(mode='EDIT') 11 bpy.ops.mesh.subdivide(number_cuts=3) 12 13 bpy.ops.export_scene.obj(filepath='wavefront.obj') 14 15 EOL 16 blender -P /tmp/tmp.py takk@deb83:~$ . bl-export.sh
エクスポートしたOBJファイルを確認してみます。
takk@deb83:~$ cat -n wavefront.obj 1 # Blender v2.72 (sub 0) OBJ File: '' 2 # www.blender.org 3 mtllib wavefront.mtl 4 o Plane 5 v -9.000000 0.000000 9.000000 6 v 9.000000 0.000000 9.000000 7 v -9.000000 0.000000 -9.000000 8 v 9.000000 0.000000 -9.000000 9 v -9.000000 0.000000 -4.500000 10 v -9.000000 0.000000 0.000000 11 v -9.000000 0.000000 4.500000 12 v -4.500000 0.000000 9.000000 13 v 0.000000 0.000000 9.000000 14 v 4.500000 0.000000 9.000000 15 v 9.000000 0.000000 4.500000 16 v 9.000000 0.000000 -0.000000 17 v 9.000000 0.000000 -4.500000 18 v 4.500000 0.000000 -9.000000 19 v -0.000000 0.000000 -9.000000 20 v -4.500000 0.000000 -9.000000 21 v -4.500000 0.000000 4.500000 22 v -4.500000 0.000000 -0.000000 23 v -4.500000 0.000000 -4.500000 24 v 0.000000 0.000000 4.500000 25 v -0.000000 0.000000 -0.000000 26 v -0.000000 0.000000 -4.500000 27 v 4.500000 0.000000 4.500000 28 v 4.500000 0.000000 -0.000000 29 v 4.500000 0.000000 -4.500000 30 usemtl None 31 s off 32 f 25 13 4 14 33 f 5 19 16 3 34 f 19 22 15 16 35 f 22 25 14 15 36 f 1 8 17 7 37 f 7 17 18 6 38 f 6 18 19 5 39 f 8 9 20 17 40 f 17 20 21 18 41 f 18 21 22 19 42 f 9 10 23 20 43 f 20 23 24 21 44 f 21 24 25 22 45 f 10 2 11 23 46 f 23 11 12 24 47 f 24 12 13 25
5行目(①)〜29(㉕)行目までがPlaneの頂点座標です。Planeオブジェクトで以下のような頂点の順序になっています。
ではOBJファイルを加工します。
最初に0の数が多くて扱いづらいので、00000を削除します。
takk@deb83:~$ sed 's/00000//g' -i wavefront.obj
下図の赤色部分の、Y(Blender座標でZ)を+2していきます。
数字の9が含まれない座標をすべて加工すれば良いので、
takk@deb83:~$ perl -pe 'unless(/9/){s/(\d+) 0.0 /$1 2.0 /}' -i wavefront.obj
2番目の数値の0.0を置換することでY座標(BlenderのZ座標)のみ置換されます。
加工したOBJファイルをインポートするとこのような図形が出来上がります。
コメント