本日はBlenderPython枠です。
Blenderでは3次元空間で作業しますが、多くの数式が用いられています。
一番わかりやすい例では前回行った回転行列が挙げられます。
今回はシンプルな例として辺の数式を求めていきます。
〇辺の数式
頂点からベクトル計算を行うことで辺の数式を求めることができます。
頂点(x1,x2,x3)と頂点(y1,y2,y3)を結ぶ辺のベクトルは次のように表すことができます。
このベクトルを使用してtというパラメータを用いて表す辺の式は以下になります。
ここでP_1
は1つ目の頂点を意味し、tが1の場合P_2、0の場合はP_1になります。
これを使用することで例えばtを0.5にすることでBlenderの細分化などで用いられる2点の中点座標を取得することができます。
〇BlenderのPythonに組み込む
前述の説明をPythonに組み込むと次のようになります。
import bpy import mathutils # 二つの点の座標 point1 = mathutils.Vector()#一つ目の頂点 point2 = mathutils.Vector()#二つ目の頂点 # 辺の方向ベクトルを計算 edge_vector = point2 - point1 print("Edge vector:", edge_vector)
例えば冒頭の状況では(-1,-1,2)と(-1,1,0)の頂点で辺が構成されています。
これを数式に埋め込むことで次のような出力が得られます。
これはそれぞれの成分で傾きを意味しています。
よってこの辺の式は次のようになります。
〇辺の中点座標計算
辺の中点を計算するためには先ほどの式のtに0.5を代入します。
結果は(-1,0,1)となります。
実際に先ほどの辺を細分化を使用して分割すると結果が一致することを確認できます。
BlenderではGキー
を二回入力することで辺上を頂点の移動ができますが、これは先ほどの式のtの0~1を移動していることと同じ処理が動いているといえます。
今回は基礎的な内容でしたが、応用することで例えば延伸した座標を求めることやベクトル計算によってシュミレーションなどアドオン開発に大きく役立つ内容になっています。
本日は以上です。