見出し画像

[Blender]モーションパスからカーブをつくる

画像5

 この記事では、モーションパス(軌跡)をカーブとして実体化する方法をまとめていきます。
この方法のメリットは、大まかな動きを作成したあとに、それをオブジェクトとして直観的に編集できるところです。

画像1

大まかには以下の手順でつくっていきます。

1.アニメーションをつくる
2.モーションパスを作成する
3.プログラムを実行する
4.カーブに沿ってオブジェクトを動かす

1.アニメーションをつくる

1-1.適当なアニメーションをつくる

画像2

2.モーションパスを作成する

画像3

2-1.オブジェクトプロパティタブ→モーションパスタブを開く
2-2.モーションパスを計算する範囲を決定する
2-3.Calculateボタンを押下する
2-4.OKボタンを押下する

3.プログラムを実行する

3-1.Scriptingタブを開く
3-2.+ Newボタンを押下する
3-3.以下のコードを入力する

import bpy
#変数の設定
ob = bpy.context.object
mp = ob.motion_path
#もしモーションパスが存在するならば
if mp:
  #変数の設定
  path = bpy.data.curves.new('path','CURVE'#pathという名前のカーブを作成する
  curve = bpy.data.objects.new('Curve',path) #Curveという名前のオブジェクトを作成する
  
  bpy.context.scene.collection.objects.link(curve) #オブジェクト("Curve")を3Dビューポート(Scene)に追加する
  path.dimensions = '3D' #カーブの種類を決定する
  spline = path.splines.new('BEZIER'#BEZIERを追加する
  spline.bezier_points.add(len(mp.points)-1#ベジエをモーションパスの頂点-1つ分追加する
  
  #追加されたベジエの頂点の数だけ処理を繰り返す
  for i,o in enumerate(spline.bezier_points):
      #ベジエの頂点を、モーションパスの頂点の位置に配置する
      o.co = mp.points[i].co
      o.handle_right_type = 'AUTO'
      o.handle_left_type = 'AUTO'

3-4.再生ボタンを押す(オブジェクトを選択していることを確認してから)

4.カーブに沿ってオブジェクトを動かす

画像4

4-1.コンストレイントタブを開いて、follow pathを選択
4-2.Targetにカーブを選択して、Offsetにキーを打つ




参考記事


Convert object motion path to curve

この記事が気に入ったらサポートをしてみませんか?