Houdini 20.0 ヘルプの使い方

アセットのドキュメント作成

On this page

概要

デジタルアセットを作成する時、そのヘルプを2箇所の内のどれかに格納することができます:

  • アセットのType Propertiesウィンドウの Help タブ。

  • Houdiniパス内のファイル。

以下の一般形式詳しい説明を参照してください。

Tip

ページのURLの最後に.txtを付けることで、サーバー内のページのwikiソースを見ることができます。

ファイルの命名

通常では、ヘルプをアセットの Help タブに貼り付けるのが一番良くて便利な選択肢です。その方法でヘルプを取り扱うのであれば、このセクションを無視してください。

しかしながら、ヘルプをファイルとして維持したいのであれば、ヘルプサーバーがそのヘルプを見つけられるように正しい命名規則を守る必要があります。

  • HOUDINIPATH/help/nodes/dir/にファイルを作成します。dirは、ノードタイプカテゴリの“省略”バージョンです(これらのディレクトリ名は古くからの習慣のお決まりです)。例:

    カテゴリ

    ディレクトリ

    Object

    obj

    SOP

    sop

    DOP

    dop

    COP

    cop2

    ROP

    out

  • ディレクトリ内では、スコープされていないノードのファイル名パターンは以下の通りです:

    [namespace--]name[-version].txt

    例えば、ネームスペースもバージョンも持たないbravo SOPは以下のようになります:

    bravo.txt

    com.corpネームスペースにbravo SOPがある場合は、そのファイル名は以下のようになります:

    com.corp--bravo.txt

    バージョン2のノードは以下のようになります:

    bravo--foo-2.txt

  • スコープされたノードに関しては、再帰ファイル名パターンは以下の通りです:

    [scope@]filename.txt

    再帰的なscope部分を構築するには、スラッシュ(例えばObject/alfa)をアンダースコアに置換します。

    例えば、スコープされたネームスペース付きのSOPノードcom.corp::Object/alfa::2.0::com.corp::bravo::3.0に関しては、そのヘルプは以下のようになります:

    /nodes/sop/com.corp--Object_alfa-2.0@com.corp--bravo-3.0.txt

    これにより、いくつもの再帰スコープを完全にコード化することができます。

Note

この命名規則はHoudini16で変更されました。残念ながら、以前の命名規則には大きな問題がありました。

  • 扱うのに不便な中間ディレクトリを必要としました。

  • ---で始まる名前を使用していました。これでは、UNIXシェルで扱うのが難しかったです。

  • スコープされたノードを扱いませんでした。

一般形式

一般的なwikiマークアップのリファレンスに関しては、Houdini wikiマークアップを参照してください。

= My Asset =

#icon: path/to/icon

"""ノードの簡単な挙動の要約。"""

== 概要 ==

ノードの目的とオペレーションの説明。

@inputs

Label:
    入力の目的。

@parameters

Label:
    #id: internalname

    パラメータの説明。

Label:
    #id: internalname

    パラメータの説明。

@related

* [Node:sop/copy]

詳しい説明

タイトル

= タイトル =

これは、人が解読できるノードのラベルです。これを含めなかった場合、サーバーはHOMを使用してノードのラベルを取得します。

プロパティ

#icon: path/to/icon.svg

#icon: path

このノードのアイコンのパス。アイコンには、ピクセル画像を指定することができます。または、

  • HOUDINIPATH/helpパスから画像を使用することができます。例えば、以下の場所に画像があれば:

    HOUDINIPATH/help/nodes/sop/common.svg

    …以下のような#iconプロパティでそれを参照することができます:

    #icon: /nodes/sop/common.svg

  • opdef:.?nameをそこに使用することで、アセットのセクション内のアイコンファイルを参照することができます。

    例えば、アセットセクションにIcon.svgがあれば、以下のように指定することでそれを参照することができます:

    #icon: opdef:.?Icon.svg

  • これがDIR/nameの形式であれば、Houdiniの内部アイコンのどれかを参照します。例えば、SOP/copy

以下のプロパティでは、Houdiniがそのパスから自動的に推測をします。自身のドキュメント作成の目的で必要でない限りは、それらのプロパティを含める必要はありません。

#type: node

