如果對矩陣對象執行任何乘法,要注意一件事情,Python 的最新版本(當然還有包含Blender內置Python版本)為適當的矩陣乘法實現了新的表示方法。
用blender腳本編寫器編寫任何矩陣乘法,乘法* 語法仍然有效,這個只能作為 2.8 中嘗試普通乘法,而不是 2.7 中的矩陣乘法。如果你用在矩陣乘法會報出有趣的錯誤,因為這並不一定會拋出一個錯誤,a * ba @ b
想要支持 2.7 和 2.8 的相同矩陣乘法樣式?首先,這似乎是一個類似的挑戰,採用前面幾節中提到的欄位注釋。
較舊的 python 版本無法識別 @ 語法,並將引發分析錯誤!對於所有blender 2.7 版本,都是如此。
解決這種情況的一個方法是將矩陣點乘法稱為函數,而不是使用 @ 語法。
import bpy
import operator
# to get function names for operators like @, +, -
def matmul(a, b):
if hasattr(bpy.app, "version") and bpy.app.version >= (2, 80):
return operator.matmul(a, b)
# the same as writing
a @ b
else: return a * b
用這個方法可以避免基於blender分支版本, 因為這個代碼是能用在 2.7和2.8 。