「Dev:JA/Ref/Release Notes/4.50/grease pencil」の版間の差分
(→ノードツール) |
|||
| (同じ利用者による、間の1版が非表示) | |||
| 104行目: | 104行目: | ||
== Fill Guides(フィルガイド)== | == Fill Guides(フィルガイド)== | ||
| − | 4.2 LTS では、この機能は "Boundary Strokes"(境界ストローク)と呼ばれていました([ | + | 4.2 LTS では、この機能は "Boundary Strokes"(境界ストローク)と呼ばれていました([https://docs.blender.org/manual/en/4.2/grease_pencil/modes/draw/tools/fill.html#boundary-strokes) 4.2 LTS マニュアルを参照(英文)])。現在は **Fill Guides(フィルガイド)**と呼ばれています。フィルツールを使用し、デフォルトでは `[Alt]+左ドラッグ` でフィルガイドをドローできます。これらは、他のストローク間の隙間を手動で閉じ、境界のある領域を確実に塗りつぶしできるようにする特殊なストロークです。さらに、Fill(フィル)ツールのオプションにある `Advanced`(詳細)メニューに、"Auto-Remove Fill Guides"(フィルガイドを自動削除)というオプションがあり、塗りつぶした後に自動的にガイドを削除することができます。 |
== オペレーター == | == オペレーター == | ||
| 129行目: | 129行目: | ||
* SVG エクスポーターが複数のフレームのアニメーションをエクスポートできるようになりました。選択中のフレームの中から、もしくはシーン全体の範囲を選択することができます。出力された SVG ファイルにはすべてのフレームが入っており、`<animate>` タグに対応するモダンなブラウザーなどのプログラムで開くとアニメーションが表示されます。([マニュアル(英文)](https://docs.blender.org/manual/en/4.5/files/import_export/grease_pencil_svg.html#export-options))、([https://projects.blender.org/blender/blender/commit/8242eeb7ab9ba6d8e70288836084c11d1972a595 8242eeb7ab]) | * SVG エクスポーターが複数のフレームのアニメーションをエクスポートできるようになりました。選択中のフレームの中から、もしくはシーン全体の範囲を選択することができます。出力された SVG ファイルにはすべてのフレームが入っており、`<animate>` タグに対応するモダンなブラウザーなどのプログラムで開くとアニメーションが表示されます。([マニュアル(英文)](https://docs.blender.org/manual/en/4.5/files/import_export/grease_pencil_svg.html#export-options))、([https://projects.blender.org/blender/blender/commit/8242eeb7ab9ba6d8e70288836084c11d1972a595 8242eeb7ab]) | ||
| + | <span id="python-api"></span> | ||
== Python API == | == Python API == | ||
2025年7月19日 (土) 06:07時点における最新版
元記事:Grease Pencil - Blender Developer Documentation
目次
Blender 4.5 LTS: グリースペンシル
レンダリング
Grease Pencil(グリースペンシル)レンダーパス
新しい「Grease Pencil」レンダーパスを追加しました。このパスは、View Layer(ビューレイヤー)プロパティの「Passes(パス)→ Data(データ)→ Grease Pencil(グリースペンシル)」で有効化できます。(b05b0f413c)
制限事項
グリースペンシルパスは、他の物の後ろに隠れているグリースペンシルジオメトリをレンダリングしません。
グリースペンシルパスと "Alpha Over"(アルファオーバー)を使用すると最終画像を再生成できます。ただし一つだけ例外があり、いずれかのグリースペンシルレイヤーにアルファチャンネルの色度を変更するブレンドモードを使用していた場合、その結果の画像は "Combined"(統合)パスと完全に同じにはならない可能性があります。
|
ビューレイヤー毎のフィルタリング
ビューレイヤーごとに Grease Pencil レンダリングをフィルタリングするオプションを追加しました。このオプションは、View Layer(ビューレイヤー)プロパティの「Filter(フィルター)→ Include(内容)→ Grease Pencil(グリースペンシル)」にあります。(1f4cae0c46)
SSAAレンダリングメソッド
新しい Super Sampling Anti-Aliasing(**SSAA**)レンダリングメソッドを追加しました。(299a581b1b)
従来の Subpixel Morphological Anti-Aliasing(SMAA)メソッドも引き続きビューポートと最終レンダリングに使用されますが、二つの設定(「Grease Pencil(グリースペンシル) → Viewport(ビューポート)→ SMAA Threshold(SMAAしきい値)と「Grease Pencil(グリースペンシル)→ Render(レンダー)→ SMAA Threshold(SMAAしきい値)」) が個別に制御可能になりました。
SSAA サンプル数は「Render(レンダー)プロパティ→ Grease Pencil(グリースペンシル)→ Render(レンダー)→ SSAA Samples(SSAA サンプル数)」で制御できます。SSAA フィルターサイズは同じく「Film(フィルム)→ Filter Size(フィルターサイズ)」です。
全体的に、新しい SSAA メソッドは、グリースペンシルのラインの品質を向上します。以下は、現在のメソッド (SMAA)と新しい SSAA メソッドの比較です。両方のメソッドを組み合わせて使用することも可能ですが(最終レンダリングの場合)、過剰なぼかしを引き起こす可能性があります。
| SMAA (しきい値: 1.0) | SSAA (サンプル数: 8) | SMAA + SSAA |
|---|---|---|
| Will Goen 氏作(画像は効果を見やすくするため300%に拡大しています) | ||
SMAA と SSAA の両方に長所と短所があります。グリースペンシルオブジェクトとメッシュオブジェクトが混在するシンプルな例を見て見ましょう。
グリースペンシルオブジェクトがメッシュオブジェクトの後ろに現れる場合、レンダラーは深度バッファを使用してそれらを合成します。現在の SMAA メソッドは、オブジェクトが重なるエッジでのエイリアシングのアーティファクトを低減できます。一方、SSAA メソッドはそれを防ぐことができない代わりに、グリースペンシルオブジェクトでは高品質なアンチエイリアシングを提供できます。両方のメソッドを一緒に使用することで、両種のエイリアシングを軽減できます。ただし、その結果グリースペンシルのストロークが過剰にぼやける可能性があることに注意してください。
| SMAA | SSAA | SMAA + SSAA |
|---|---|---|
| 画像は効果を見やすくするため800%に拡大しています | ||
SSAA サンプル数を増やすと、少しレンダリング時間が遅くなりますが、メモリ使用量には影響しません。サンプルの制作ファイルを使用し NVIDIA GeForce RTX 3060 で1080pでレンダリングした場合に、基準(サンプル数 1、4.4と同じ)と比較してレンダリング時間がどれだけ増加したかを測定しました。結果はシーンの複雑さによって異なる場合があります。
| SSAA サンプル数 | 8 | 16 | 32 |
|---|---|---|---|
| 基準と比べたレンダリング時間の増加(秒) | +0.14 | +0.36 | +0.58 |
ポイントの最小幅制限の撤廃
ポイントの0.001への最小幅制限を削除しました。これにより、ポイントの半径を0に設定可能になりました。(1d6f313995)
注意
古いファイルへのバージョニングは適用されません。
ファイルが最小範囲に依存する場合、レンダリングに違いがある可能性があります。
|
| 4.4 | 4.5 (SSAA なし) | 4.5 (SSAA サンプル数 8) |
|---|---|---|
| アーティファクトを防ぐため半径が最小値に制限 | 半径は制限されません。非常に狭いストロークは消える可能性があります | SSAA サンプル数が増えると、狭いストロークも正しくレンダリングされます |
モディファイアー
- レイヤーフィルタリングに対応するビルトインモディファイアーも、レイヤーグループによるフィルタリングに対応しました (236f401695)。これにより、グループ内のすべてのレイヤーが選択されます。
ジオメトリノード
ジオメトリノードとの統合が引き続き改善されました。新しく Grease Pencil(グリースペンシル)ノードが追加され、"Add"(追加)メニューにも Grease Pencil(グリースペンシル)サブメニューが付き、レイヤー名が検索可能になりました。詳細については、ジオメトリノードのページを参照してください。
ノードツール
グリースペンシルオブジェクトが、ノードツール(英文)に対応しました。以下の点にご注意ください。
- ノードツールは、Object Mode(オブジェクトモード)、Edit Mode(編集モード)、Sculpt Mode(スカルプトモード)、Draw(ドロー)モードで動作します。
- グリースペンシルの編集モードには、マルチフレーム編集など高度な編集機能がありますが、現時点では、ノードツールは現在のフレームのデータのみ読み書きできます。
- ノードツールでは、レイヤーツリーへの任意の変更はできません。例えば、レイヤーの並べ替えや削除はノードツールではできません。新規レイヤーの追加は可能です。
Selection(選択)とSet Selection(選択を設定)ノードはグリースペンシルで動作しますが、ドローモードでは、選択は常にTrueになります。
Active Element(アクティブ要素)ノードには(存在していれば)アクティブレイヤーのインデックスを提供するLayer(レイヤー)モードがあります。
- Auto-Key(自動キー)有効時、新しいキーフレームは可能であれば現在のフレームに追加されます。
- ロック中や非表示のグリースペンシルレイヤーはノードツールで編集できません(入力ジオメトリの一部になりません)。
Fill Guides(フィルガイド)
4.2 LTS では、この機能は "Boundary Strokes"(境界ストローク)と呼ばれていました(4.2 LTS マニュアルを参照(英文))。現在は **Fill Guides(フィルガイド)**と呼ばれています。フィルツールを使用し、デフォルトでは [Alt]+左ドラッグ でフィルガイドをドローできます。これらは、他のストローク間の隙間を手動で閉じ、境界のある領域を確実に塗りつぶしできるようにする特殊なストロークです。さらに、Fill(フィル)ツールのオプションにある Advanced(詳細)メニューに、"Auto-Remove Fill Guides"(フィルガイドを自動削除)というオプションがあり、塗りつぶした後に自動的にガイドを削除することができます。
オペレーター
- レイヤーパネルの "Extras"(その他)メニューに、新しいオプション "Mask with Layer Above"(上のレイヤーでマスク)と "Mask with Layer Below"(下のレイヤーでマスク)を追加しました。アクティブレイヤーの上または下のレイヤーで、簡単にマスクレイヤーを追加できます。(f702eba53f)
- (4.2 LTSから)"Split"(分割)オペレーターを追加 (f5ceb3822a)。ショートカットは
[Shift]+[V]に変更されました。(127fbaa0e6)
- (4.2 LTS から)編集モードのオペレーター "Remove Fill Guides"(フィルガイドを削除)を「Grease Pencil(グリースペンシル)→ Clean Up(クリーンアップ」メニューに追加しました。4.2 LTSでは "Remove Boundary Strokes"(境界ストロークを削除)と呼ばれていました。(d332411b21)
- (4.2 LTS から)編集モードのオペレーター "Outline"(アウトライン)を、追加しました。(2fd5b39a1b)
- 新しい "Convert Curve Type"(カーブタイプを変換)オペレーターを追加。これは "Set Curve Type" (カーブタイプを設定)オペレーターの改善版です。後者も互換性のため今も利用可能ですが、"Stroke"(ストローク)メニューでは非表示になりました。
この新しいオペレーターには、他のカーブタイプへの変換の見た目の忠実さをコントロールする "Threshold"(しきい値)設定があります。しきい値を小さくすると、見た目は近くなりますが、制御点が増えます。大きくすると、精度が下がりますが、制御点は少なくなります。(889751b0c5)- ポリカーブからの変換時、カーブは単純にリサンプリングされるため、しきい値設定は表示されません。
- カトマル-ロムカーブに変換する場合、カーブをフィットする近似が使用されます。まずカーブがリサンプリングされ、次に簡略化(ramer-douglas-peucker アルゴリズムを使用)され、最後にカトマル-ロムカーブに変換されます。より正確にフィットさせるには、カトマル-ロムに変換する前に Resample Curve(カーブリサンプル)することをお勧めします。
- "Convert Type"(タイプを変換)オペレーターは、コンテキストメニュー(デフォルトでは
右クリック)にもあります。
ビューポート
- アクティブオブジェクトのみにオニオンスキニングを表示するオプションを追加しました。(668aed18e9)
エクスポート
- SVG エクスポーターが複数のフレームのアニメーションをエクスポートできるようになりました。選択中のフレームの中から、もしくはシーン全体の範囲を選択することができます。出力された SVG ファイルにはすべてのフレームが入っており、
<animate>タグに対応するモダンなブラウザーなどのプログラムで開くとアニメーションが表示されます。([マニュアル(英文)](https://docs.blender.org/manual/en/4.5/files/import_export/grease_pencil_svg.html#export-options))、(8242eeb7ab)
Python API
bpy.types、GreasePencilLayer、GreasePencilLayerGroupが、新しいbpy.types.GreasePencilTreeNodeのサブクラスになりました。レイヤーとグループの間で共通のプロパティは、このベースクラスの一部になりました。また、レイヤーグループにもchannel_colorとselectプロパティが追加されました。(3ef2ee7c53)
- 新しい
GreasePencilTreeNodeタイプに、ツリー内の同じレベルで次・前のノードを取得する二つの新しいプロパティ(next_nodeとprev_node)が追加されました。次のノードはツリーの「上」のノードであり、前のノードは「下」のノードです。ノードがグループの最上部にいる場合、次のノードはNoneになります。ノードが最下部にいる場合、前のノードもNoneです。(4229d7fa65)
- 指定の頂点グループで頂点を設定・削除する新しい関数(
vertex_group_assignとvertex_group_remove)が追加されました。グリースペンシルでは、各ドローイングにデフォーム頂点とグループを保持するため、これらの関数はDrawingAPIにあります。(ba2e567efb)
サンプル:
import bpy
C = bpy.context
drawing = C.active_object.data.layers['Lines'].current_frame().drawing
drawing.vertex_group_assign(vgroup_name="Group", indices_ptr=[2, 6, 10, 18, 19, 20], weight = 0.9)
drawing.vertex_group_remove(vgroup_name="Group", indices_ptr=[2, 6, 10])
- 複数のポイントの頂点ウェイトを一度に設定する関数
set_vertex_weightsが追加されました。この関数もGreasePencilDrawingにあります。(fd433a0a5c)
グリースペンシルストローク(プリミティブ)の例:
import bpy
ob = bpy.context.active_object
# Add a vertex group
ob.vertex_groups.new(name="Group")
# Get the drawing
frame = ob.data.layers.active.current_frame()
drawing = frame.drawing
# Set the vertex weights of points at index 0, 5, 10, and 15
drawing.set_vertex_weights("Group", [0, 5, 10, 15], [0.1, 0.2, 0.5, 1.0], assign_mode='ADD')
handle_leftとhandle_rightプロパティが、GreasePencilStrokePointAPI に追加されました。左右の両ハンドルの属性のposition、type、selectにアクセスできます。このハンドルプロパティは、GreasePencilStrokePointがベジエストロークの一部である場合のみ現れ、それ以外の場合はNoneになります。(d5b697b3f1)