このページを、ノードのドキュメンとしてマークします。これを含めなかった場合、サーバーはそのページのパスからそれを推測します。

#context: ctx

ノードカテゴリ: obj, sop, dop, cop2, chop, outを示します。これを含めなかった場合、サーバーはそのページのパスからそれを推測します。

#namespace: ns

このノードがあるネームスペースを示します。これを含めなかった場合、サーバーはそのページのパスからそれを推測します。

#internal: name

このノードの内部名。これを含めなかった場合、サーバーはそのページのパスからそれを推測します。

#version: x.y

このノードのバージョン文字列。これを含めなかった場合、サーバーはそのページのパスからそれを推測します。

要約

"""ディスク上のファイルからジオメトリをインポートします。"""

タイトルの後の"""三重引用符"""には短い要約の段落を含めることができます。

  • サーバーは、これをノードのツールチップに使用し、ヘルプ内のいくつかの箇所でそれを表示します。

  • この要約では、英語なら動詞から開始して、ユーザに対して行なう内容を記述してください。

  • “このノードがユーザが…”のような長ったらしい表現は避けてください。

  • 要約は通常では1文、多くても2文にしてください。

ボディ

ページのボディ、タイトルとセクションの間のテキストには、以下の質問に応えてください。

  • このオペレータは をしますか?

  • 私がそのオペレータを 何故 使用するのですか?それが私のシーンにどのように貢献することができますか?

  • それが 何処 がネットワークにフィットしますか?

入力セクション

@inputs

Edges:
    押し出したいエッジを含んだジオメトリ。

ノードが入力を持っている場合、@inputsを使って、入力について説明したセクションを始めます。各入力に対して:

  • 入力のラベルの後にコロン(:)を書きます。

  • その下では、ユーザがその入力に接続すべき内容、任意かどうか、入力に対するノードの挙動などを記述した1個以上の段落をインデントします。

パラメータセクション

@parameters

Group:
    #id: group

    このノードが抽出するグループ名やポイント番号。

Distance:
    #id: dist

    抽出したポイントを動かす距離。

@paramtersを使って、パラメータについて説明したセクションを始めます。

  • 見出しを使うことでインターフェースのタブを表現することができます。例えば、“Basics”タブ内に2つのパラメータ、“Advanced”タブ内に2つのパラメータがある場合:

    @parameters
    
    == Basics ==
    
    Group:
        #id: group
    
        このノードが抽出するグループ名やポイント番号。
    
    Distance:
        #id: dist
    
        抽出したポイントを動かす距離。
    
    == Advanced ==
    
    Space:
        #id: xformspace
    
        ノードが距離の測定で使用するトランスフォーム空間。
    
    Compression:
        #id: compresslvl
    
        記録されたデータの圧縮度。レベルが高いほどディスク容量をあまり使用しませんが、読み込みに時間がかかります。
    

パラメータのツールチップ

Houdiniは、パラメータインターフェースエディタでツールチップを明示的に設定していなかった場合に、パラメータの説明の第一段落を自動的に抽出して、それをパラメータのツールチップとして使用します。

重要: (上記で説明しているとおり)#id:プロパティとパラメータの内部名を追加しなかった場合、Houdiniはそのパラメータのラベルを使ってパラメータのマッチングを試みます。とはいえ、#id:プロパティをすべてのパラメータに追加する方が良いです。そうすることで、いくつかのパラメータのラベルが重複していても、それらのパラメータは適切にリンクされます。

関連項目セクション

@related

* [Node:sop/polyextrude]
* [Node:sop/mynamespace--myasset]
* [Node:sop/mynamespace--otherasset-2.0]

関連ページへのリンクのセクションを作成することができます。リンクに関する情報は、マークアップリファレンスを参照してください。

