3D」カテゴリーアーカイブ

Blender2.93 python A点からB点へ移動するアニメーションスクリプトサンプル

Blenderを使ってpythonでA点からB点へ移動するアニメーションスクリプトサンプル

参考
[Blender×Python] アニメーションのつくりかた
https://qiita.com/masterkeaton12/items/a6dcfa160f2bb6bc2851

[Blender×Python] アニメーションの作り方
https://mrt-blog.com/155/

(1)シンプル

オブジェクト名はCandle1(文字列と数字なので、複数あればループで対応できる)
現在の位置Bを24フレームのキーフレームに設定して、0フレームで別の場所Aを設定する。
これでAからB(元の位置)に移動するアニメーションが設定できる。

inbetween設定が必要かと思ったけど、いらんかった。
オブジェクトの移動をすると瞬間移動するかと思ってた。
ちゃんとフレーム間を補間してくれるようだ。

2個のオブジェクトがあって1個だけアニメーション設定した状態

スクリプト実行後に、ドープシートにキーが打たれた


#python_anime_20210919_01.blend

(2)複数のボックスが下に移動するアニメーションを作成するスクリプト(ボックスはすでに作成済とする)

実行するとZ軸マイナスの方向に1個ずつずれて移動するアニメーションが作成できる

 

 

Mac Blender2.93 pipインストール、pandas_datareaderモジュールインストール手順

Mac Blender2.93 pipインストール、pandas_datareaderモジュールインストール手順

環境:MacOS、Blender2.93の場合

ターミナルを起動する。
blenderのバージョンは2.93、バージョンが変わるたびに似たような数字を変える
BlenderのPythonのディレクトリ構成、Pythonのバージョンも変わるので数字を変える
/Applications/blender.app/Contents/Resources/2.93/python/bin/

・(1)get-pip.pyをダウンロード
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py /Applications/blender.app/Contents/Resources/2.93/python/bin/python3.9 get-pip.py

もしエラーになってダウンロードできないときは、
cd /Applications/blender.app/Contents/Resources/2.93/python/bin/
python/binディレクトリに移動して実行する
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

・(2)python3.9でget-pip.pyを実行してpipをインストール
$ /Applications/blender.app/Contents/Resources/2.93/python/bin/python3.9 /Applications/Blender.app/Contents/Resources/2.93/python/bin/get-pip.py

(3)pipでpandas_datareaderを実行する
$ /Applications/Blender.app/Contents/Resources/2.93/python/bin/pip install pandas_datareader

ローソク足をBlenderの記事

Blender2.91、GreasePencilストロークStroke設定、滑らかメモ

GreasePencilを使用して曲線を書くとすごくギザギザになってしまうので滑らかにするように設定するときのメモ

これはあくまでも例

GreasePencilストロークStroke設定 >> 設定したらFileメニューのDefaultのSave startup Fileで保存しておく

右上に表示されるStrokeをクリックする

Smooth:1.7 上げるほど曲線が直線の方向に簡略化される。

Iteration:3 曲線の計算(?)上げるほど再設定される。簡素化したいなら上げる

Subdivision:1 (よくわからない)

Simplify:0→0.01 上げるほどポイントが簡略化される。Line化、ポリゴン化するときにポイントを減らしたいときに増やすとよい。増やしすぎるとカクカク線になる。

 

Simplifyを増やすと、ポイントの数が減り少しカクカク線になって、密度が減った状態になる。

pythonでCSVを読み込みクラスオブジェクトを配列に入れる

CSVを読み込みクラスオブジェクトを配列に入れる

CSV例,6列必要。1行目は除外する。米ヤフーファイナンスから日経平均株価データを取得すると、今日の分は取得できるのに、なぜか前日のデータが時間帯によって取得できない。そのため、取得できたデータと取得できないデータをCSVにしておいて使用する。

日付,高値,安値,始値,終値,調整終値

となっている。

クラスから実際のデータを取得するときは

df[0].indexとかdf[0].closeみたいにして取得する。つまり1行分が1オブジェクトの配列として登録されている。

 

