インタフェース: pfSystem
pfSystem インタフェースは、パーティクル フロー Source クラスによって公開されます。
メソッド:
<float><PF_Source>.getMultiplier <time>time
レンダリング ステータスにしたがって [品質](Quality)マルチプライヤを返します。レンダリング ステータスの詳細は、下記のメソッド setRenderState および isRenderState を参照してください。
1.0f という値は、オペレータが 100% のレートでパーティクルを生成することを意味しています。0.5f という値は、オペレータが、生成するようにサポートされているパーティクルの半数しか生成しないことを意味しています。たとえば、[発生](Birth)オペレータが全体で
1000 のパーティクルを生成するように設定されている場合、マルチプライヤが 0.5f に設定されていると、オペレータは 500 のパーティクルしか生成しません。
注:time パラメータは、将来的な使用のために予約されています。0f または任意の時間の値を渡して、メソッドを呼び出します。
例
|
--Create a new Particle Flow Source in the Viewport
pfs = PF_Source()
--> $PF_Source:PF Source 001 @ [2.536594,-48.031052,0.000000]
--Get the Multiplier while in Viewport state
pfs.getMultiplier 0f
--> 0.5
--Change the Particle Source State to Render
pfs.SetRenderState true
--> true
--Get the Multiplier again - when in Render State, the Source
--generates all particles!
pfs.getMultiplier 0f
--> 1.0
|
<integer><PF_Source>.getBornAllowance()
発生の許可を返します。これは現在、時間 0 での[上限](Upper Limit)になり、<PF_Source>.Particle_Amount_Limit と同じです。
<bool><PF_Source>.hasEmitter()
Particle System にエミッタが存在する場合は true、そうでない場合は false を返します。
<integer><PF_Source>.getEmitterType <time>time
指定された時間のエミッタのタイプを返します。
<void><PF_Source>.getEmitterDimensions <time>time <&float array>dimensions
dimensions is In and Out parameter
指定された時間のエミッタ次元を、参照変数内に保存された浮動小数点の配列として返します。
<mesh><PF_Source>.getEmitterGeometry <time>time
指定された時間のエミッタ ジオメトリをメッシュとして返します。
<bool><PF_Source>.isEmitterGeometryAnimated()
指定されたエミッタ ジオメトリがアニメートされている場合は true、それ以外の場合は false を返します。
<void><PF_Source>.setRenderState <bool>renderState
パーティクル システムのレンダリング ステータスを、指定されたブール値に設定します。下記の説明を参照してください。
<bool><PF_Source>.isRenderState()
Particle System がレンダリング ステータスの場合は true、そうでない場合は false を返します。
重要:
|
パーティクル フロー のパーティクル システムには、レンダリングとビューポートという 2 通りの状態があります。どの時点でも、どちらか一方の状態です。パーティクル システムのパラメータは、レンダリングとビューポートとで異なるので
(マルチプライヤの値や、エミッタ ジオメトリなど)、現在どちらの状態にあるのかを認識しておくことが重要です。setRenderState を使用して、パーティクル システムの状態を切り替えることができます。レンダリングの開始時と終了時には、パーティクル フローのパーティクル システムによって自動的に状態が切り替えられます。
|
<time><PF_Source>.getIntegrationStep()
[インテグレーション ステップ](Integration Step)を時間の値で返します。
<integer><PF_Source>.getUpdateType()
Update Type を整数で返します。
0 : 完了
1 : 進む
<integer><PF_Source>.numParticlesSelected()
選択したパーティクルの数を返します。
<index><PF_Source>.getSelectedParticleID <index>index
インデックスで指定されたパーティクルのパーティクル ID を返します。
<bool><PF_Source>.isParticleSelected <index>index
インデックスで指定されたパーティクルが選択されている場合は true、それ以外の場合は false を返します。
<integer><PF_Source>.numActionListsSelected()
選択されたアクション リストの数を返します。
<node><PF_Source>.getSelectedActionList <index>index
インデックスで指定されたアクション リストを返します。
<bool><PF_Source>.isActionListSelected <index>index
インデックスで指定されたアクション リストが選択されている場合は true、それ以外の場合は false を返します。
例と結果:
|
--Create a new Particle Flow Source in the Viewport
--from the Create tab, then get it by name from the scene
pf = $'PF Source 001'
--> $PF_Source:PF Source 001 @ [0.000000,0.000000,0.000000]
--Get the number of particles that the Source can give birth to
pf.getBornAllowance()
--> 100000
--Check whether the Source has an emitter
pf.hasEmitter()
--> true
--Get the emitter type
pf.getEmitterType 0
--> 0
dim = #()--define an empty array
--> #()
--get the Emitter dimensions,
--pass the empty array variable by reference
pf.getEmitterDimensions 0 &dim
--> OK
--look into the previously empty array -
--the dimensions are in it
Dim
--> #(20.0, 20.0)
--Get the Emitter Geometry as TriMesh on frame 0
m = pf.getEmitterGeometry 0
--> TriMesh
m.numverts--check the number of vertices
--> 4
m.numfaces--check the number of faces
--> 2
--Check if the emitter geometry is animated
pf.isEmitterGeometryAnimated()
--> false
--Set and get the render state
pf.setRenderState false
--> OK
pf.isRenderState()
--> false
pf.setRenderState true
--> OK
pf.isRenderState()
--> true
--Get the viewport integration step
pf.getIntegrationStep()
--> 1f
--Get the update type - 0 means Complete!
pf.getUpdateType()
--> 0
--Get the number of selected particles
pf.numParticlesSelected()
--> 0
--Check if particle 1 is selected
pf.isParticleSelected 1
--> false
--Get the number of selected Action Lists in the UI
pf.numActionListsSelected()
--> 0
--In the UI, select the first Action List and try again:
pf.numActionListsSelected()
--> 1
--Get the node of the Action List you just selected:
pf.getSelectedActionList 1
--> $Event:Event 01 @ [0.000000,0.000000,0.000000]
|
このインタフェースは下記で使用できます。
PF_Source : GeometryClass