内容のリンクと共有

  • リンクの作成と画像や他のメディアを含める方法は、wikiマークアップリファレンスを参照してください。

  • ヘルプサーバーは、アセットセクションをノードのURLのサブURLとして扱います。例えば、あなたがのアセットが以下の場合だったとします:

    /nodes/sop/mynamespace--myextrude
    

    …以下のURLでアセット内のセクションにアクセスすることができます:

    /nodes/sop/mynamespace--myextrude/section_name
    

    例えば、セクション内にMainImage.jpgという画像ファイルがあれば、アセットのヘルプにそれを使用することができます:

    [Image:./MainImage.jpg]
    

    Tip

    セクション名に拡張子(例えば、.jpg)があるので、サーバーがそのファイルタイプを推測することができます。

  • 別の方法としては、Houdiniのopdef:構文を使用することで、セクションを参照することができます。例:

    [Image:opdef:.?MainImage.jpg]
    
  • 他のノードからテキストを“インクルード”することが役立つことが多いです。例えば、2つのノードが非常に似たインターフェースを持っていたり、あるノードのインターフェースが他のノードからプロモートしたパラメータを含んでいる場合です。

    パラメータに#id:プロパティがある限り、それを他のページで含めることができます。例えば、あるアセットに以下のパラメータがあったとします:

    @parameters
    
    Group:
        #id: group
    
        動かすグループまたはポイント番号。
    
    Distance:
        #id: dist
    
        ポイントを動かす距離。
    

    以下のように他のアセットのヘルプからこのパラメータを含めることができます:

    @parameters
    
    :include otherasset#group:
    
    :include otherasset#dist:
    
  • パラメータを複製したりプロモートしても、ラベルや内部名が異なっていることがあります。Includeパス内で#id部分の後にスラッシュを追加することで、その 内容 だけを含めることができます:

    @parameters
    
    Point group:
        #id: ptgroup
    
        :include otherasset#group/:
    

スタイルTips

冗長

パラメータのヘルプの初めには余計な長ったらしい説明を含めないでください:

Edge SOP

このパラメータは、ジオメトリノードのパスを設定します。

代わりに、 が何かを説明します:

Edge SOP

エッジを含んだジオメトリノードのパス。

パラメータのヘルプ

以下のように途中段階でのパラメータのドキュメントを避けてください:

Rotation

回転を設定します。

Order of rotation

回転の順序を設定します。

パラメータがあなたにとっては簡単なものに見えたとしても、以下のように、あなたがインクルードするものには、(初心者にとっては)豊富な暗黙的知識になったり、(上級者にとっては)曖昧な説明に見えたりすることがよくあります:

  • 受け入れ可能な値の範囲。

  • このパラメータを使用する理由や時期。

  • パラメータの有効化、無効化、上げ下げでパラメータが処理する内容。

  • このパラメータが処理 しない 事。

  • エッジ条件。

  • デフォルト。

  • 単位。

例:

Rotation

テクスチャの回転角度(度)。プラスの数値は時計回りに、マイナスの数値は反時計回りに(テクスチャを基準に)回転します。Positionパラメータを使えば、モデル上のテクスチャの位置を変更することができます。 rotateTextureコマンドを使えば、ラジアンで回転を設定することができます。

Order of rotation

X,Y,Z軸を基準にオブジェクトを回転させる順番を制御します。移動、スケールとは違い、回転は、その回転軸の順番によって向きが完全に違ってきます。 通常の回転順はX, Y, Zです。アニメーションの状況によっては、その順番を変更した方が回転のアニメーションが簡単になることがあります。

  • パラメータの説明では、複数の段落を使用出来ることを覚えておいてください。

  • 1番目の段落がパラメータのツールチップとして使用されることを覚えておいてください。

能動態

受動態を使用したり、第3者でユーザについて話をしないでください:

ユーザは...すべき
このパラメータが設定される時は...
...を作成するには、Forceオペレーションが使われます
このアトリビュートは、...の時に設定されます

代わりに、能動態を使って読者に直接話かけてください。アクションを 起こす人 を明確にするべきです:

あなたが...すべき
あなたが...したい時にこのパラメータを設定してください
Forceオペレーションは...を作成します
このノードは、...の時にこのアトリビュートを設定します

オペレータが何かを許可またはそれを可能とするという風に話すのを避けてください。

このオペレータは、...を押し出すことを許可します
これは...を押し出すことが可能です...

代わりに、具体的なアクションを実行することを記述してください。

ポリゴンを押し出します...

POV(見解)

ノードがHoudiniで内部的に処理していることについてはドキュメントにしないようにしてください。代わりに、シーン内で ユーザが実行できる事 を記述してください。

ヘルプの使い方

基本

ノードのドキュメント化

セントラルヘルプサーバーの起動