NUTS & BOLTS
So What do You Want to Do?
あなたのzscriptに何をしたいかについていくつかの考えを持っていることは明らかに最初のステップです。しかし、あなたが望むようにzscriptが動作するなら、ZBrushがどのように動くかを知る必要もあります。いくつかのアクションは、他のものが最初に実行された後にのみ可能です。たとえば、モーフィングブラシは、モーフィングターゲットが最初に格納されている場合にのみ使用できます。
Examining ZScript Recordings
この種の情報を得る1つの方法は、あなたの行動のzscriptを記録しながら、あなたが興味を持っていることをすることです。終了したら、zscript記録をオフにしてファイルを保存します。これをテキストエディタで開き、それを調べることができます。この方法は、zscriptingについてもっと知る良い方法を提供します。
Pressing the right Buttons
最も基本的な形式では、Zスクリプトを使用して、ZBrushのインターフェイスボタンを1つずつ押すことができます。上で示唆したように、zscript記録を調べようとしたなら、あなたはおそらく[IPress]コマンドを見つけたでしょう。次のように表示されます。
[IPress,Tool:PolyMesh3D]
このコマンドは、ZBrushに何かを押すように指示するIPressビットと、押されるべきインターフェイス項目であるTool:Simple Brushの2つの部分に分かれています。 zscriptingでは、Interface Button Pathを使用してZBrushインターフェイス項目を指定します。
The ZBrush Interface Button Path
ZBrushインターフェイスを構成するすべてのものにボタンパスがあります。 (これはボタンパスと呼ばれますが、ボタン、スイッチ、スライダーなど、どのインターフェース項目にも適用されます)一般的にボタンパスは、インターフェース項目の前にメニューとサブメニュー(存在する場合)を記述します。それぞれはコロンで区切られています:
Tool:PolyMesh3D
インターフェイス上の項目のボタンパスを見つけるには、項目の上にカーソルを置き、キーボードのCtrlキーを押したままにします。説明的なメモが表示され、ボタンのパスは説明的なメモの一番下に表示されます。 ZBrushインターフェイス上のボタンを押す方法があります。コマンド[IPressとボタンパスを組み合わせてください。これは良いスタートですが、ZScriptのコマンドをもっと詳しく調べる前に、私たちがしようとしていることを把握するのに良い方法を考えていきます。そうすれば、私たちのコードは結びつくことができない結び目に結びつくことはありません。
Make it Meaningful
言語の要点は、対話を可能にすることであり、対話を行うためには、双方が何が言われているのかを理解する必要があります。 zscriptingでは、ZScriptコマンドはコンピュータの側面を提供するためのコマンドです。人間zscripterには、コメントや変数名など、意味のあるものを保つのに役立ついくつかの方法があります。
No Comments? No Comment!
コメントは、コードの特定のビットの目的を説明するzscriptを書く人が作成したメモです。全体のポイントは、コードを理解しやすくすることです。なぜ気に?驚いたことに、書かれた日と同じくらい明瞭なものが、数週間後には泥と同じくらい明確になることがあります。しかし、コードのコメントは、他の人が理解できるように、また必要であればそれらによって更新(または保守)されていることを保証する、あらゆる種類のプログラミングにとっては良い習慣です。 コメントは、コンピュータで無視されるように記述する必要があります。そうでなければ、コードとして解釈しようとする可能性があります。 ZScriptでは、これは2つの方法のいずれかで実行できます。次のような行の先頭に2つのスラッシュを使用します。
//This is a comment
またはコメント全体をスラッシュ - アスタリスク、アスタリスク - フォワードスラッシュの組み合わせで囲むことで、次のようになります。
/*This is another comment*/
この第1の方法は、短い単一の行に有効です。 2番目の方法は、大きなテキストブロックに適しています。 これらのコメント記号は、zscriptからコードを一時的に削除するためにも使用できます(コメントアウトとも呼ばれます)。これは、エラーを追跡しようとしているときや、効果がわからない変更を行っているときに役立ちます。このコード行はコメントアウトされています:
//[CanvasZoomSet,1]
コンピュータはコマンドを無視し、zscriptの一部を形成しません。
What’s a Variable? Define it…
変数は後で使用するために情報を格納する方法です。それは単にあなたが名前で識別するコンピュータのメモリのチャンクです。情報はいつでも変更(または変更)できるため、変数と呼ばれます。あなたがその情報のビットを使いたいときは、単に変数の名前を入れてください。そして、コンピュータはそのメモリから情報を取得します。
変数を定義して作成します。これは、[Variable Definition]を表す[VarDef]コマンドで行います。コマンドの後に、必要な名前と初期値を入力します。これは基本的な形式です:
[VarDef, variable name,initial value ]
変数を作成するときは、変数を簡単に識別できる名前を付けます。あなたのコードは書いている間に意味をなさけるだけでなく、後で理解しやすくなります。あなたは変数名をかなり書くことができますが、ここでは小文字の変数名を他のコードと区別するために開始します。ですから、テクスチャの幅を格納するために使用したい変数に対して、次のように書くことができます:
[VarDef,textureWidth,0]
ここの0が初期値です。これは、主に変数のタイプを定義するのに役立ちます。この場合、数値を格納する変数です。 zscriptingには他のタイプの変数が1つしかありません。単語や文字のグループ(文字列として知られています)を格納しますが、後でこの型を扱います。 これで、textureWidthという名前の変数を使用して、テクスチャの幅を格納できます。それだけで十分だと思うかもしれませんが、最初にテクスチャの幅をどのように見つけますか?次のセクションでそれについて検討します。
Getting & Setting : information To and From ZBrush
ZScriptのコマンド名には、GetとSetという2つの単語が頻繁に表示されます。あなたは既に一例を見てきました:
[CanvasZoomSet,1]
当然もう一組のペアがあります:
[CanvasZoomGet]
推測したように、GetコマンドはZBrushインターフェイスから情報または値を取得し、SetコマンドはZBrushインターフェイス項目を特定の状態または値に設定します。 ZBrushインターフェイス上の大半のボタンとスライダでは、
[IGet,interface item path]
or
[ISet,interface item path,value]
関連するボタンのパスを使用します。 これらの2つのコマンドグループは、zscriptingで最も有用なものです。
Setting Variables
変数にはSetコマンドもあります(ただし、同等の値は得られませんが、変数を指定するだけで十分です)。変数Setコマンドの基本的な形式は次のとおりです。
[VarSet, variable name,value to set ]
では、先ほど作成したtextureWidth変数をどのように設定するのですか?まず、現在のテクスチャの幅を調べる必要があります。これはテクスチャパレットの幅スライダに表示されます。この値をzscriptで使用するには、最初にButton Pathを見つけて、それを[IGetコマンド]と組み合わせます。そうすれば、現在のテクスチャの幅を使用していることを確認できます。このように変数に変数を格納することができます:
[VarSet,textureWidth,[IGet,Texture:Width]]
これがどのように役立つのかはすでに考えているかもしれません。ここでは、完全なzscriptで1つの可能性を探求します。
A First ZScript
これを遠くに持っていると、その古い格言は「実行するよりも学ぶのが良い方法はない」というのはおそらく適切なので、私たちは全体のzscriptを作成します。
特定の値を格納する変数を定義することから始めます。 zscriptの始めに変数を定義するのは良い方針です。それらがコード全体で利用可能であることを確認することができます。このため、グローバル変数と呼ばれることもあります。このzscriptでは2つしか定義しません。それらは現在のテクスチャの幅と高さを保存するので、textureWidthとtextureHeightを呼び出します。また、初期値として0を指定します。そうすることで、数値を格納することになります。コードは次のとおりです:
[VarDef,textureWidth,0]
[VarDef,textureHeight,0]
ここでボタンを追加します。これにはzscriptの主なコマンドが含まれています - ZBrushが実際にやりたいもの。ボタンの始めは次のようになります:
[IButton,"FillCanvas","Fill Canvas with Texture",
FillCanvasがボタンラベルになり、キャンバスをテクスチャで塗りつぶすと、カーソルがボタンの上にあるときに表示されるポップアップ情報になります。この後にコマンドが来て、それらの間にカンマを入れずに次々にリストされます:
[IPress,Texture:Txtr01] //select a texture
[VarSet,textureWidth,[IGet,Texture:Width]] //set variable to texture width
[VarSet,textureHeight,[IGet,Texture:Height]] //set variable to texture height
[IUnPress,Document:Pro] //turn of document proportional button
[ISet,Document:Width,textureWidth] //change document width to value of textureWidth
[ISet,Document:Height,textureHeight] //change document height to value of textureHeight
[IPress,Document:Resize] //resize document
[IPress,Material:Flat Color] //select Flat Color material
[IPress,Color:FillLayer] //fill canvas with texture image
ご覧のとおり、どのコマンドが実行されたかがわかるように、各コマンドにはコメントが付けられています。すべてのコマンドが入力されたら、閉じる括弧でボタンを終了する必要があります:
]//end of button
それは、完全なzscriptです! zscriptをテストするには、テキストファイル(* .txt)として保存し、ZScriptパレットの[ロード]ボタンを使用してZBrushにロードします。ボタンがZScriptチュートリアルウィンドウに表示されます。 (ボタンが表示されない場合は、ハンドルをドラッグしてチュートリアルウィンドウを拡大します。)ボタンを押してzscriptを実行します。 [重要] ZScriptチュートリアルウィンドウは、インターフェイスの一番下にあります。ハンドルをドラッグして表示するか、キーボードのHを押します。ボタンを表示するには、ウィンドウ内をクリックして上下にドラッグする必要があります。 標準のzscriptとzscriptの記録は、常にこのウィンドウに表示されます。 zscriptがプラグインの場合、ボタンはパレットの1つにあり、通常は独自のサブパレットがあります。コード内のボタン名を調べることで、どこにあるかを知ることができます。プラグインの作成については、このドキュメントの後半で説明します。
[/important]
このzscriptを実行すると警告メッセージが表示されることがあります。そのようなメッセージに対処する方法、またはユーザーがzscriptを実行したときに問題が起こらないようにすることは、zscriptingの不可欠な部分です。そのため、zscriptをテストすることが重要です。さまざまな状況を扱ういくつかの方法については、次のセクションで扱います。
Getting in Deeper: Advanced Techniques
これがzscriptingの基本です。次のページに進む:高度なテクニック