大串映二 / ACT iii

主にCGアニメのコンテ、プリビズ等を作っています。 https://www.act-i…

大串映二 / ACT iii

主にCGアニメのコンテ、プリビズ等を作っています。 https://www.act-iii.co.jp/

最近の記事

[Blender][スクリプト]シーン内の全グリースペンシルレイヤーのロックをオフにする

タイトルの内容をドープシートの「チャンネル」メニューに組み込むスクリプト。 選択したりとかフィルターしたりの手間を省く為。 import bpy# シーン内のすべてのグリースペンシルオブジェクトのレイヤーのロックをオフにする関数def unlock_all_gpencil_layers(self, context): all_objects = bpy.context.scene.objects gpencil_objects = [obj for obj in

    • [Blender][スクリプト]アクティブなカメラのロールを調整するスライダーを3Dビューに表示

      chatGPT import bpyimport mathdef update_camera_rotation_z(self, context): # カメラの回転Z軸を更新する関数 camera = context.scene.camera if camera and camera.type == 'CAMERA': camera.rotation_euler[2] = math.radians(context.scene.camera_r

      • [Blender][スクリプト]カメラ外枠の透明度スライダーを3Dビュー上に表示させる

        これを表示させるスクリプト(chatGPT産) import bpydef draw_camera_opacity(self, context): layout = self.layout camera = context.scene.camera if camera and camera.type == 'CAMERA': row = layout.row(align=True) sub = row.row(align=Tru

        • [Blender][スクリプト]シーン内の全グリースペンシルレイヤーのオニオンスキンをオフにする

          グリースペンシルオブジェクトが増えていくとオニオンスキンが煩雑になっていくので import bpy# シーン内のすべてのオブジェクトを取得all_objects = bpy.context.scene.objects# シーン内のすべてのグリースペンシルオブジェクトをフィルタリングgpencil_objects = [obj for obj in all_objects if obj.type == 'GPENCIL']# すべてのグリースペンシルオブジェクトのレイヤーの

        [Blender][スクリプト]シーン内の全グリースペンシルレイヤーのロックをオフにする

          [Blender][スクリプト]シーン内の全オブジェクトの移動

          をしたい、という事が良くあるのですが、キーが打ってあったり階層構造があったりコンストレインがあったりするとうまくいきません。 なのでchatGPTにスクリプトを書いてもらいました。 色んな状況があるので、段階的にスクリプトにしてもらいました。 1.シーン内全選択。この時、階層構造を持っているものはルートのみ選択。階層構造を持たないものはそのまま選択する。 import bpydef select_root_objects(): # 現在の選択をクリア bpy

          [Blender][スクリプト]シーン内の全オブジェクトの移動

          [Blender][スクリプト]選択中のツリー内に含まれる全てのオブジェクトを選択

          子を選択に似ていますが、このスクリプトならツリー内のどこを選択していてもツリー全体を選択してくれます。 import bpy# 選択中のオブジェクトを取得selected_obj = bpy.context.selected_objects# 選択中のオブジェクトが存在するか確認if selected_obj: # 選択中の最初のオブジェクトを取得 obj = selected_obj[0] # 親を再帰的に辿り、ルートの親を見つける roo

          [Blender][スクリプト]選択中のツリー内に含まれる全てのオブジェクトを選択

          [Blender]「毎フレーム再生」「コマ落とし」「音声に同期」切替ボタンを常に見える場所に表示するスクリプト

          今回もchtGPT産です。 Blenderは良く切り替える設定がちょっと深い場所にあって、現在の状態がひと目で分からない事が多いです。 import bpyclass PlayEveryFrameToggleOperator(bpy.types.Operator): """Toggle Play Every Frame""" bl_idname = "screen.play_every_frame_toggle" bl_label = "Toggle Pl

          [Blender]「毎フレーム再生」「コマ落とし」「音声に同期」切替ボタンを常に見える場所に表示するスクリプト

          [Blender]ウィンドウにトグルボタンを追加するアドオンのひな型

          chatGPT産。 個人的によく使う「追加ドローイング」のオンオフをドープシートに追加した。これを.pyで保存して、Blenderでアドオンとしてインストールすれば起動時勝手に追加される。 書き換えれば色々応用出来そう。 bl_info = { "name": "Toggle Additive Drawing", "blender": (4, 10, 0), "category": "Animation", "version": (1, 0, 4),

          [Blender]ウィンドウにトグルボタンを追加するアドオンのひな型

          [Blender]Fカーブのデフォルト補間設定、ハンドル設定ボタンを追加するスクリプト

          Fカーブのデフォルト補間設定、ハンドル設定を変更するのにいちいちプリファレンスを開くのが面倒なのでグラフエディターとドープシートに変更ボタンを追加するスクリプトをchatGPTに書いてもらいました。 import bpy# Set interpolation typedef set_interpolation(interpolation_type): prefs = bpy.context.preferences prefs.edit.keyframe_new_

          [Blender]Fカーブのデフォルト補間設定、ハンドル設定ボタンを追加するスクリプト

          [Blender]ウィンドウ毎の未使用キーマップをリストアップするスクリプト

          例によってchatGPTに書いてもらいました。 システムコンソールにリストアップされます。 今表示中のウィンドウが対象になります。 手元に無いキーも含まれます。 import bpy# Blenderの全キーリストを作成all_keys = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W'

          [Blender]ウィンドウ毎の未使用キーマップをリストアップするスクリプト

          [Blender]選択中のオブジェクトにアサインされたアクションを一括コピー、削除するスクリプト

          chatGPT産です。 選択中のオブジェクトにアサインされたアクションを一括コピーして割り当て直す import bpy# 現在の選択オブジェクトを取得selected_objects = bpy.context.selected_objectsfor obj in selected_objects: # オブジェクトがアクションを持っているか確認 if obj.animation_data and obj.animation_data.action:

          [Blender]選択中のオブジェクトにアサインされたアクションを一括コピー、削除するスクリプト

          【Blender】Boneのローカル軸だけを水平垂直にしたい

          以前の記事でBoneの表示上の向きに関わらずローカル軸だけをワールド空間に合わせて水平垂直にする方法が分からないと書きました。 やはり出来ない事に変わりないのですが、代わりの方法が分かったのでメモしておきます。正しいかは分かりませんが。 やり方 接続を切っても親子関係は維持されているので、上のmaya画像と同じ事みたいです。 Blenderではあくまでボーンの向きはローカル軸を現すようです。

          【Blender】Boneのローカル軸だけを水平垂直にしたい

          【Blender】ウネウネした曳光弾

          15年ほど前の話ですが、映画「スカイ・クロラ」の空中戦を作っている時にガンカメラの映像をよく見ていました。YouTubeで「gun camera」で検索すると沢山出てきます。 例えばこんなの この映像の中にもありますが曳光弾の軌跡がウネウネしています。 最初は「?」って感じでしたが、よく見ると遠くの曳光弾のウネウネがシンクロしているのが分かります。 どうも画ブレでウネウネしている様です。 しかし画面全体で見るとそこまで揺れてる様に見えません。 という事は、これは1フレー

          【Blender】ウネウネした曳光弾

          【Blender/Rig】Auto-Rig Proのメモ

          下の記事でRigifyのリグの背骨の制御がうまく行かない事を書きました。 そこでAuto-Rig Proのリグはどうだろうという事で、下記のリンク内でお試し版をダウンロードしてみました。 これこれ。これが欲しかった。 骨盤、腰、胸にかけて子供の振る舞いをしてくれます。 IK/FKスナップやIKストレッチ等はちゃんとあるし、RigifyよりIK/FKのカーブが管理しやすい場所にあります。 これなら大丈夫そうなので購入してリグを作ってみました。 リグを作るのは結構簡単でし

          【Blender/Rig】Auto-Rig Proのメモ

          【Blender/Rig】変形しないパーツメッシュをリグツリーの外でまとめたい

          以前のプリビズ用リグの記事でパーツに分かれたメッシュを「ボーン」で親子付けすると書きました。 この方法は簡単なんですが、下の画像の様にアーマチュア直下にメッシュオブジェクトがズラッとならんでしまい、コンストレイントする時や階層を選択する時に邪魔になりました。 そこでリグのツリーの外にメッシュをまとめる方法を探しました。 この方法はロボみたいにデフォームしないリグの時も使えます。 3つの方法を見つけたのでメモしておきます。 アーマチュアモディファイア 対象のパーツメッシ

          【Blender/Rig】変形しないパーツメッシュをリグツリーの外でまとめたい

          【Blender】アニメーションをつけてみた②

          前回の記事 今回は実際にアニメーションをつけみての要点やつまずいた点をメモしておきます。 階層アニメーション空中 ・空中を飛ぶ所はチャイルドコンストレイントを使い、キャラのアーマチュアをカメラ移動の子供にして、カメラのローカル空間でキャラを動かしています。その時、ピボットは腰になる様にしておきました。 これをどう動かすかは膨大な文章量になってしまいそうなのでやめておきますw 屋上を走る ・空中から屋上に着地して走るには、キャラのトランスフォーム制御を変える必要があ

          【Blender】アニメーションをつけてみた②