スキップしてメイン コンテンツに移動

投稿

11月, 2021の投稿を表示しています

PoseModeで体のねじれの値に平均値を入れる

 体のコントローラの値はすべて同じ値が入っているべきだと思っているので、そうなるようなスクリプトをChatGPTくんに作ってもらいました。 内容としては、 アーマチュア(PoseMode)の選択しているコントローラ(ボーン)のXYZの回転(オイラー)がズレている場合平均値を代入してくれるというものです。 Mayaと違って複数ボーンに同じ値を入れるのが結構めんどい(Alt押しながらEnter)ので。 PoseModeじゃないといけなかったり、選択しているキーフレームを取得するのが難しかったりしたので現在のフレームを対象としています。 import bpy import math # アクティブなオブジェクトを取得 active_object = bpy.context.active_object # オブジェクトが存在し、Poseモードであることを確認 if active_object and active_object.mode == 'POSE': # アクティブなポーズのフレーム番号を取得 frame_current = bpy.context.scene.frame_current # 選択されているボーンのリストを取得 selected_bones = [bone for bone in active_object.pose.bones if bone.bone.select] # ボーンごとの各軸回転の合計を初期化 total_rotation_x = 0.0 total_rotation_y = 0.0 total_rotation_z = 0.0 for bone in selected_bones: # ボーンの各軸回転を取得し合計に加算 total_rotation_x += bone.rotation_euler.x total_rotation_y += bone.rotation_euler.y total_rotation_z += bone.rotation_euler.z # 各軸の回転の平均値を計算 average_r

Cascadeur のダウンロード

 物理演算や重心計算、自動ポージングなどの機能が搭載されているモーション作成ソフトの Cascadeur (カスケード)のダウンロードの仕方をまとめてみました。 まず公式サイト↓ https://cascadeur.com/ 右上のGet Startedのボタンをクリック プランを選択。個人や小さなプロジェクトで使用するのであれば一番左のベーシックで問題ないと思います。 ログイン画面になるのですが、GoogleやFacebookのアカウントでもログインできるようです。私はGoogleアカウントでログインしました。 OSを選んで 利用規約を読んでAcceptを押すとダウンロードが始まります。 チュートリアルの動画が表示されます。次回はこれを作ってみようと思います。

グラフエディターに表示されているカーブの種類をフィルタする

このスクリプトは以前働いていた会社の先輩にもらったものなので詳しく中身を見ていません。改善できそうな部分があったら直すかもしれません。 用途 例えば背骨のコントローラ3つまとめて選択してるときに、Y軸のグラフだけ動かしたいなーというようなときにそれぞれのオブジェクトのY軸のグラフだけ選択してくれるので表示がそれだけになります。 コード ↓のコードはtranslateX用です。translateXとなっているところをそれぞれY、Zに変更し、それぞれショートカット設定します。 selectionConnection -e -clear graphEditor1FromOutliner; string $curveState; if($curveState=="transAll"){ //フィルター for($n in `ls -sl`){selectionConnection -e -select ($n+".translateX") graphEditor1FromOutliner;} for($n in `ls -sl`){selectionConnection -e -select ($n+".translateY") graphEditor1FromOutliner;} for($n in `ls -sl`){selectionConnection -e -select ($n+".translateZ") graphEditor1FromOutliner;} $curveState=""; }else{ for($n in `ls -sl`){selectionConnection -e -select ($n+".translateX") graphEditor1FromOutliner;} $curveState="transAll"; } RotationXの場合は以下。同じようにXのところをY、Zに変更してください selectionConnection -e -clear graphEditor1FromOutliner; string

マニピュレータの軸方向を変更するスクリプト

回転や移動をするとき、マニピュレータの軸を切り替えるとき、WやEを押しながら左クリック長押しでパイメニューが出てきてそれで変更していると思います。 パイメニューが出てくるまでに若干のラグがあったり、頻繁に切り替える機能のため、ショートカットでできたほうが楽かと思い作ってみました。 下のコードをコピって好きなショートカットに設定してみてください。 カチャカチャ切り替えられるようになります。移動と回転両方に対応してます int $count = `manipRotateContext -q -mode Rotate`;//現在の状況 switch($count){ case 0: print("global\n"); manipRotateContext -e -mode 1 Rotate; manipMoveContext -edit -mode 1 Move; break;//caseのコロンのあとスペースが必要 case 1: print("gimbal\n"); manipRotateContext -e -mode 2 Rotate;manipMoveContext -edit -mode 2 Move; break; case 2: print("local\n"); manipRotateContext -e -mode 0 Rotate;manipMoveContext -edit -mode 0 Move; break; }