Blender2.91 外部ファイルからオブジェクトの読み込みAppend

外部ファイルからオブジェクトの読み込みAppend処理

Blendファイルのオブジェクトを読み込む。他のスクリプトで、オブジェクトを全部削除してから処理をするため、別ファイルのオブジェクトを読み込めると作業が減って便利。

file_path:フルパスでBlendファイルを指定する

inner_path:タイプ、ここではオブジェクトobjectを指定した。マテリアルの場合はmaterial等になる。

object_name:オブジェクトの名称、できるだけ作成時に重複しない名称がよい。

以下のスクリプトは読み込んだオブジェクトのスケールを縮小した。

 

Blender2.91、シンプルなIKボーンarmature設定メモ

IKボーンはいろいろなところで使えそうだがアニメーションを作らないときは全く使用しないのですぐ忘れる。なのでまたメモ。何度もメモする。

参考

https://www.youtube.com/watch?v=cGvalWG8HBU&t=3s

英語の綴りは自信がない。

ボーンを使用しないIKでもいいような気がしてきたが、参考ユーチューブはほとんどばボーンとIKの組み合わせばかり。

ボーンを使用しないIKは見つからん。ボーンを作りEで子ボーンを作成。離れた位置はShift+aで追加ボーン。Ctr+pでkeep Off setは親が最後

注意点:IKの設定、Shift+ctr+cは「Pose mode」でないと設定できない。Blender2.91ではレイヤーは廃止されて、コレクションになったらしい。ただ、ボーンのレイヤーは存在する。

ボーンの配置

全体

①waist(ボーンの先端を選択して、Eキーで子ボーンを作成できる)
②chest
③head

(鏡面コピーが必要)④〜⑬
④upper_arm
⑤Lower_arm
⑥Hand
⑦IK:腕を動かすためのボーン

⑧Upper_Leg
⑨Lower_Leg
⑩Foot
⑪IK:脚を動かすためのボーン

⑫Elbowひじ :⑤Lower_armの調整用
⑬Kneeひざ :⑨Lower_Legの調整用

⑭Base :全体をまとめるためのボーンで、このボーンを動かすと全ボーンが動く

手順

armatureを追加して、①〜⑭までのボーンを作成

⑦⑪のボーンは、eを使って作成した場合、親子関係になっているので、EditモードになってAlt+pで解除する。

⑦⑪⑫⑬⑭のDeformのチェックを外す

⑥⑦の順で選択して、Ctr+p  Keep Off Set

⑩⑪の順で選択して、Ctr+p  Keep Off Set

>>>Pose modeに切り替える

Poseモードになって⑦IK、⑤Lower_armの順で選択して、Shift+ctr+c でInverse Kinematics(IK)を選択(選択順がCtr+pのときと逆になる)

⑪IK、⑨Lower_Legの順で選択して、Shift+ctr+c でIKを選択(選択順がCtr+pのときと逆になる)

⑤Lower_arm、⑨Lower_Legのボーンコンストレイントから、設定をする

設定:例、肘の設定

Pole target:armature

Bone:⑤ならElbow、⑨ならKneeを選択する

Chain Length:2(制御したいボーンの数、人間とかなら1か2個、蛇とか長いものは多くなるはず)

腕足が変な回転をしていたら、Pole Angleを回転させて調整する。

鏡面コピーが必要 ④〜⑬ Shift+cで3D カーソルを原点に移動させる。

Shift+dでコピーしてからs,x,-1で反転させる。

原点の反対向き、鏡面コピーができないときは、x軸に対して移動させる。

④⑧(コピー分も)を選び①を最後に選びCtr+pでKeep Off Set

⑦⑪⑫⑬(コピー分)を選び、⑭を最後に選びCtr+p Keep Off Set

最後にオブジェクトモードにて、オブジェクトとボーンを選択してCtr+p with automatic weightを選択して適用する。

