blender フリースタイル設定

> 「# ここに実行したいスクリプトの内容を記述」に以下のスクリプトを登録したい。 ... script ... GPT-4o mini 指定されたスクリプトをBlenderのオペレーターとして登録し、キーボードショートカットを設定する手順を以下に示します。このスクリプトは、現在のシーンのカメラやコレクション名を使って、レンダリングファイルのパスを設定し、レンダリングを実行します。 スクリプトをオペレーターとして登録する手順 Blenderのテキストエディタを開く: Blenderを開き、テキストエディタを表示します。 スクリプトを入力: 以下のコードをテキストエディタに入力します。 python コードをコピー参考import bpy import os class RenderWithCustomPathOperator(bpy.types.Operator): bl_idname = "render.custom_render" bl_label = "Render with Custom Path" def execute(self, context): # 現在のシーンを取得 scene = bpy.context.scene # 現在のシーンのカメラを取得 camera = scene.camera # シーン名を取得 scene_name = scene.name # カメラ名を取得 camera_name = camera.name if camera else "NoCamera" # アクティブなコレクションを取得 active_collection = bpy.context.view_layer.active_layer_collection active_collection_name = active_collection.name if active_collection else "NoCollection" # レンダリング設定を取得 render = bpy.context.scene.render # render.filepathが設定されているか確認 if not render.filepath: self.report({'ERROR'}, "Error: render.filepath is not set. Aborting.") return {'CANCELLED'} else: # ファイル名を除いたパスを取得 directory = os.path.dirname(render.filepath) # 新しいパスを設定 new_filepath = os.path.join(directory, f"{active_collection_name}_{camera_name}_{scene_name}.png") render.filepath = new_filepath # レンダリングを実行 bpy.ops.render.render(write_still=True) return {'FINISHED'} def register(): bpy.utils.register_class(RenderWithCustomPathOperator) def unregister(): bpy.utils.unregister_class(RenderWithCustomPathOperator) if __name__ == "__main__": register()スクリプトを実行: テキストエディタの「Run Script」ボタンをクリックして、スクリプトを実行します。 キーボードショートカットを設定: Blenderの「Edit」メニューから「Preferences」を選択します。 「Keymap」タブを開きます。 「3D View」セクションを展開し、「3D View」または「3D View (Global)」の下にある「Add New」ボタンをクリックします。 新しいショートカットを追加し、以下のように設定します: Identifier: render.custom_render Key: 実行したいキー(例: R、F12など) Type: キーのタイプ(例: PRESS、RELEASEなど) 設定を保存する: 設定が完了したら、Preferencesウィンドウを閉じます。スクリプトを実行する: 3Dビューに戻り、設定したキーボードショートカットを押すと、指定された条件に基づいてレンダリングが実行されます。 これで、指定されたスクリプトをBlenderで実行するためのオペレーターとキーボードショートカットが設定されました。何か他に質問があれば、お知らせください!<
>3dcgソフトのblender4.1で特定のスクリプトを実行するためのキーボードショートカットを作りたい。どうする . GPT-4o mini Blender 4.1で特定のスクリプトを実行するためのキーボードショートカットを作成する手順は以下の通りです。 スクリプトを作成する: Blenderのテキストエディタを開き、実行したいスクリプトを入力します。 スクリプトを保存します(例: my_script.py)。 スクリプトを登録する: スクリプトを実行するためのオペレーターを定義します。以下のようなコードを使用して、スクリプトをオペレーターとして登録します。 python コードをコピー import bpy class MyCustomOperator(bpy.types.Operator): bl_idname = "wm.my_custom_operator" bl_label = "My Custom Operator" def execute(self, context): # ここに実行したいスクリプトの内容を記述 print("スクリプトが実行されました") return {'FINISHED'} def register(): bpy.utils.register_class(MyCustomOperator) def unregister(): bpy.utils.unregister_class(MyCustomOperator) if __name__ == "__main__": register() キーボードショートカットを設定する: Blenderの「Edit」メニューから「Preferences」を選択します。 「Keymap」タブを開きます。 「3D View」や「Text Editor」など、ショートカットを設定したいエリアを選択します。 「Add New」ボタンをクリックして新しいショートカットを追加します。 新しいエントリの「Identifier」に先ほど定義したオペレーターのID(例: wm.my_custom_operator)を入力します。 「Key-binding」フィールドで希望のキーを設定します。 設定を保存する: Preferencesウィンドウを閉じる前に、設定を保存することを忘れないでください。 これで、設定したキーボードショートカットを押すことで、特定のスクリプトを実行できるようになります。<
>light<
>dark<
>night-bule<
>vibrant-ink<
>wed<
function convertToShakuSun(value) { var shaku = Math.floor(value); var sun = Math.round((value - shaku) * 10); var kanjiNumbers = ["〇", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"]; var shakuKanji = kanjiNumbers[shaku]; var sunKanji = kanjiNumbers[sun]; return shakuKanji + "尺" + sunKanji + "寸"; }使い方は下記を参照 Gemini
>googleスプレッドシートで2.5を漢数字で二尺五寸として表示したい。どうすれば良い Googleスプレッドシートで2.5を二尺五寸と表示するには、以下の方法があります。 方法1:表示形式をカスタマイズする セルを選択し、右クリックして「表示形式」>「数値」>「カスタム数値形式」を選択します。 「カスタム数値形式」ダイアログボックスで、以下の形式を入力します。 #.#"尺"0"寸" 「適用」をクリックします。 方法2:TEXT関数とIF関数を使用する 表示したいセルに、以下の数式を入力します。 Excel =TEXT(INT(A1),"[DBNum4]G/標準")&"尺"&TEXT(MOD(A1,1)*10,"[DBNum4]G/標準")&"寸" A1は、2.5が入力されているセルです。必要に応じて変更してください。 INT関数は、数値の整数部分を返します。 MOD関数は、数値の余りを返します。 TEXT関数は、数値を指定された形式の文字列に変換します。 [DBNum4]は、数値を漢数字で表示する形式です。 方法3:スクリプトを使用する 「ツール」>「スクリプトエディタ」を選択します。 スクリプトエディタで、以下のスクリプトを入力します。 JavaScriptGPT-4o minifunction convertToShakuSun(value) { var shaku = Math.floor(value); var sun = Math.round((value - shaku) * 10); var kanjiNumbers = ["〇", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"]; var shakuKanji = kanjiNumbers[shaku]; var sunKanji = kanjiNumbers[sun]; return shakuKanji + "尺" + sunKanji + "寸"; }スクリプトを保存し、名前を付けます(例:convertToShakuSun)。 スプレッドシートに戻り、表示したいセルに以下の数式を入力します。 Excel =convertToShakuSun(A1) A1は、2.5が入力されているセルです。必要に応じて変更してください。 どの方法を選ぶべきか 表示形式のカスタマイズは、最も簡単な方法ですが、小数点以下の処理が限られています。 TEXT関数とIF関数を使用する方法は、より柔軟な処理が可能ですが、数式が複雑になる場合があります。 スクリプトを使用する方法は、最も柔軟な処理が可能ですが、プログラミングの知識が必要です。 補足 尺と寸の単位は、日本の伝統的な長さの単位です。1尺は約30.3cm、1寸は約3.03cmです。 上記の方法では、小数点以下を四捨五入して寸を計算しています。必要に応じて、切り上げや切り捨てなどの処理を追加してください。<
>googleスプレッドシートで2.5を二尺五寸として表示したい。どうすれば良い . GPT-4o mini Googleスプレッドシートで「2.5」を「二尺五寸」と表示するには、カスタム数式を使用する方法があります。以下の手順で設定できます。 セルに数値を入力: まず、例えばセルA1に「2.5」と入力します。 別のセルに表示形式を設定: 次に、別のセル(例えばB1)に以下の数式を入力します。 plaintext コードをコピー=TEXT(INT(A1),"0") & "尺" & TEXT(ROUND((A1-INT(A1))*10),"0") & "寸"この数式は、整数部分を「尺」として、少数部分を10倍して「寸」として表示します。 結果を確認: B1セルには「二尺五寸」と表示されるはずです。 この方法で、数値を尺寸の形式に変換して表示することができます。必要に応じて、他の数値にも同様の数式を適用できます。 漢数字にできますか . GPT-4o mini はい、Googleスプレッドシートで数値を漢数字に変換することも可能です。以下の手順で「2.5」を「二尺五寸」と表示する方法を説明します。 セルに数値を入力: 例えば、セルA1に「2.5」と入力します。 漢数字に変換する数式を入力: 別のセル(例えばB1)に以下の数式を入力します。 plaintext コードをコピー=CHOOSE(INT(A1),"零","一","二","三","四","五","六","七","八","九") & "尺" & CHOOSE(ROUND((A1-INT(A1))*10,0),"零","一","二","三","四","五","六","七","八","九") & "寸"この数式では、整数部分と小数部分をそれぞれ漢数字に変換し、「尺」と「寸」を付け加えています。 結果を確認: B1セルには「二尺五寸」と表示されるはずです。 この方法で、数値を漢数字の形式に変換して表示することができます。必要に応じて、他の数値にも同様の数式を適用できます。 1.0とか0.5にも対応できますか . GPT-4o mini はい、1.0や0.5などの数値にも対応できるように、数式を少し修正する必要があります。以下の手順で、0.0から9.9までの数値を漢数字で「尺寸」形式に変換する方法を説明します。 セルに数値を入力: 例えば、セルA1に「1.0」や「0.5」と入力します。 漢数字に変換する数式を入力: 別のセル(例えばB1)に以下の数式を入力します。 plaintext コードをコピー=IF(A1=0, "零尺零寸", CHOOSE(INT(A1),"零","一","二","三","四","五","六","七","八","九") & "尺" & CHOOSE(ROUND((A1-INT(A1))*10,0),"零","一","二","三","四","五","六","七","八","九") & "寸")この数式では、数値が0の場合には「零尺零寸」と表示し、それ以外の場合には整数部分と小数部分を漢数字に変換して「尺」と「寸」を付け加えています。 結果を確認: B1セルには、例えば「一尺零寸」や「零尺五寸」と表示されるはずです。 この方法で、0.0から9.9までの数値を漢数字の形式に変換して表示することができます。必要に応じて、他の数値にも同様の数式を適用できます。<
>light<
>dark<
>night-bule<
>vibrant-ink<
>wed<
/** @OnlyCurrentDoc */ function Table1SortClear() { var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange("Table1").activate(); spreadsheet.getActiveRange().offset(1, 0, spreadsheet.getActiveRange().getNumRows() - 1).sort({column: 1, ascending: true}); }; function Table1Sort() { var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange("Table1").activate(); spreadsheet.getActiveRange().offset(1, 0, spreadsheet.getActiveRange().getNumRows() - 1).sort([{column: 9, ascending: true}, {column: 2, ascending: true}]); };AIに聞いてみた
googleスプレッドシートのマクロを書きたい。名前付き範囲「Table1」を取得して並べ替えを行いたい。並べ替え列は9列と2列を昇順です。尚、table1の一行目はタイトルなのでソートからは外してください。 . GPT-4o mini Google スプレッドシートで、名前付き範囲「Table1」を取得し、9列(I列)と2列(B列)を基準に昇順で並べ替えるマクロを作成するには、以下の Google Apps Script を使用できます。このスクリプトは、1行目をタイトルとして扱い、2行目以降を並べ替えます。 javascript コードをコピーfunction sortNamedRange() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var namedRange = sheet.getRange("Table1"); // 名前付き範囲「Table1」を取得 var data = namedRange.getValues(); // データを取得 // 1行目をタイトルとして除外し、2行目以降を並べ替え var header = data[0]; // タイトル行 var body = data.slice(1); // データ部分(タイトル行を除外) // 並べ替え(9列目と2列目を基準に昇順) body.sort(function(a, b) { // 9列目(I列)で比較 if (a[8] === b[8]) { // 9列目が同じ場合は2列目(B列)で比較 return a[1] > b[1] ? 1 : -1; // 昇順 } return a[8] > b[8] ? 1 : -1; // 昇順 }); // 並べ替えたデータを元の範囲に書き戻す namedRange.offset(1, 0, body.length, body[0].length).setValues(body); }スクリプトの使い方 Google スプレッドシートを開きます。 メニューから「拡張機能」→「Apps Script」を選択します。 新しいプロジェクトが開いたら、上記のコードをコピーして貼り付けます。 スクリプトを保存します(名前を付ける必要があります)。 sortNamedRange 関数を実行します。 このスクリプトは、名前付き範囲「Table1」のデータを取得し、1行目をタイトルとして除外した後、9列目(I列)と2列目(B列)を基準に昇順で並べ替えます。並べ替えた結果は、元の範囲に書き戻されます。
>import bpy import os # 現在のシーンを取得 scene = bpy.context.scene # 現在のシーンのカメラを取得 camera = scene.camera # シーン名を取得 scene_name = scene.name # カメラ名を取得 camera_name = camera.name # レンダリング設定を取得 render = bpy.context.scene.render # render.filepathが設定されているか確認 if not render.filepath: print("Error: render.filepath is not set. Aborting.") else: # ファイル名を除いたパスを取得 directory = os.path.dirname(render.filepath) # 新しいパスを設定 new_filepath = os.path.join(directory, f"{camera_name}_{scene_name}.png") render.filepath = new_filepath # レンダリングを実行 bpy.ops.render.render(write_still=True)GPT-4o mini
>import bpy import os # 現在のシーンを取得 scene = bpy.context.scene # 現在のシーンのカメラを取得 camera = scene.camera # シーン名を取得 scene_name = scene.name # カメラ名を取得 camera_name = camera.name # レンダリング設定を取得 render = bpy.context.scene.render # render.filepathが設定されているか確認 if not render.filepath: print("Error: render.filepath is not set. Aborting.") else: # ファイル名を除いたパスを取得 directory = os.path.dirname(render.filepath) # 新しいパスを設定 new_filepath = os.path.join(directory, f"{camera_name}_{scene_name}.png") render.filepath = new_filepath # レンダリングを実行 bpy.ops.render.render(write_still=True)<
>render.filepathが設定されていない時は中止する。render.filepathが設定されているときはファイル名を除いたパスを取得して新しいパスとして使う設定にしてほしい . GPT-4o mini Blenderのスクリプトを修正して、render.filepathが設定されていない場合は中止し、設定されている場合はファイル名を除いたパスを取得して新しいパスとして使用するようにすることができます。以下のスクリプトを参考にしてください。 python コードをコピー import bpy import os # 現在のシーンのカメラを取得 camera = bpy.context.scene.camera # カメラ名を取得 camera_name = camera.name # レンダリング設定を取得 render = bpy.context.scene.render # render.filepathが設定されているか確認 if not render.filepath: print("Error: render.filepath is not set. Aborting.") else: # ファイル名を除いたパスを取得 directory = os.path.dirname(render.filepath) # 新しいパスを設定 new_filepath = os.path.join(directory, f"{camera_name}.png") render.filepath = new_filepath # レンダリングを実行 bpy.ops.render.render(write_still=True) スクリプトの説明 カメラの取得: 現在のシーンのカメラを取得します。 render.filepathの確認: render.filepathが設定されていない場合はエラーメッセージを表示して中止します。 パスの取得: os.path.dirname()を使用して、ファイル名を除いたディレクトリパスを取得します。 新しいパスの設定: カメラ名をファイル名として新しいパスを作成し、render.filepathに設定します。 レンダリングの実行: 最後に、レンダリングを実行します。 このスクリプトをBlenderのテキストエディタにコピーして実行することで、指定した条件に従ってレンダリングを行うことができます。<
>import bpy # 現在のシーンを取得 scene = bpy.context.scene # 現在のシーンのカメラを取得 camera = scene.camera # シーン名を取得 scene_name = scene.name # カメラ名を取得 camera_name = camera.name # レンダリング設定を取得 render = bpy.context.scene.render # 出力パスを設定 render.filepath = f"D:\\Drive - Biz\\プロジェクト\\2025\\レンダリング\\{camera_name}_{scene_name}.png" # 保存先のパスを指定 # レンダリングを実行 bpy.ops.render.render(write_still=True)
>3dソフトのblenderでレンダリングした画像の名前をカメラ名として自動で保存したい時の設定を探して . GPT-4o mini Blenderでレンダリングした画像をカメラ名として自動で保存する設定を行うには、以下の手順を参考にしてください。 スクリプトを使用する: BlenderのPython APIを利用して、レンダリング時にカメラ名をファイル名として使用するスクリプトを作成します。 スクリプトの例: 以下のスクリプトをBlenderのテキストエディタにコピーして実行することで、レンダリング時にカメラ名をファイル名として保存できます。 python コードをコピー import bpy # 現在のシーンのカメラを取得 camera = bpy.context.scene.camera # カメラ名を取得 camera_name = camera.name # レンダリング設定を取得 render = bpy.context.scene.render # 出力パスを設定 render.filepath = f"/path/to/save/{camera_name}.png" # 保存先のパスを指定 # レンダリングを実行 bpy.ops.render.render(write_still=True) 上記のスクリプトでは、/path/to/save/を実際の保存先のパスに変更してください。 スクリプトの実行: スクリプトを実行することで、レンダリングされた画像がカメラ名をファイル名として指定したパスに保存されます。 自動化: このスクリプトをBlenderの「ハンドラ」や「オペレーター」に組み込むことで、レンダリング時に自動的に実行されるように設定することも可能です。 この方法を使うことで、レンダリングした画像をカメラ名で自動保存することができます。<Gemini
>import bpy import os # 保存先のパス output_path = "D:\\Business\\プロジェクト\\2023\\レンダリング\\" # アクティブなカメラの取得 camera = bpy.context.scene.camera # カメラ名を取得 camera_name = camera.name # シーン名を取得 scene_name = bpy.context.scene.name # ファイル名を生成(カメラ名_シーン名.png) file_name = camera_name + "_" + scene_name + ".png" # 保存先のパスとファイル名を結合 file_path = os.path.join(output_path, file_name) # レンダリング設定 bpy.context.scene.render.filepath = file_path bpy.context.scene.render.image_settings.file_format = 'PNG' # レンダリング実行 bpy.ops.render.render(write_still=True) print("レンダリング完了: " + file_path)<
>3dソフトのblenderでレンダリングした画像の名前をカメラ名として自動で保存したい時のPythonスクリプトを書いて。保存するパスは「D:\レンダリング\」です。 はい、Blenderでレンダリングした画像の名前をカメラ名として自動で保存するPythonスクリプトは以下のようになります。 Python import bpy import os # 保存先のパス output_path = "D:\\レンダリング\\" # アクティブなカメラの取得 camera = bpy.context.scene.camera # カメラ名を取得 camera_name = camera.name # ファイル名を生成 file_name = camera_name + ".png" # 保存先のパスとファイル名を結合 file_path = os.path.join(output_path, file_name) # レンダリング設定 bpy.context.scene.render.filepath = file_path bpy.context.scene.render.image_settings.file_format = 'PNG' # レンダリング実行 bpy.ops.render.render(write_still=True) print("レンダリング完了: " + file_path) スクリプトの使い方: Blenderを開き、スクリプトを実行したい.blendファイルを開きます。 スクリプトエディタを開きます(画面上部の「スクリプト」タブをクリック)。 上記のPythonスクリプトをスクリプトエディタに貼り付けます。 スクリプトエディタの実行ボタン(▶)をクリックしてスクリプトを実行します。 注意点: スクリプト内の output_path 変数を、実際の保存先のパスに変更してください。 スクリプトはアクティブなカメラを使用してレンダリングします。複数のカメラがある場合は、アクティブなカメラを切り替えてからスクリプトを実行してください。 スクリプトはPNG形式で画像を保存します。他の形式で保存したい場合は、 bpy.context.scene.render.image_settings.file_format の値を変更してください。例:JPEG形式で保存する場合は 'JPEG' に変更します。 保存先のフォルダが存在しない場合は、スクリプトを実行する前に作成してください。<
by Kenichi Suzuki
by Kenichi Suzuki