POP-CAKE! スクリプト
Lua5.1ベースのスクリプトリファレンスです。
Luaの言語仕様は公式サイトをご覧ください。
※サンプルは POPCAKE\scripts\samples\*.lua に入ってます。
サンプルスクリプト
POPCAKE\scripts\samplesに入っています。シェルフに入れてお使いください。
ガウシアン&ノーマライズ(GaussNormal.lua)
ガウスエフェクトプラグイン、ノーマライズエフェクトプラグインを1回ずつ実行します。
プラグインメニューから各エフェクトを1回ずつ単独で実行するのと同じです。
得られる効果としては「ぼかしてから、薄くなった分濃くする」。
塗り半減(HalfWeight.lua)
選択中のレイヤーを50%に薄くします。
全ノーマライズ(NormalizeAll.lua)
選択中のドキュメントに対し、全レイヤーを合成した状態でノーマライズします。
選択エッジガウス(SelectedEdgeGaussNormal.lua)
選択中のドキュメントの選択範囲に対し、エッジ部分をぼかします。
内部的には、選択範囲外の状態を記憶→選択範囲を反転→ガウス→ぼかし→選択範囲を反転→選択範囲外の状態を復元です。
輝度トレース(TraceLuminance.lua)
画像の輝度によって、選択中のレイヤーを塗ります。
輝度計算は (r * 0.298912) + (g * 0.586611) + (b * 0.114478) です。
※白および黒に近い部分は、塗らないようになっています。
白黒トレース(TraceGrayscale.lua)
画像のRGB平均値によって、選択中のレイヤーを塗ります。
RGB平均値は (R + G + B) / 3 です。
※白および黒に近い部分でも塗られます。
リアルタイムアクション(RealtimeAction.lua)
画像の上を、画像で歩き回ります。ジャンプもできます。着地したときにレイヤーの硬さに応じて揺れます。
下記の「遊ぶための準備」をしたら、スクリプトを「再生」します。
※永久的に落下していきます。キャラを見失ったら、編集メニューの「画像の位置をリセット」で位置を戻しましょう。
※遊び終わったら必ずスクリプトの再生を「停止」しましょう。
遊ぶための準備
地形画像 |
1番目のドキュメントが地形となります。 |
キャラ画像 |
2番目のドキュメントがキャラとなります。画像の大きさによってジャンプ力などが変わります。 |
操作方法
Aキー |
キャラを左へ移動します。 |
Dキー |
キャラを右へ移動します。 |
Wキー |
キャラを前進します。 |
Sキー |
キャラを後退します。 |
Spaceキー |
ジャンプします。 |
スクリプトリファレンス
入出力
pop.print
メッセージをアウトプットに出力します。
pop.print(message);
pop.dialogFileOpen
ファイルオープンダイアログを開き、ファイル名を返します。
キャンセルした場合は nil を返します。
path = pop.dialogFileOpen();
pop.dialogFileSave
ファイルセーブダイアログを開き、ファイル名を返します。
キャンセルした場合は nil を返します。
path = pop.dialogFileSave();
ドキュメント操作
pop.getActiveDocument
アクティブなドキュメントを返します。
アクティブなドキュメントがない場合は -1 を返します。
document_index = pop.getActiveDocument();
document_index |
ドキュメントインデックス |
pop.setActiveDocument
アクティブなドキュメントを設定します。
pop.setActiveDocument(document_index);
document_index |
ドキュメントインデックス |
pop.getDocumentCount
ドキュメント数を返します。
document_count = pop.getDocumentCount();
pop.addDocument
ドキュメントを追加します。
pop.addDocument(path);
pop.removeDocument
ドキュメントを削除します。
pop.removeDocument(document_index);
document_index |
ドキュメントインデックス |
pop.clearDocument
ドキュメントを全て削除します。
pop.clearDocument();
pop.moveDocument
ドキュメントを移動します。
pop.moveDocument(document_index_from, document_index_to);
document_index_from |
移動元ドキュメントインデックス |
document_index_to |
移動先ドキュメントインデックス |
ドキュメント属性
レイヤー操作
pop.getActiveLayer
アクティブなレイヤーを返します。
アクティブなレイヤーがない場合は -1 を返します。
layer_index = pop.getActiveLayer(document_index);
document_index |
ドキュメントインデックス |
pop.setActiveLayer
アクティブなレイヤーを設定します。
pop.setActiveLayer(document_index, layer_index);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
pop.getLayerCount
レイヤー数を返します。
layer_count = pop.getLayerCount(document_index);
document_index |
ドキュメントインデックス |
pop.addLayer
レイヤーを追加します。
pop.addLayer(document_index);
document_index |
ドキュメントインデックス |
pop.cloneLayer
レイヤーを複製します。
pop.cloneLayer(document_index, layer_index);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
pop.joinLayer
レイヤーを結合します。
結合元レイヤーは削除されます。
pop.joinLayer(document_index, layer_index_from, layer_index_to);
document_index |
ドキュメントインデックス |
layer_index_from |
結合元レイヤーインデックス |
layer_index_to |
結合先レイヤーインデックス |
pop.removeLayer
レイヤーを削除します。
pop.removeLayer(document_index, layer_index);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
pop.clearLayer
レイヤーを全て削除します。
pop.clearLayer(document_index);
document_index |
ドキュメントインデックス |
pop.moveLayer
レイヤーを移動します。
pop.moveLayer(document_index, layer_index_from, layer_index_to);
document_index |
ドキュメントインデックス |
layer_index_from |
移動元レイヤーインデックス |
layer_index_to |
移動先レイヤーインデックス |
レイヤー属性
pop.getLayerSolid
レイヤーの硬さを返します。
solid = pop.getLayerSolid(document_index, layer_index);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
pop.setLayerSolid
レイヤーの硬さを設定します。
pop.setLayerSolid(document_index, layer_index, solid);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
solid |
硬さ(0.0~1.0) |
pop.getLayerWeight
レイヤーの重さを返します。
weight = pop.getLayerWeight(document_index, layer_index);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
pop.setLayerWeight
レイヤーの重さを設定します。
pop.setLayerWeight(document_index, layer_index, weight);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
weight |
重さ(0.0~1.0) |
pop.getLayerMass
レイヤーの質量を返します。
mass = pop.getLayerMass(document_index, layer_index);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
pop.setLayerMass
レイヤーの質量を設定します。
pop.setLayerMass(document_index, layer_index, mass);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
mass |
質量(-1.0~1.0) |
pop.getLayerIsHang
レイヤーのたれるON/OFFを返します。
OFFの場合は 0 を、ONの場合 0以外 を返します。
is_hang = pop.getLayerIsHang(document_index, layer_index);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
is_hang |
たれるON/OFF(0:OFF/0以外:ON) |
pop.setLayerIsHang
レイヤーのたれるON/OFFを設定します。
OFFの場合は 0 を、ONの場合 0以外 を設定します。
pop.setLayerIsHang(document_index, layer_index, is_hang);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
is_hang |
たれるON/OFF(0:OFF/0以外:ON) |
pop.getLayerIsTest
レイヤーのあたるON/OFFを返します。
OFFの場合は 0 を、ONの場合 0以外 を返します。
is_test = pop.getLayerIsTest(document_index, layer_index);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
is_test |
あたるON/OFF(0:OFF/0以外:ON) |
pop.setLayerIsTest
レイヤーのあたるON/OFFを設定します。
OFFの場合は 0 を、ONの場合 0以外 を設定します。
pop.setLayerIsTest(document_index, layer_index, is_test);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
is_test |
あたるON/OFF(0:OFF/0以外:ON) |
pop.getLayerIsStay
レイヤーのぶれるON/OFFを返します。
OFFの場合は 0 を、ONの場合 0以外 を返します。
is_stay = pop.getLayerIsStay(document_index, layer_index);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
is_stay |
ぶれるON/OFF(0:OFF/0以外:ON) |
pop.setLayerIsStay
レイヤーのぶれるON/OFFを設定します。
OFFの場合は 0 を、ONの場合 0以外 を設定します。
pop.setLayerIsStay(document_index, layer_index, is_stay);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
is_stay |
ぶれるON/OFF(0:OFF/0以外:ON) |
頂点操作
pop.getVertexCount
頂点数を返します。
vertex_count = pop.getVertexCount(document_index);
document_index |
ドキュメントインデックス |
pop.getVertex
変形前の頂点xyzを返します。
x, y, z = pop.getVertex(document_index, vertex_index);
document_index |
ドキュメントインデックス |
vertex_index |
頂点インデックス |
pop.setVertex
変形前の頂点xyzを設定します。
pop.setVertex(document_index, vertex_index, x, y, z);
document_index |
ドキュメントインデックス |
vertex_index |
頂点インデックス |
x |
頂点x |
y |
頂点y |
z |
頂点z |
pop.getCurrentVertex
変形後の頂点xyzを返します。
x, y, z = pop.getCurrentVertex(document_index, vertex_index);
document_index |
ドキュメントインデックス |
vertex_index |
頂点インデックス |
pop.setCurrentVertex
変形後の頂点xyzを設定します。
pop.setCurrentVertex(document_index, vertex_index, x, y, z);
document_index |
ドキュメントインデックス |
vertex_index |
頂点インデックス |
x |
頂点x |
y |
頂点y |
z |
頂点z |
pop.getPrevVertex
前フレームの頂点xyzを返します。
x, y, z = pop.getPrevVertex(document_index, vertex_index);
document_index |
ドキュメントインデックス |
vertex_index |
頂点インデックス |
pop.setPrevVertex
前フレームの頂点xyzを設定します。
pop.setPrevVertex(document_index, vertex_index, x, y, z);
document_index |
ドキュメントインデックス |
vertex_index |
頂点インデックス |
x |
頂点x |
y |
頂点y |
z |
頂点z |
pop.getTexcoord
テクスチャuvを返します。
u, v = pop.getTexcoord(document_index, vertex_index);
document_index |
ドキュメントインデックス |
vertex_index |
頂点インデックス |
pop.setTexcoord
テクスチャuvを設定します。
pop.setTexcoord(document_index, vertex_index, x, y, z);
document_index |
ドキュメントインデックス |
vertex_index |
頂点インデックス |
u |
テクスチャu |
v |
テクスチャv |
pop.getWeight
ウェイト値を返します。
w = pop.getWeight(document_index, layer_index, vertex_index);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
vertex_index |
頂点インデックス |
pop.setWeight
ウェイト値を設定します。
pop.setWeight(document_index, layer_index, vertex_index, w);
document_index |
ドキュメントインデックス |
layer_index |
レイヤーインデックス |
vertex_index |
頂点インデックス |
w |
ウェイト値(0.0~1.0) |
プラグイン操作
pop.plugin
プラグインを実行します。
動作はプラグインの種類により異なります。
ツールプラグイン |
プラグインをアクティブ・非アクティブ化 |
エフェクトプラグイン |
プラグインの実行 |
ジオメトリープラグイン |
プラグインをアクティブ・非アクティブ化 |
pop.plugin(id);
pop.update
プラグインを実行します。
pop.update(id);
pop.draw3d
プラグインを3D描画します。
pop.draw3d(id);
pop.draw2d
プラグインを2D描画します。
pop.draw2d(id);
ご意見・ご要望・バグ報告など
コメントは最新の30件分だけ表示されます。
最終更新:2011年02月21日 21:25