ボーンごとに、ウェイトマップを調整する。WeightPaintモードからオブジェクトデータプロパティにてVertex Groupから該当のボーンを選んで、塗るか消す。赤いほどボーンの影響を受けて、青は影響を受けない。たまにとんでもないところに、色が塗られているからオブジェクトの裏側、下側もチェックする。赤、黄、緑、青

Pose modeで隠したいボーンを選び、mキーを押して2段めの左端を選択するとボーンをレイヤー移動して、隠せる。

 

Blender 2.91 基本、忘れやすいショートカットキーや便利な機能メニュー メモ

細分化 w :Subdivideさぶでばいど Subdivisionサブディビジョン
頂点結合 m
面貼り f(もしかしたらアドオンが必要かも)
押出 e
移動 g
回転 r
スケール s
隠す h
分離 p :1オブジェクトを2つのオブジェクトに分ける。原点がそれぞれに付く。面の分割ではない。
分割 ctr+r:面等を分割する。分離ではない。
複数オブジェクトを1つのオブジェクトに結合 Ctr+j : (単に1オブジェクトにしたいときに使う)

グループ Ctr+g:複数オブジェクトをまとめる。1オブジェクトにするわけではない。ドープシートでは、Shift+gで選択してiキーでキーフレームを挿入
法線反転 Mesh>Normal>Flip:レンダリングしたときに、一部の面で色合いが違うときは法線の向きが他と異なっている。それかポイントが複数存在する。
3Dカーソルを原点 Shift+c

Blender animationNode Textが上から落ちてくる設定メモ

Blender2.91で animationNodeを使用して Textが上から1文字ずつ落ちてくる設定メモ

animationNodeは無料のアドオン。ダウンロードして追加する。

animationNode利点

animationNodeを組み合わせることで、細かな動きを何度も設定できる。テキストの文字ごとに動きを設定できるので、製作の手間が省ける。キーフレームにキーを打つことなく、複雑な動きを設定できる。

難点:

アニメーションノードの設定が難解である。どれがどれで、どれとつなぐと結果がどうなるのかさっぱりわからない。

NOあり

アニメーションノードの説明

(ノードの場所がわからないときはノードの検索窓でキーワードを検索する。似たような名称のノードが多すぎて、目当てのノードかわからないときがある。)
①番は、名称を入力。ここではfly in. 設定前に+アイコンをクリックしてobject Listを選択する

②番は、「Initial Transforms」を検索する。検索すると②のノードに変わって接続する端子がでてくる。

③番は、テキストを選択して、Updateをクリックするとテキストが1文字ずつ分割される。よくわからないが、一度Updateを設定すると、テキスト文字の修正ができない。

④番は、fly inを選択。テキストが複数あるときは、③と④をセットにして複製して、別のテキスト選択すると同じようなアニメが作成される。

⑤番は、Z軸に数値をプラス設定をすると上からテキストが落ちてくる。下の場合はマイナス値を入れる。手前や奥から動かしたいときは、Y軸に値を入れる。

7−9番を設定することで、1文字ずつの動きに時差を設定できる。

⑧、⑧−2番のDelayは、次の文字が動き出すフレームになる。これを0にすると同時に動く

⑩番は、回転を追加する。回転が不要なときは、⑧-2、⑨、⑩、⑪番のノードは不要

⑪番は、Rotation>Random Eulerノードで、scaleを大きく設定すると回転する。scaleが表示されていないときは、ノード内のリストのように見える小さなアイコンをクリックする。EulerとRotateで接続できる

※ラインがノードに重なるときは、シフトキーを押しながら右クリックすると接続点がラインに追加される

今日のエラー、Blender2.91、BEERのMALTアドオンでSHADER LINKER ERRORエラー

エラー内容

症状:

初めての新しいシェーダアドオンをインストールした。BEERのMALTアドオンをインストールしてマテリアル設定で、MALTシェーダーを選択するとエラーになる。簡易レンダリング、最終レンダリングできない。できないというかMaltアドオンが機能していない。

対応:

なし

現在の状況

改善できない。放置。shader情報がネットで見つかったら、試す予定。

環境:MacOS BigSur,Blender2.91