大串映二 / ACT iii

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

大串映二 / ACT iii

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

最近の記事

[Blender]GreasePencilを使ってPrevisを作ってみた[準備]

前回の記事 これを作るにあたっての方向性として、 ・キャラはグリースペンシルで。 ・ある程度派手なアクション。 ・3Dを活かしたカメラワーク。 ・だれない程度の尺とカット数があって連続性が見せられるもの。 みたいな感じで考え始め、Man of Steel的なバトルものにしようとなり、下記のサイトで使えそうなものを探しました。 cgtrader Sketchfab TurboSquid https://www.turbosquid.com/ja/ Bleder Ma

    • [Blender]GreasePencilを使ってPrevisを作ってみた

      こんなのを作りました。 Blenderのグリースペンシルを使ったプリビズサンプル的なもの。 いつもながらアップしてから修正したい箇所が見つかりますが…。 こんなに沢山の絵を描く必要はないのですが、海外ではもっと多い位なのでどのくらい手間がかかるのか感覚を掴むためにも多めに描いてみました。 アイデア出しから編集までの一連をBlenderでやってみて、その過程で必要になった技術、フロー、ツール等を以降の記事に残しておこうと思います。 主にこんな感じの内容になると思います。

      • [Blender][script]ドープシートとグラフエディタ上部に自動キートグルボタンを追加する

        import bpydef draw_auto_key_button(self, context): layout = self.layout # タイムラインウィンドウのAuto Keyボタンと同様のボタンを作成 layout.prop(context.scene.tool_settings, "use_keyframe_insert_auto", toggle=True, text="Auto Key")# ドープシートのメニューにボタンを追加def r

        • 高速で動くエミッターから出るパーティクルがとびとびになってしまう時はパーティクルのサブフレームを上げる。 但し、エミッターがコンスレインで動いている時は1フレより細かい動きを拾ってくれないので、ベイクする必要がある。

        [Blender]GreasePencilを使ってPrevisを作ってみた[準備]

        • [Blender]GreasePencilを使ってPrevisを作ってみた

        • [Blender][script]ドープシートとグラフエディタ上部に自動キートグルボタンを追加する

        • 高速で動くエミッターから出るパーティクルがとびとびになってしまう時はパーティクルのサブフレームを上げる。 但し、エミッターがコンスレインで動いている時は1フレより細かい動きを拾ってくれないので、ベイクする必要がある。

          [Blender][スクリプト]出力ファイル名に現在のシーンファイル名とビューレイヤーを設定する

          import bpyimport os# 現在のBlenderファイル名を取得blend_file_name = bpy.path.basename(bpy.data.filepath)# 拡張子を除去blend_file_name = os.path.splitext(blend_file_name)[0]# 現在のビューレイヤー名を取得view_layer_name = bpy.context.view_layer.name# 出力パスを設定output_path = f

          [Blender][スクリプト]出力ファイル名に現在のシーンファイル名とビューレイヤーを設定する

          [Blender][スクリプト]グラフエディタとドープシートに「補間モード」、「外挿モード」、「ハンドルタイプボタン」追加

          Blenderのグラフエディタはよく使う機能が奥まった所にあるので表に出した。という感じです。 import bpyclass CUSTOM_PT_FCurvePanel(bpy.types.Panel): bl_label = "Selected Keys" # パネル名 bl_space_type = 'GRAPH_EDITOR' # グラフエディタ bl_region_type = 'UI' bl_category = "Custom"

          [Blender][スクリプト]グラフエディタとドープシートに「補間モード」、「外挿モード」、「ハンドルタイプボタン」追加

          [Blender][スクリプト]複数オブジェクトのトランスフォームに一括で演算子を適用するツール

          選択中のオブジェクトのプロパティを一括で入力するにはAltを押しながらやりますが、あれ「+」とか「*」とか「/」とかの演算子には対応してないんですね。標準だと出来ませんよね?出来ます? 分からないですがまたAIに作ってもらいました。 演算子を一括で適用するツールです。 複数オブジェクトを選択した状態でサムネールにあるボタンを押すと、別窓で設定された処理がされます。 例えば画像の様に位置Y、Multiply(*)、値2.07だと選択中のオブジェクトの位置Yそれぞれに2.07が

          [Blender][スクリプト]複数オブジェクトのトランスフォームに一括で演算子を適用するツール

          [Blender]画ブレユニットを作った

          画ブレについてはCamera Shakifyというアドオンがあってかなり普及していると思いますが、ロールを抑える等の細かい調整が効かなかったり、シーンをリンクコピーした時に不具合の元になったりするので、Fカーブモディファイアのノイズを使う事にしました。 が、このモディファイア、アニメーションのモディファイアでありながらどの数値にもキーが打てません。 という事で諸々調整出来てキーも打てる、画ブレ用のユニットを作りました。 任意オブジェクトのカスタムプロパティの値をノイズモディ

          [Blender]画ブレユニットを作った

          [Blender][スクリプト]Fカーブモディファイアの一括オンオフ

          選択中のオブジェクトのFカーブモディファイアを一括でオン/オフするコマンドをグラフエディタのチャンネルメニューに追加します。 こういうの標準で必要だと思う。 import bpy# モディファイアをオンにする関数def enable_modifiers(self, context): selected_objects = bpy.context.selected_objects # 選択中のオブジェクトを取得 if not selected_objec

          [Blender][スクリプト]Fカーブモディファイアの一括オンオフ

          [Blender][スクリプト]選択したキーのdurationを表示する

          グラフエディタやドープシートで選択中のキーフレームのdurationをサイドバーに表示します。 選択したキーの内、タイムライン上で最後のキーから先頭のキーを引いた後、+1した値を表示します。 因みに何故こういうものを作っているかというと、アニマティックやプリビズの作業をBlenderだけで出来ないかと試行錯誤しているからです。 という事で、編集よりの機能を用意している所です。 bl_info = { "name": "ag_keyFrameDuration_side

          [Blender][スクリプト]選択したキーのdurationを表示する

          [Blender][スクリプト]キーを指定したフレーム数だけ移動するツール(240920修正)

          グラフエディタとドープシートのサイドバー(ツールタブ)にサムネの様なツールが出るので、数値を入力してボタンを押すと数値分フレーム移動します。 (240920修正)反動が置いていかれる問題を修正しました。AIが。 import bpy# キーフレームを指定したフレーム数だけ移動する関数(グラフエディタ用)def move_keys_graph(offset): # グラフエディタ用の移動 bpy.ops.transform.translate(value=(off

          [Blender][スクリプト]キーを指定したフレーム数だけ移動するツール(240920修正)

          [Blender][スクリプト]選択中のキーを1Fズラす(240924修正)

          実行するとグラフエディタとドープシートのキーメニューに「Move +1F」「Move -1F」が追加されるので、それをアドオン化したうえでショートカットに割り当てると便利です。 (240924修正)移動するとハンドルが置いていかれるのを修正しました(AIが)。 import bpy# 通常のアクションとグリースペンシルのキーフレームを1フレーム後に移動def move_keys_plus1f(context): # ドープシートの場合は「時間移動」モードを使用

          [Blender][スクリプト]選択中のキーを1Fズラす(240924修正)

          [Blender][スクリプト]シーケンサーでストリップの尺を一括指定する

          シーケンサーで選択中のストリップの尺を一括で変更する。 スクリプト内で尺を指定します。 import bpy# 変更したい尺の長さをフレーム数で指定new_length = 24 # フレーム数を指定# 選択したすべてのシーケンスストリップを取得selected_strips = [strip for strip in bpy.context.scene.sequence_editor.sequences if strip.select]# 現在のチャンネルごとにストリッ

          [Blender][スクリプト]シーケンサーでストリップの尺を一括指定する

          [Blender][スクリプト]シーケンサーで選択中のストリップの尺を表示する

          シーケンサーで選択中のストリップの尺をサイドバーの「カスタム」というパネルに表示します。 フレーム数のみバージョン import bpyclass SEQUENCER_PT_selected_strip_duration(bpy.types.Panel): """Selected Sequencer Strip Duration Panel""" bl_label = "Selected Strip Duration" bl_space_type = '

          [Blender][スクリプト]シーケンサーで選択中のストリップの尺を表示する

          [Blender][スクリプト]不要なカスタムプロパティを削除する

          アドオン等を使ってモデルを作ったりしていると、カスタムプロパティが残っていて、それを消せない場合があります。それを消すスクリプト カスタムプロパティの削除(スクリプト内でプロパティ名を指名) import bpy# アクティブなオブジェクトを取得obj = bpy.context.active_object# 削除したいカスタムプロパティ名prop_name = "property_name" # ここを削除したいプロパティ名に変更# カスタムプロパティが存在する場合に

          [Blender][スクリプト]不要なカスタムプロパティを削除する

          [Blender][スクリプト]マーカーを通し番号でリネームする

          スクリプト内でプレイフィックス、スタート番号、桁数を設定して実行 シーン内の全マーカーを一括リネーム import bpy# プレフィックスを設定prefix = "sh"# マーカーに振りたい番号の開始値start_number = 1# タイムライン上のすべてのマーカーをフレーム順にソートmarkers = sorted(bpy.context.scene.timeline_markers, key=lambda m: m.frame)# マーカーに順番に名前を付ける

          [Blender][スクリプト]マーカーを通し番号でリネームする