▼スクリプト 編

ver1.30_script01から新しくスクリプト機能が付きました。

●スクリプトとは
NekoPaintの機能を使った作業の自動化ができます。
普段よくする作業を1つにまとめてワンタッチで作業したり、
複数のファイルに対して同じ処理を繰り返したい時などに有効。
ソースを直接書くので、より細かな指定ができる



ネコペがインストールしてあるフォルダ→scriptフォルダ→menuフォルダの中身がスクリプトです。
メモ帳などのテキストエディタで開くと中身を見ることが出来ます。

〜.nas …スクリプト本体 (nas=Nekopaint Angel Script?)
list.txt …ネコペのメニューバーの[スクリプト]の項目にスクリプトを追加するためのもの
user_list.txt …list.txtと同じものだが、アップデートをした際
          自分で追加したスクリプト項目が上書きで消えないように、
          自分で作ったスクリプトはこちらに追加すると良いでしょう
          (ver1.30_script05にのみ入ってました。ない場合は自分で作ると良い)






●スクリプトの書き方
スクリプトの”書き方”の解説は私には不可能です(ほぼプログラミングに近いので)
分かる方は2chのNekoPaintスレやwikiに書き込んでくれると嬉しいです

スクリプトの書き方はC++言語に近いらしい(?)
ネコペのスクリプトはAngelScriptというのを使用しているそうなので
「AngelScript」で検索してみてください
参考サイト:AngelScript Manual(本家)
       (粗い訳で良ければ→google翻訳
       AngelScript マニュアル日本語訳  (ちゃんとした日本語で訳されています)


・とりあえずちょっとだけ基本

赤の文字で囲まれている中身がスクリプト本体。命令の集まりです
命令の最後に;は必須
 ※メニューバーの[スクリプト]→[ウィンドウ スクリプト]から試す場合は
  この赤文字部分を省いた中身の命令文のみ書き込めば動きます。
赤文字の部分はスクリプトに名前を付ける為にあります。
 void そのスクリプトの名前()
 {

 命令文;
 命令文;
 命令文;
 } 

緑の文字の//は命令文に含みませんよと言う意味。
普通に日本語を書いたままだとエラーになってスクリプトは動きません(特に全角スペースは見落としがち。半角スペースに直しましょう)
//から行の最後までを省くと言う意味です。注釈などに使います
複数行省く場合は
 /*
 注釈
 などなど
 */
と言う書き方も出来ます






●スクリプトの追加方法

スクリプトの本体は.nas形式で書かれたファイルです
それをネコペのインストールしてあるフォルダにある「script」フォルダ→「menu」フォルダの中に.nasのファイルを入れてやります

そして、実際にスクリプトとして使用するにはメニュー欄の[スクリプト]に項目を追加しなければなりません
  ※余談:メニューバーの[スクリプト]→[ウィンドウ スクリプト]を使えば一時的にスクリプトを試す事は出来ます
メニューバーの項目に、自分で作ったスクリプトを追加したい場合、
ネコペがインストールしてあるフォルダ→scriptフォルダ→menuフォルダにある、list.txt(又はuser_list.txt)を開きます

ここに書き足せばメニュー欄に追加されます。
  「スクリプトを書いたファイル名(〜.nas)」+「void で囲った実際のスクリプトの名前」+「#」+「メニュー欄に表示する名前」
の順で書きます。
新しくuser_list.txtを作って追加専用にしておけば後々アップデートで上書きの際に消えてしまう心配がなくなります
「メニュー欄に表示する名前」は途中で「/」を用いれば↓のように項目をまとめる事が出来ます
      

また、セパレータ(区切り線)を入れたい場合は
#-
と書けば区切り線が出ます
      






●スクリプトにショートカットキーを割り当てる方法
スクリプトの起動をショートカットキーで行いたい場合、ショートカットキーを割り当てる事が出来ます
configフォルダにあるkey.txtに下の数字を追加すれば出来ます
ただし、流動性です!

4352 user_list.txtの1行目のスクリプト
4353 user_list.txtの2行目のスクリプト
4354 user_list.txtの3行目のスクリプト
4355 user_list.txtの4行目のスクリプト
4356 user_list.txtの5行目のスクリプト
       :
       :
このように数字を増やしていけばそれぞれ指定できますが、
user_list.txtの一行目に新しいスクリプトを追加すると全てのショートカットキーがずれます

対処法としては、ショートカットキーを割り当てたい項目だけuser_list.txtの上部にまとめると良いです
〜.nas 〜 #ショートカットキー用/スクリプト1
〜.nas 〜 #ショートカットキー用/スクリプト2
〜.nas 〜 #ショートカットキー用/スクリプト3
同じスクリプトが2回以上user_list.txtに書いてあっても特に不具合は起こりません


ちなみに、作者さんが作ったデフォルトで付いているスクリプト(list.txt)は
メニュー欄を見てもらえると分かるようにuser_list.txtの次にlist.txtの項目が来ています
なので、user_list.txtに3つのスクリプトを追加している場合

4352 user_list.txtの1行目のスクリプト
4353 user_list.txtの2行目のスクリプト
4354 user_list.txtの3行目のスクリプト(3つしか追加してないので終り)
4355 list.txtの1行目のスクリプト
4356 list.txtの2行目のスクリプト
      :
      :
このようにuser_list.txtの次の数字からカウントしていきます
つまり、user_list.txtに1つでもスクリプトが追加されると必ずズレるということです
list.txtにショートカットキーは割り当てない方が良いでしょう
どうしても、という場合はuser_list.txt側の1行目などに項目を追加してからショートカットキーを割り当てると良いと思います







-------------------------------------------
以下、公式サイトに貼られていた関数(命令)一覧



●api07.txt
script07 API

bool np_clipboard_image_exists();
クリップボードに画像があるか調べる
np_size np_clipboard_image_size();
クリップボードの画像のサイズを取得

np_image open_image(string fname);
画像を開く
np_image new_image(int width,int height,int dpi);
np_image new_image(np_size size,int dpi);
新しい画像を作成


void np_cmd(int cmd_id);
コマンドを実行

np_canvas get_active_canvas();
アクティブなキャンバスを取得

np_image get_active_image();
アクティブな画像を取得

string get_name(np_image img);
画像の名前を取得

void set_name(np_image img,string name);
画像の名前を設定


** np_image **************************************
画像

void set_active_layer(np_image img,np_layer l);
アクティブレイヤーを設定
np_layer get_active_layer(np_image img);
アクティブレイヤーを取得
int get_layer_count(np_image img);
レイヤー数を取得
np_layer get_layer(np_image img,int i);
レイヤーを取得

int get_width(np_image img);
画像の幅を取得
int get_height(np_image img);
画像の高さを取得

np_layer paste(np_image img,bool alpha);
クリップボードの画像を張り付け

bool add_size(np_image img,int left,int top,int right,int bottom);
画像に余白を追加。負の数値で削除



** np_layer **************************************
レイヤー

void set_visible(np_layer nl,bool b);
レイヤーの表示状態を設定。set_visible(nl,true);表示 set_visible(nl,true);非表示
bool get_visible(np_layer nl);
レイヤーの表示状態を取得

void set_opacity(np_layer nl,int o);
レイヤーの透明度を設定。set_opacity(nl,0);透明 set_opacity(nl,255);不透明
int get_opacity(np_layer nl);
レイヤーの透明度を取得

void set_name(np_layer nl,string name);
レイヤー名を設定
string get_name(np_layer nl);
レイヤー名を取得

bool is_group(np_layer nl);
レイヤーがグループ化されているか調べる

bool is_folder(np_layer nl);
レイヤーがフォルダか調べる。フォルダならtrue。そうでないならfalse。
bool is_open_folder(np_layer nl);
bool is_close_folder(np_layer nl);

int get_level(np_layer nl);
レイヤーの入れ子の深さを取得。レイヤーがフォルダに入っていなければ0。


** np_canvas *************************************
キャンバス

double get_scale(np_canvas c);
表示倍率を取得
void set_scale(np_canvas c,double s);
表示倍率を設定

double get_rotate(np_canvas c);
回転角度を取得
void set_rotate(np_canvas c,double r);
回転角度を設定

np_point get_origin(np_canvas c);
原点を取得
void set_origin(np_canvas c,np_point p);
原点を設定


int get_width(np_canvas c);
キャンバスの幅を取得
int get_height(np_canvas c);
キャンバスの高さを取得


void read_mouse_input(np_canvas c,string message);
マウスの入力を読み込み
np_point get_mouse_point(np_canvas c);
read_mouse_inputで読みこんだ座標を取得


void draw_line(np_canvas c,np_point p1,np_point p2);
void draw_line(np_canvas c,double x1,double y1,double x2,double y2);
画像に線を描きます


** color ******************************************


np_rgb get_select_color();
描画色を取得
np_rgb get_back_color();
背景色を取得
void set_select_color(np_rgb rgb);
void set_select_color(int r,int g,int b);
描画色を設定
void set_back_color(np_rgb rgb);
void set_back_color(int r,int g,int b);
背景色を設定

** etc ********************************************

void message_box_ok(string s);
メッセージボックスを表示
void show_script_window();
スクリプトウィンドウを表示
string get_np_dir();
猫ペイントのディレクトリを取得

void puts(string s);
スクリプトウィンドウに文字列を出力
void puts(double n);
スクリプトウィンドウに数値を出力
void puts(std::string s,double n);
スクリプトウィンドウに数値と文字列を出力

** np_cmd *****************************************

np_cmd(513); //新規作成
np_cmd(514); //開く
np_cmd(515); //保存

513 新規作成... {Ctrl + N}
514 開く... {Ctrl + O}
515 保存 {Ctrl + S}
516 名前を付けて保存... {Ctrl + Shift + S}
530 次のページ {Ctrl + PageDown}
531 前のページ {Ctrl + PageUp}
3456 スタート
3457 レイアウト
529 環境設定 {Ctrl + K}
520 閉じる {Ctrl + W}
769 取り消し {Ctrl + Z}
770 やり直し {Ctrl + Shift + Z}
786 切り取り {Ctrl + X}
785 コピー {Ctrl + C}
806 コピー 透明度付き
787 貼り付け {Ctrl + V}
805 貼り付け 透明度付き
788 消去 {Delete}
804 変形 拡大縮小回転
1537 すべて選択 {Ctrl + A}
1538 選択解除 {Ctrl + D}
1539 選択範囲を反転 {Ctrl + Shift + I}
778 塗りつぶし {Ctrl + F}
1555 選択範囲表示 {Ctrl + H}
1552 選択範囲を拡張
1553 選択範囲を縮小
1584 選択範囲を拡張1pixel
1585 選択範囲を縮小1pixel
4114 ブラシサイズ 縮小 {[}
4113 ブラシサイズ 拡大 {]}
4130 スポイト スクリーン {@}
4137 スポイト アクティブレイヤ {Ctrl + @}
4120 スポイト 背景色 スクリーン
4121 スポイト 背景色 アクティブレイヤ
1026 色調補正 トーンカーブ HSV
3335 ブラシセット表示切り替え {F4}
3329 ブラシ表示切り替え {F5}
3331 色表示切り替え {F6}
3330 レイヤー表示切り替え {F7}
3332 ナビゲーター表示切り替え {F8}
3345 custom1表示切り替え
3346 custom2表示切り替え
3347 custom3表示切り替え
3348 custom4表示切り替え
3361 key設定表示
3377 レイアウト保存1
3378 レイアウト保存2
3379 レイアウト保存3
3380 レイアウト保存4
3393 レイアウト読み込み1
3394 レイアウト読み込み2
3395 レイアウト読み込み3
3396 レイアウト読み込み4
2819 新規タブ
2821 新規タブ2
2864 スクロール ← {←}
2865 スクロール → {→}
2866 スクロール ↑ {↑}
2867 スクロール ↓ {↓}
2834 ズームイン {PageUp}
2835 ズームアウト {PageDown}
2840 カーソルを中心にズームイン
2841 カーソルを中心にズームアウト
2856 カーソルを中心に左右反転
2857 カーソルを中心に上下反転
2888 カーソルを中心に180°回転
2836 等倍 {num1}
2881 回転 CCW {/}
2880 回転 CW {\}
2883 回転 大 CCW {Shift + /}
2882 回転 大 CW {Shift + \}
2885 カーソルを中心に回転 CCW
2884 カーソルを中心に回転 CW
2887 カーソルを中心に回転 大 CCW
2886 カーソルを中心に回転 大 CW
2837 全体表示 {Shift + Home}
2838 全体表示 0° {Home}
2839 回転リセット
2852 定規 {Ctrl + R}
2853 定規 軸変更 {S}
2929 保存 消失点1
2930 保存 消失点2
2931 保存 消失点3
2932 保存 消失点4
2933 保存 消失点5
2934 保存 消失点6
2913 読み込み 消失点1
2914 読み込み 消失点2
2915 読み込み 消失点3
2916 読み込み 消失点4
2917 読み込み 消失点5
2918 読み込み 消失点6
1281 新規レイヤー {Ctrl + Shift + N}
1299 新規レイヤー(1bit)
1300 新規レイヤー(8bit)
1302 レイヤー色変更
1312 下のレイヤーとグループ化 {Ctrl + G}
1313 グループ解除 {Ctrl + Shift + G}
1284 下のレイヤーと結合 {Ctrl + E}
1362 乾燥 {A}
1282 レイヤーを複製 {Ctrl + J}
1303 フォルダを複製
1304 フォルダを複製(表示レイヤーのみ)
1336 現在のレイヤーのみ表示 {N}
1392 編集 レイヤーマスク
1361 上のレイヤー
1360 下のレイヤー
1290 レイヤー消去 {Backspace}
3073 ブラシツール {B}
3074 消しゴムツール {E}
3075 選択ブラシツール {C}
3076 選択消しゴムツール {Q}
3088 スポイトツール {I}
3104 バケツツール {K}
3105 自動選択ツール {W}
3106 投げ縄ツール {L}
3108 グラデーションツール
3107 矩形選択ツール {M}
3233 ブラシ フリーハンド {Shift + F}
3234 ブラシ 直線 {Shift + L}
3235 ブラシ 連続直線
3236 ブラシ 曲線 {Shift + C}
3237 ブラシ 楕円 {Shift + E}
3238 ブラシ 矩形 {Shift + R}
3120 手のひらツール
3121 ズームツール
3122 回転ツール {R}
3136 移動ツール
3168 コマ割りガイドツール
4129 描画色・背景色切り替え {X}
4131 描画色を黒・背景色を白に変更 {D}
4176 透明色切り替え
4177 前景色 背景色 リンク
2848 左右反転 {H}
2849 上下反転 {V}
2850 キャンバス アンチエイリアス ON/OFF {Shift + A}
2854 キャンバス 高画質 ON/OFF
2855 キャンバス 高画質2 ON/OFF
2851 次のビュー
2896 回転対称 中心
2897 左右対称 軸
2898 カーソルの位置を回転対称の中心に設定
2899 カーソルの位置を左右対称の軸に設定
4145 ブラシ濃度10%
4146 ブラシ濃度20%
4147 ブラシ濃度30%
4148 ブラシ濃度40%
4149 ブラシ濃度50%
4150 ブラシ濃度60%
4151 ブラシ濃度70%
4152 ブラシ濃度80%
4153 ブラシ濃度90%
4160 ブラシ濃度100%
4186 ベクター 自動選択解除ON/OFF {Ctrl + Shift + V}


※勝手に追記

518 web用に保存
532 ヘルプ→保存
544 終了
3450 タブ
771 メモリ開放
1025 キャンバスサイズ
1027 色調補正 トーンカーブ HSV
1028 選択範囲でキャンバスをトリミング
1283 レイヤーを削除
1285 ヘルプ→新規ベクタレイヤ(仮置き)
1287 新規ベクタレイヤ(test)
1296 線画抽出
1297 レイヤー→左右反転
1298 レイヤー→上下反転
1335 レイヤーを保存
1337 新規グループ
1344 ベクターレイヤー読み込み
1345 ベクターレイヤー保存
2305 サンプル 猫ペン4 補正弱
2306 サンプル 猫ペン4
2817 新規ビュー
2818 左右反転ビュー
3336 ツールオプション
3354 ベクター筆圧
3355 パネル1
3356 パネル2
3360 カスタム作成
3368 レイヤービュー
3369 レイヤービュー左右反転
3424 ツールボックス→サイズ
3425 ツールボックス→色
3426 ツールボックス→方向
3440 パネル1→色
3441 パネル1→ブラシ1
3442 パネル1→ブラシ2
3600 バージョン情報
3602 登録
4115 hsvコントロール切り替え
4134 ツールボックス幅+1
4135 ツールボックス幅-1
4136 hsvコントロール反転
4181 マルチタッチ風手のひらツール
4192 分割切り抜き
4193 分割なし
4194 分割 2x2
4195 分割 4x4
4196 分割 4x4 B
4200 着せ替え書き出し
4225 α→temp dir
4226 線消しゴムを使用する
4208 猫補正 品質を有効
4209 猫補正 品質 低
4213 猫補正 品質 中
4218 猫補正 品質 高
4240 ブラシ設定 保存
4241 ブラシ設定 読み込み
4242 ブラシ設定を貼り付け
4243 ブラシ設定をコピー
4259 ブラシ 筆圧 間隔
4258 ブラシ 筆圧 補充
4256 ブラシ 筆圧 ジッター
4257 ブラシ 筆圧 格子
4272 ブラシ レイヤー透明度 ジッター
4178 連動 H
4179 連動 S
4180 連動 V
4227 ブラシをスタンプ風に利用する
4229 コマ割りガイド削除
4288 自動保存→なし
4289 自動保存→5分
4290 自動保存→10分
4291 自動保存→15分
4292 自動保存→20分
4298 ツール一時切り替え→なし
4299 ツール一時切り替え→300
4300 ツール一時切り替え→500
4304 補正S→0
4305 補正S→5
4306 補正S→10
4307 補正S→15
4308 補正S→20
4320 SIMDを使用しない
4324 SSE2を使用する
790 ※1pxごとに上に移動 {Ctrl + ↑}
791 ※1pxごとに下に移動 {Ctrl + ↓}
792 ※1pxごとに左に移動 {Ctrl + ←}
793 ※1pxごとに右に移動 {Ctrl + →}
3334 ※全ウィンドウの表示非表示(現在のtab) {Tab}
3337 ※表示ウィンドウと非表示ウィンドウを切替(ドッキングパレット除く)





●np_cmd.txt
//ファイル
np_cmd(NP_NEW);//新規画像
np_cmd(NP_OPEN);//開く
np_cmd(NP_SAVE);//保存
np_cmd(NP_SAVE_AS);//別名で保存
np_cmd(NP_SAVE_WEB_AS);//Web用に保存
np_cmd(NP_CLOSE);//閉じる
np_cmd(NP_OPTION);//オプション

//編集
np_cmd(NP_UNDO);//取り消し
np_cmd(NP_REDO);//やり直し
np_cmd(NP_CLEAR_UNDO);//メモリ解放 UNDO
np_cmd(NP_FILL);//塗りつぶし

np_cmd(NP_COPY);//コピー
np_cmd(NP_CUT);//カット
np_cmd(NP_PASTE);//ペースト
np_cmd(NP_PASTE_WITH_ALPHA);//ペースト(透明度付き)
np_cmd(NP_ERASE);//消去

np_cmd(NP_MOVE_UP1);//移動 上 1pixel
np_cmd(NP_MOVE_DOWN1);
np_cmd(NP_MOVE_LEFT1);
np_cmd(NP_MOVE_RIGHT1);

//イメージ
np_cmd(NP_CANVAS_SIZE);//キャンバスサイズ
np_cmd(NP_TONE_CURVE);//トーンカーブ
np_cmd(NP_TONE_CURVE_HSV);//トーンカーブHSV
np_cmd(NP_CANVAS_SIZE_SELECT);//選択範囲でキャンバスをトリミング

//レイヤー
np_cmd(NP_NEW_LAYER);//新規レイヤー
np_cmd(NP_DUPLICATE_LAYER);//レイヤーを複製
np_cmd(NP_DELETE_LAYER);//レイヤーを削除
np_cmd(NP_MERGE_DOWN_LAYER);//下のレイヤーと結合
np_cmd(NP_CLEAR_LAYER);
np_cmd(NP_EXTRACT_LINE);//線画抽出
np_cmd(NP_HREVERSE_LAYER);//レイヤー 左右反転
np_cmd(NP_VREVERSE_LAYER);//レイヤー 上下反転
np_cmd(NP_NEW_GROUP);//新規グループ(フォルダ)

np_cmd(NP_DRY_LAYER);//乾燥

//選択範囲
np_cmd(NP_SELECT_ALL);//すべて選択
np_cmd(NP_DESELECT);//選択解除
np_cmd(NP_SELECT_INVERSE);//選択範囲を反転

np_cmd(NP_SELECT_MODIFY_EXPAND);//選択範囲を拡張
np_cmd(NP_SELECT_MODIFY_CONTRACT);//選択範囲を縮小
np_cmd(NP_SELECT_MODIFY_EXPAND_1px);//選択範囲を拡張 1pixel
np_cmd(NP_SELECT_MODIFY_CONTRACT_1px);//選択範囲を縮小 1pixel

//ビュー
np_cmd(NP_NEW_VIEW);//新規ビュー
np_cmd(NP_NEW_TAB);//新規タブ
np_cmd(NP_VIEW_RESET);
np_cmd(NP_ZOOMIN);//ズームイン
np_cmd(NP_ZOOMOUT);//ズームアウト
np_cmd(NP_ZOOM_RESET);//等倍
np_cmd(NP_VIEW_WHOLE);//全体表示
np_cmd(NP_VIEW_WHOLE_ROT0);//全体表示 回転0
np_cmd(NP_VIEW_ROT0);//回転0
np_cmd(NP_HREVERSE);//左右反転表示 切り替え
np_cmd(NP_VREVERSE);//上下反転表示 切り替え
//ウィンドウ
np_cmd(NP_SAVE_LAYOUT1);//レイアウト保存1
np_cmd(NP_SAVE_LAYOUT2);//レイアウト保存2
np_cmd(NP_SAVE_LAYOUT3);//レイアウト保存3
np_cmd(NP_SAVE_LAYOUT4);//レイアウト保存4
np_cmd(NP_LOAD_LAYOUT1);//レイアウト読み込み1
np_cmd(NP_LOAD_LAYOUT2);//レイアウト読み込み2
np_cmd(NP_LOAD_LAYOUT3);//レイアウト読み込み3
np_cmd(NP_LOAD_LAYOUT4);//レイアウト読み込み4




●api_math.txt
double cos(double);
double sin(double);
double tan(double);
double acos(double);
double asin(double);
double atan(double);
double atan2(double,double);
double cosh(double);
double sinh(double);
double tanh(double);
double log(double);
double log10(double);
double pow(double,double);
double sqrt(double);
double ceil(double);
double abs(double);
double floor(double);
double fraction(double);




●example01.txt
void example01() {
//新規レイヤー
np_cmd(1281);

//選択範囲を拡張1pixel X4
np_cmd(1584);
np_cmd(1584);
np_cmd(1584);
np_cmd(1584);

//描画色を255,255,255に設定
np_rgb col;
col.r = 255;
col.g = 255;
col.b = 255;
set_select_color(col);

//塗りつぶし
np_cmd(778);

//選択解除
np_cmd(1538);
}




●new.txt
※ver1.33_script25に入っていました
 RGB←→HSVに相互変換する項目だと思います

追加スクリプト命令

class np_hsv
{
int h;
int s;
int v;
};

np_hsv to_hsv(np_rgb rgb);
np_rgb to_rgb(np_hsv hsv);


-----------------

※ver1.33_script27に入っていました
追加スクリプト命令

void add_koma_guide_line(c_canvas_ui* ui,double x1,double y1,double x2,double y2);
void add_koma_guide_line(np_canvas c,double x1,double y1,double x2,double y2);

コマ割り用のガイド線を作成します。


-----------------

※ver1.33_script28に入っていました
追加スクリプト命令

void fill_ellipse(np_canvas c,double x1,double y1,double x2,double y2);
void draw_ellipse(np_canvas c,double x1,double y1,double x2,double y2);
void select_ellipse(np_canvas c,double x1,double y1,double x2,double y2);
楕円を描画します。

void fill_rect(np_canvas c,double x1,double y1,double x2,double y2);
void draw_rect(np_canvas c,double x1,double y1,double x2,double y2);
void select_rect(np_canvas c,double x1,double y1,double x2,double y2);
矩形を描画します。


void set_brush_dparam(int kind,double val);
ブラシのパラメータを設定します。

double get_brush_dparam(int kind);
ブラシのパラメータを取得します。
  ※パラメータの数値はブラシパレットに表示されてるものとは違ったりします。100=256だったり。
    「ブラシ設定をコピー」で出てきた数値を入れると正確な数値になります

kind
1 サイズ
2 濃度
3 間隔
4 混色
5 補充
6 テクスチャ
13 混色s
14 補充s
24 ジッター
26 ランダム最小サイズ
27 ランダム回転
28 最小サイズ
29 最小濃度
31 回転
32 回転ポイント
35 格子
36 格子吸着
37 境界サイズ
38 境界
49 混α1
50 混α2

※勝手に追記(「ブラシ設定をコピー」から判明したもの)
1  ブラシサイズ
2  濃度
3  間隔
4  混色(スライダ)
5  補充
6  テクスチャ(スライダ)
11  アンチエイリアス(0=オフ、1=オン)
12  曲線補完(0=オフ、1=オン)
13  混色s
14  補充s
15  混色(1=粗く、2=細かく、3=粗く2、5=細かく2)※廃止 4=粗く3
16  補正(スライダ)
18  ぼかし
21  T効果(0=ブラシ濃度、1=レイヤー透明度、2=前景色・背景色)
22  種類(1=ノーマル、4=文字、10=p1、11=p2、12=p3、51=a1、201=t1、204=t4、300=ST、301=ST Line)※STとST LineはQT版のみ
23  スプレー(0=オフ、1=オン)
24  ジッター
25  回転(0=なし、1=進行方向、2=進行方向 逆、3=一定、4=傾き、5=sin、6=cos)※sin、cosはQT版のみ
26  ランダム最小サイズ
27  ランダム回転
28  最小サイズ
29  最小濃度
30  テクスチャ反転(0=オフ、1=オン)
31  回転(スライダ)
32  回転ポイント
33  ブラシ円(0=オフ、1=オン)
34  猫補正(0=オフ、1=オン)
35  格子
36  格子吸着
37  境界サイズ
38  境界(スライダ)
39  ブラシ筆圧 ジッター(0=オフ、1=オン)
40  ブラシ筆圧 格子(0=オフ、1=オン)
41  ブラシ筆圧 補充(0=オフ、1=オン)
42  ブラシ筆圧 間隔(0=オフ、1=オン)
43  ブラシ筆圧 境界サイズ(0=オフ、1=オン)※QT版のHTMLパネルにのみ設定項目があります(オンにすればネコペ通常版でも使える)
44  猫補正品質(1=低、5=中、10=高)
45  猫補正強度(0〜8)
46  ブラシ レイヤー透明度 ジッター(筆圧の項目)(0=オフ、1=オン)
48  ps不透明度
49  混α1
50  混α2
51  消去(スライダ)
52  混色レイヤー(スライダ)
53  ジッターH
54  ジッターS
55  ジッターV
56  回転sin    ※QT版のみ
57  回転sin振幅 ※QT版のみ
58  回転cos    ※QT版のみ
59  回転cos振幅 ※QT版のみ
60  ST半径    ※QT版のみ
61  ST密度    ※QT版のみ

<何の項目か不明>
17
b.bitmap_folder
b.texture_folder

<スクリプトで変更不可能だったもの>
8  描画(通常、乗算、スクリーン、境界、なし、hsvなど文字で表記)
10  筆圧(0=なし、1=サイズ、2=濃度、3=サイズ+濃度)
201  ブラシ筆圧曲線 サイズ(何個かの数字で曲線を表す。パスのxy座標の羅列?)
202  ブラシ筆圧曲線 濃度(何個かの数字で曲線を表す。パスのxy座標の羅列?)
203  ブラシ筆圧曲線 補充(何個かの数字で曲線を表す。パスのxy座標の羅列?)
204  ブラシ筆圧曲線 補充 背景色(何個かの数字で曲線を表す。パスのxy座標の羅列?)
205  ブラシ筆圧曲線 消去(何個かの数字で曲線を表す。パスのxy座標の羅列?)
100  ブラシセットに保存した時のブラシ名(ブラシセットのファイルにしか書き出されない)
b.bitmap_file  ブラシ画像名
b.texture_file  テクスチャ画像名
b.color  色を指定(RGB値の数字3つ。ブラシセットのファイルにしか書き出されない)
b.layer  レイヤー名を指定(ブラシセットのファイルにしか書き出されない)
b.tool  ツールを指定(ブラシセットのファイルにしか書き出されない)



-----------------

※ver1.34_script30に入っていました
追加スクリプト命令

bool is_esc_pressed();
エスケープキーが押されているか調べます。

void begin_draw_line_(np_canvas c);
draw_line_prs_で複数の線を描く前に呼んでください。
draw_line_prsで線を引くより速く線が引けます。

void end_draw_line_(np_canvas c);
draw_line_prs_で複数の線を描いた後に呼んでください。

void draw_line_prs_(np_canvas c,np_point p1,double prs1,np_point p2,double prs2);
線を引きます。




●その他
履歴にあったスクリプトの命令

get_current_time_string1()
現在の日付と時刻を文字列形式で取得します。







●個人的メモ
間違っている可能性もあります

int 整数
char 文字(文字列ではない)
float 小数
double 小数( float よりも高精度)

void  voidはデータの型が無いという意味。関数がなにもデータを返さないことをコンパイラに教えます。
bool bool は true または falseのどちらかのみを持つことができる真偽型。
string stringは文字を扱う為の型


exp(x)  指数関数e の x乗の値を返す。
log(x)  自然対数(e を底とする対数)logex の値を返す。
log10(x)  常用対数(10を底とする対数)log10x の値を返す。
sqrt(x)  x の平方根の値を返す。
pow(x, y)  x の y乗の値を返す。
sin(x)  x(ラジアン)のサイン値を返す。
cos(x)  x(ラジアン)のコサイン値を返す。
tan(x)  x(ラジアン)のタンジェント値を返す。
abs(n)  int型データ n の絶対値を int型で返す。
ceil(x)  データ x を切り上げた値を返す。
floor(x)  データ x を切り下げた値を返す。
fmod(x)  x / y の余りの値を返す。


acos  アークコサイン値の返却
asin  アークサイン値の返却
atan  アークタンジェント値の返却
atan2  y/x のアークタンジェント値の返却
cosh  ハイパボリック コサインの返却
sinh
tanh
fraction


+   a + b  a に b を加える
-   a - b  a から b を引く
*   a * b  a に b をかける
/   a / b  a を b で割る
%   a % b  a を b で割った余り


>  より大きい  if (a > b)
>=  より大きいか、等しい(以上)  if (a >= b)
<  より小さい  if (a < b)
<=  より小さいか、等しい(以下)  if (a <= b)
==  等しい  if (a == b)
!=  等しくない  if (a != b)

+= は複合代入。a += b の場合、a = a + b と同じ意味。


&&  論理積(両方当てはまる)  if (a > 0 && b > 0)
||  論理和(どちらか一方が当てはまるor)  if (a > 0 || b > 0)
!  否定(〜ではない時)  if (!a)


for (int i=0 ; i<4 ; ++i){
命令;
}
  これで4回繰り返すという意味


文字列にて
\n  改行
\\  \を表示
\?  ?を表示
\'  '(シングルクォーテーション)を表示
\"  "(ダブルクォーテーション)を表示




●直線を描く命令のまとめ

draw_line(c,0,0,10,10);
   cと定義したキャンバスに、座標x、y=(0.0)から座標x、y=(10、10)まで直線を引く(筆圧は無し)

 np_point p1;
 p1.x=0;
 p1.y=0;
 np_point p2;
 p2.x=10;
 p2.y=10;
draw_line(c,p1,p2);
   p1とp2で先にxy座標を決めてから、直線を引く(筆圧は無し)

 np_point p1;
 p1.x=0;
 p1.y=0;
 np_point p2;
 p2.x=10;
 p2.y=10;
draw_line_prs(c,p1,0,p2,1);
   cと定義したキャンバスに、xy座標p1からxy座標p2に直線を引く(筆圧有り)
   0とか1とかは筆圧の高さです。1で100%の筆圧。

 begin_draw_line_(c);
 np_point p1;
 p1.x=0;
 p1.y=0;
 np_point p2;
 p2.x=10;
 p2.y=10;
draw_line_prs_(c,p1,0,p2,1);
 end_draw_line_(c);
   draw_line_prsとほぼ同じですがbegin〜とend〜で前後を囲ってある範囲の、
   線を引いている時の処理を非表示にして、処理速度をを劇的に速くします
   複数の直線を描きまくる時に有効
    ※draw_line_prs_ ←1番後ろに_(アンダーバー)が付いてる(間違えやすいので注意)













<HOME>