
Blender2.80+AnimationNodes2.1.4
デイリービルドとして公開されているAnimation Nodes 2.1.5( animation_nodes_v2_1_linux_py37.zip
)ですが、Windows10で実行中のBlender2.8(2.81でも)で有効化すると以下のようなエラーが出ます。
Traceback (most recent call last): File "C:\UserShare\bin\blender-2.81-125257758007-windows64\2.80\scripts\modules\addon_utils.py", line 351, in enable mod = import(module_name) File "%appdata%\Blender Foundation\Blender\2.81\scripts\addons\animation_nodes_init_.py", line 166, in auto_load.init() File "%appdata%\Blender Foundation\Blender\2.81\scripts\addons\animation_nodes\auto_load.py", line 23, in init modules = get_all_submodules(Path(file).parent) File "%appdata%\Blender Foundation\Blender\2.81\scripts\addons\animation_nodes\auto_load.py", line 51, in get_all_submodules return list(iter_submodules(directory, directory.name)) File "%appdata%\Blender Foundation\Blender\2.81\scripts\addons\animation_nodes\auto_load.py", line 55, in iter_submodules yield importlib.import_module("." + name, package_name) File "C:\UserShare\bin\blender-2.81-125257758007-windows64\2.81\python\lib\importlib_init_.py", line 127, in import_module return _bootstrap.gcd_import(name[level:], package, level) File "%appdata%\Blender Foundation\Blender\2.81\scripts\addons\animation_nodes\libs\FastNoiseSIMD_init.py", line 1, in from . node_base import Noise3DNodeBase File "%appdata%\Blender Foundation\Blender\2.81\scripts\addons\animation_nodes\libs\FastNoiseSIMD\node_base.py", line 6, in from . wrapper import ( ImportError: DLL load failed: 指定されたモジュールが見つかりません。
公式のトラブルシュートにも書かれていますが「Visual C++ 再頒布可能パッケージ」が必要です。
Windows users may encounter errors due to missing runtimes, in that case, try installing Visual C++ Redistributable Package.
https://animation-nodes-manual.readthedocs.io/en/latest/user_guide/install/install.html#troubleshooting
トラブルシュートでリンクされているのが下の1です。2はVisual C++ 2015,2017,2019に対応したランタイムです。PCが64bitなら「 vc_redist.x64.exe 」を32bitなら「x86」をインストールします。
僕は2をインストールしました。
v2.1.4と比べてもあまり大きな変更点は無いのでデイリーの2.1.5は必須ではないんですけどね。Blender2.81 Beteとの組み合わせで動かしてみたかったのでインストールしてみました。
FallOffで各ポリゴンをそのエッジ中心にトランスフォームさせる。記事「Animation Node2: Offset Polygon」の続き。タイトルに「Offset Polygon」はつけていますがトランスフォームの基点はポリゴンの中心になってしまうため、今回そのノードは使いません。
ポリゴンのトランスフォーム基点は「Extract Polygon Transforms」で取得します。Extraction TypeがDefaultのままなら中心の変換行列を取得できます、「Edge」へ切り替えるとポリゴンを構成するエッジのどれかにもとづいた変換行列(Transfom Matrix)を取得出来ます(1)。それを元にポリゴンの頂点を逆変換(2)、FallOffに基づいて頂点をオフセット(3)、最後に元の変換行列をかけてあるべき位置へ戻す(4)の4ステップでエッジを軸としたトランスフォームを実現します。
要Blender2.8+Animation Nodes v2.14 test build for Blender 2.8
いつかの時点で「Offset Polygon」ノードにポリゴンの変換行列の入力があったようですが最新版ではなくなっています。それがあればもっと少ないノードで実現できたのですが、ノードの粒度を細かくする方針なんでしょうね。
下は最適化したバージョンです。逆変換、オフセット、変換の復元を 一つループ内 で処理しています。
Animmation Nodes2からポリゴン単位のオフセットの組み方がめんどくさくなった?AN1.6ぐらいは”Polygon Info”や”Change Matrix Pivot”ノードがあって簡単にできましたが、AN2からそれらのノードがなくなってますね。
下は AN2.0でポリゴン中心にトランスフォームする例です。 “OffsetPolygon”ノードだけで簡単に出来ます。ポリゴン中心を起点ににトランスフォームするだけなら。
ポリゴンエッジを軸に回転をさせるとなるといっきに複雑になります。以前は”Change Matrix Pivot”でポリゴンそれぞれの変換行列の中心をエッジの位置へ変更するだけだったと思うのですが、AN2よりそのノードがなくなって、ポリゴンへ逆行列かけてオフセットしてまたもとの位置へ戻して…と手間が増えました。
ノードの名前代わって見つけられてないだけかな。
先日までの連休ゲーム三昧はさておき、Youtube用動画のテスト録画とか、Wordpressへの埋め込みテストとか。
内容はよくあるPlexusをAnimationNodeで再現するヤツ。
ナレーションが無いとナンノこっちゃよく分かりませんね。せめてBGMくらい入れないとね。あと録画時間が気になってテンパる。
開くにはBlender2.8とAnimation Nodes v2.14 test build for Blender 2.8が必要です。