layman はコマンドシェル型インターフェースを持つの画像処理プログラムです。
Cygwinコンソール上から使用します。元々X68k上で動作する「彩」の初期バージョン
と合わせて使用していたものを、Cygwinで動作するように若干の修正を加えた
ものです。
Cygwinコンソールで使用することを前提としているので、ソースのみの
配布となっています。使用するにはコンパイルする必要があります。
アーカイブを展開して、ディレクトリを移動し、 make を実行すれば layman.exeが
できあがります。
コマンドシェル型のユーザインターフェースとなっています。
> laymanと実行する事でウインドが開きプロンプトが表示され、コマンド受け付け状態となります。ここでコマンドを実行することで、画像ファイルのロード/セーブ、画像の加工を 行います。 元々X68kで開発を開始したという経緯があり、ユーザインターフェースに凝るつもりは 無かったのですが、readlineライブラリを使用したおかげでインタラクティブ入力 性能が妙に良くなりました(^^; ただ、一連のテストや初期化を毎回入力するのも面倒 なので、一連の操作をバッチファイルの様に列記して実行する事が可能となってい ます。
> layman foo.lsh
画像を読みこみ、ノイズを加えて別ファイルにセーブし直す例を示します。
src> ./layman.exe LayMan> load foo.bmp pos=-146,-62 #BMPファイルを位置をずらしてロード LayMan> noise l=10 #ノイズを加えるコマンドを実行 LayMan> save foo.jpg optimeze q=80 #JPEGファイルにセーブ LayMan> exit #laymanを終了
src> ./layman.exe foo.lsh
================================================================ Layer Manager Shell for -彩- Ver0.60 コマンドリファレンス ================================================================ 各種画像ファイルを読み込み、画像処理を行う為のコマンドシェルで す。画像バッファを持ち、ファイルの読み込み、画像処理、ファイルの 書き出しを画像バッファに対して行います。 画像バッファの構成は以下の様になっています。 R,G,B 各8bit(0〜255) カラー情報を保持します。以後カラープレーンと呼びます。 Attribute 8bit(0〜255) 通常は透明度(==マスク)を示します。SAIフォーマットの読み書き の場合に限り、実線プレーンとして扱われる場合があります。 以後アトリビュートプレーンと呼びます。 画像サイズ layman起動直後は512*512ピクセルのバッファを確保します。 resizeコマンドによりメモリ容量の許す限り、高さ幅とも 1〜32768ピクセルの範囲で変更できます。 <起動方法> インタラクティブモードによる起動と、スクリプトモードによる起動 の二種類の起動方法があります。 ●インタラクティブモードによる起動 layman を実行すると LayMan> というプロンプトが表示されます。この状態でlaymanの内部コマン ド、もしくは外部コマンドを実行できます。 終了するには「exit」コマンドを実行して下さい。 一般的なコマンドシェルに実装されている様なヒストリやディレク トリ移動などはできません。 ●スクリプトモードによる起動 layman file でfileに書かれたコマンド列に従いコマンドの実行 を行います。全てのコマンドが実行終了すると、自動的にlayman の実行も終了します。 layman file1 file2 .... と複数のファイルを指定する事もでき ます。 行の先頭が"#"の場合はその行はコメントとみなされます。 一行に複数のコマンドを記述することはできません。また、一つの コマンドを複数行にわたって記述する事もできません。 ================================================================atrmix : アトリビュートプレーンをカラープレーンと合成する bumpmap : バンプマッピングを行う cgrad : 曲グラデーションを描画する clear : カラー/アトリビュートの各プレーンをクリアする cone : 立体円錐描画/立体円錐状変形を行う ctoa : カラープレーンをアトリビュートプレーンに変換 digit : 2値化処理を行う exit : layman終了を行う fill : 矩形領域の塗りつぶしを行う fractal : ランダムフラクタルによる画像変形を行う fractalh : ランダムフラクタルによる色相変調を行う huemove : 色相を回転する gamma : γ補正を行う interlace: NTSC状に画像変換を行う julia : ジュリア集合を描画する(Unstable) line : 直線描画を行う(Unstable) load : 画像ファイルのロードを行う。 lrevise : アンチエリアシング処理を行う matmix : 質感合成を行う(Unstable) mirror : 左右/上下対象反転を行う mono : モノクロ処理を行う mosaic : モザイク処理を行う motion3 : 接近ぶれをシミュレートする negative : ネガ反転を行う noise : 画像にノイズを加える parabola : 放物形状描画/放物形状変形を行う pers : 画像を三次元回転する pmotion : 平行ぶれをシミュレートする post : ポスタリゼーション処理を行う resize : 画像バッファの再割り当てを行う ring : 2D環状変形を行う rotate : 画像を回転する save : 画像ファイルへのセーブを行う scroll : スクロール処理を行う shade : ボカシ処理を行う sharp : 鮮鋭化処理を行う(Unstable) sinwave : 縦波/横波変形を行う sphere : 立体球の描画/立体球状変形を行う torus : トーラスの描画/トーラス形状変形を行う wave : 波紋を描画する zoom : 画像の縮小を行う(Unstable) ※(Unstable)の付いているコマンドは、組み込まれてはいるが、動作が いまいち不安定、及び特定の条件下でのみ動作を保証しているもので す。 === 説明文のルール ============================================= ※ 説明の中に Width Heightの単語が出てくる場合がありますが これは それぞれ、画像バッファの横幅と高さという意味で使用しています。 ※ [????] の様に [] で括られたパラメータ及びスイッチは省略可能で ある事を示しています。 ================================================================ ---------------------------------------------------------------- atrmix [pal=R,G,B] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- アトリビュートプレーンの値を元にしてカラープレーンへの合成を行 います。アトリビュートプレーンの情報は実行前の状態と同じままに なります。 pal=R,G,B アトリビュートプレーンをR,G,Bとしてカラープレーンに合成しま す。R,G,Bはそれぞれ0〜255の範囲の10進数で指定します。省略時は pal=0,0,0 が指定されたのと等価になります。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 [例] atrmix pal=192,150,133 area=128,128,383,383 ---------------------------------------------------------------- bumpmap [linear/spherical/sinusoidal] [depth=D] [elevation=E] ---------------------------------------------------------------- カラープレーン画像にバンプマッピングを施します。 linear/spherical/sinusoidal マッピングタイプを指定します。省略するとlinearを指定したのと 等価になります。 depth=D 溝の深さを指定します。値が大きいほど深い溝になるようマッピン グされます。省略時はdepth=4が指定されたのと等価になります。 elevation=E 勾配の角度を指定します。1〜89の実数で指定します。値が大きいほ ど溝の立ち上がりが早くなります。省略時はelevation=45.0が指定 されたのと等価になります。 ---------------------------------------------------------------- cgrad [pal1=R,G,B] [pal2=R,G,B] [pos=x,y] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーンに円形グラデーションを描画します。 pal1=R,G,B グラデーション円の中心色を指定します。R,G,Bはそれぞれ0〜255の 範囲の10進数で指定します。省略時は pal1=255,255,255 が指定され たのと等価になります。 pal2=R,G,B グラデーション円の円周色を指定します。R,G,Bはそれぞれ0〜255の 範囲の10進数で指定します。省略時は pal2=0,0,0 が指定されたの と等価になります。 pos=x,y グラデーション円の中心位置を指定します。x,y はそれぞれ -65535〜65535の範囲の10進数で指定します。省略時は画像バッファ の中心が指定されたのと等価になります。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 ---------------------------------------------------------------- clear [col=R,G,B/hsv=H,S,V/r=R g=G b=B] [attr=A] ---------------------------------------------------------------- アトリビュートプレーン/カラープレーンを指定色でクリアします。 col=(又はhsv=/r=R g=G b=B) , attr= はどちらか片方、もしくは両方 を同時に指定する事ができます。どちらも指定されていない場合は何 も行いません。hsv=とcol=の両方を指定した場合、後の方に出てきた 指示が有効となります。 layman起動直後、もしくはresizeコマンド実行直後の画像バッファの 状態は「不定」となっていますので、実行の先頭には必ずclearコマン ドを実行して画像バッファの初期化を行って下さい。 col=R,G,B カラープレーンの全領域をR,G,Bでクリアします。R,G,Bはそれぞれ 0〜255の範囲の整数で指定します。 hsv=H,S,V カラープレーンの全領域をH,S,Vでクリアします。Hは0〜1535の範囲 の整数で指定し、S,Vは0〜255の範囲の整数で指定します。 r=R,g=G,b=B カラープレーンの全領域の指定の要素だけをクリアします。R,G,Bと も0〜255の範囲の整数で指定します。本指定のどれかが行われた場合 それより手前に指定した col=/hsv= はキャンセルされます。 attr=A アトリビュートプレーンの全領域をAでクリアします。Aは0〜255の 範囲の整数で指定します。 [例] clear col=255,255,255 attr=0 ---------------------------------------------------------------- cone foo.con foo.lig [ovlap_off] [map_on] [lighting_only] [shadow_rev] [hilight_off] [shade_off] [map_area=X0,X1,Y0,Y1] [pal=R,G,B] ---------------------------------------------------------------- 立体円錐の描画及び、立体円錐変形を行います。EX-SYSTEMで使用さ れるCone.xの設定状態ファイル(*.con)とLight.xの設定状態ファイル (*.lig)が必要です。それぞれのファイルのフォーマットはEX-SYSTEM のマニュアルに準拠します。記述ミスがあった場合の描画結果は保証 されません。 ピクセルアスペクト比4:3での描画には対応していませんm(_'_)m ovlap_off 立体円錐描画時に、描画される領域に重なるアトリビュートプレーン のピクセルを0にします。予めアトリビュートプレーンを255で初期化 しておく事で、*.SI3ファイルでセーブを行うと不要部分は透明にする 事ができます。 map_on *.con内のマッピングフラグの内容に関わらずマッピングを行います。 lighting_only マッピング及び指定色での立体円錐描画は行わず、影とハイライトのみ を描画します。 shadow_rev 影が強くなる部分を逆に明るくします。ハイライトはそのままになり ます。 hilight_off ハイライトの描画を行いません。 shade_off ハイライト及び影の描画を行いません。マッピングが行われない場合 は指定色で円錐形を投影した領域を塗りつぶします。マッピングが行 われる場合は陰影無しの円錐変形を行います。 map_area=X0,Y0,X1,Y1 マッピング時の元画像領域を指定します。省略時はカラープレーン全 体がマッピングソースとなります。 pal=R,G,B マッピングを行わない場合の球の色を指定します。省略時は pal=255,255,255が指定されたのと等価になります。 ---------------------------------------------------------------- ctoa [reverse] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーンのデータをモノクロ変換してアトリビュートプレーン に加算します。値を加算するので、新規にアトリビュートプレーンへ の変換を行いたい場合は clear attr=A コマンドでアトリビュートプ レーンをクリアしておく必要があります。 reverse モノクロ変換の結果を反転してアトリビュートプレーンに加算し ます。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はアトリビュートプレーンの全領域が 対象となります。 [例] ctoa area=0,0,255,511 ---------------------------------------------------------------- digit [maskoff] [reverse] [l=敷居値] [b=R,G,B] [w=R,G,B] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーンの画像に2値化処理を施します。アトリビュートプ レーンを処理マスクとして扱います。 maskoff アトリビュートプレーンをマスクとして扱いません。 reverse アトリビュートプレーンをマスクとして扱う場合にマスク値を反転 して処理を行います。maskoffが指定されている場合にこのスイッ チを指定しても何もおこりません。 l=敷居値 2値化を行う際の敷居値を指定します。敷居値より大きい値になっ た場合は白、もしくはw=R,G,Bで指定される色に、敷居値以下の場 合は黒、もしくはb=R,G,Bで指定される色に変換を行います。省略 時は l=127が指定されたのと等価になります。 b=R,G,B 値が敷居値以下の場合に変換される色を指定します。R,G,Bはそれぞ れ0〜255の範囲の10進数で指定します。省略時は b=0,0,0が指定され たのと等価になります。 w=R,G,B 値が敷居値より大きい場合に変換される色を指定します。R,G,Bはそ れぞれ0〜255の範囲の10進数で指定します。省略時はw=255,255,255 が指定されたのと等価になります。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 [例] digit l=100 b=255,0,0 w=0,0,255 ---------------------------------------------------------------- exit ---------------------------------------------------------------- layman終了を行います。 スクリプトモード時にexitを記述した場合は後に続くコマンド列は 実行されずに、laymanを終了もしくは次のスクリプトファイルの実行 を開始します。 [例] LayMan> exit ---------------------------------------------------------------- fill col=R,G,B/hsv=H,S,V/r=R g=G b=B [area=X0,Y0,X1,Y1] [maskoff] [reverse] ---------------------------------------------------------------- カラープレーンの任意の矩形領域を指定色で塗りつぶします。 アトリビュートプレーンを処理マスクとして扱います。 col=R,G,B / hsv=H,S,V 直線の描画色を指定します。col=R,G,Bで指定する場合はR,G,Bの値を 0〜255の整数で指定します。hsv=H,S,Vで指定する場合はH,S,Vの値 をH=0〜1535,S=0〜255,V=0〜255 の整数で指定します。両方の指定 を行った場合は、一番最後に記述された指定が有効になります。 col=及びhsv=の手前に指定されたr=,g=,b=はキャンセルされます。 r=R / g=G / b=B 指定されたカラープレーンの要素だけを塗りつぶします。r=,g=,b= のいずれかが指定されると、それより手前に指定されたcol=,hsv= はキャンセルされます。 maskoff アトリビュートプレーンを処理マスクとして扱いません。 reverse アトリビュートプレーンをマスクとして扱う場合にマスク値を反転 して処理を行います。maskoffが指定されている場合にこのスイッ チを指定しても何もおこりません。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 ---------------------------------------------------------------- fractal rf.dat [l=レベル] [maskoff] [reverse ] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーン画像をランダムフラクタルを用いて変形します。 アトリビュートプレーンを処理マスクとして扱います。 rf.dat(省略不可) EX-SYSTEM付属のRF.DATを指定するか、EX-SYSTEM付属のBUILD.Xで 生成されるRF.DATを指定して下さい。 l=レベル 画像変形の強度を指定します。0〜9の範囲の10進数で指定します。 大きくなるほど変形の度合いが強くなります。 maskoff アトリビュートプレーンを処理マスクとして扱いません。 reverse アトリビュートプレーンをマスクとして扱う場合にマスク値を反転 して処理を行います。maskoffが指定されている場合にこのスイッ チを指定しても何もおこりません。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 ---------------------------------------------------------------- fractalh rf.dat [l=レベル] [maskoff] [reverse] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーン画像の色相をランダムフラクタルを用いて変調します。 アトリビュートプレーンを処理マスクとして扱います。 rf.dat(省略不可) EX-SYSTEM付属のRF.DATを指定するか、EX-SYSTEM付属のBUILD.Xで 生成されるRF.DATを指定して下さい。 l=レベル 画像変調の強度を指定します。0〜256の範囲の10進数で指定します。 大きくなるほど変調の度合いが強くなります。 maskoff アトリビュートプレーンを処理マスクとして扱いません。 reverse アトリビュートプレーンをマスクとして扱う場合にマスク値を反転 して処理を行います。maskoffが指定されている場合にこのスイッ チを指定しても何もおこりません。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 ---------------------------------------------------------------- gamma [g=gm/g=r_gm,g_gm,b_gm] [maskoff] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーン画像のγ補正を行います。アトリビュートプレーンを 処理マスクとして扱います。 g=gm/g=r_gm,g_gm,b_gm 補正値を指定します。0〜255までの浮動小数点数値で指定します。 g=gmはRed,Green,Blueのそれぞれの要素に対して同じ補正値を指示し たのと等価になります。Red,Green,Blueでそれぞれ異なる値を指定する 場合は、g=r_gm,g_gm,b_gmで各要素の補正値を指定します。g=の省略時 はg=1.0が指定された事となり、この場合は画像に変化は起きません。 従って、補正を行う場合は省略を行ってはいけません。 maskoff アトリビュートプレーンを処理マスクとして扱いません。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 [例] gamma g=0.8,1,1.2 ---------------------------------------------------------------- huemove [dh=回転値] [maskoff] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーン画像の色相を回転します。アトリビュートプレーンを 処理マスクとして扱います。 dh=回転値 色相変化の度合いを指定します。-1536〜1536の範囲の10進数で指定 します。 maskoff アトリビュートプレーンをマスクとして扱いません。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 ---------------------------------------------------------------- interlace [line_width=走査線幅] [maskoff] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーン画像をNTSCモニタで映した様な画像に変換します。 アトリビュートプレーンを処理マスクとして扱います。 line_width=走査線幅 走査線幅を指定します。1〜(Width-1)の範囲の10進数で指定します。 大きくなるほど走査線の幅、及び走査線の隙間が大きくなります。 maskoff アトリビュートプレーンをマスクとして扱いません。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 ---------------------------------------------------------------- julia [re_im=Re,Im] [by=b] ※Unstable Command. ---------------------------------------------------------------- カラープレーン画像にジュリア集合を描画します。 re_im=Re,Im 複素定数の実数値(Re)と虚数値(Im)を実数で指定します。省略時は re_im=0.0,0.0が指定されたのと等価になりますが、省略値では何も 描かれません。ジュリア集合を描画したい時は、値を省略してはい けません。 by=b 描画拡大率を指定します。1以上の整数で指定して下さい。 [例] julia re_im=-0.658,0.4675 by=32 ---------------------------------------------------------------- line v=sx,sy,ex,ey [col=R,G,B/hsv=H,S,V] ※Unstable Command. ---------------------------------------------------------------- カラープレーンに直線を描画します。 v=sx,sy,ex,ey 直線の始点座標(sx,sy)と終点座標(ex,ey)を指定します。各パラメー タ共 -32767〜32767 の整数で指定します。複数のラインを記述する 事はできません。 col=R,G,B / hsv=H,S,V 直線の描画色を指定します。col=R,G,Bで指定する場合はR,G,Bの値を 0〜255の整数で指定します。hsv=H,S,Vで指定する場合はH,S,Vの値 をH=0〜1535,S=0〜255,V=0〜255 の整数で指定します。両方の指定 を行った場合は、一番最後に記述された指定が有効になります。 省略時はcol=0,0,0が指定されたのと等価になります。 ---------------------------------------------------------------- lrevise [f=近似色値] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーンの画像にアンチエリアシング処理を施します。 f=近似色値 アンチエリアシングのかかる度合いを1〜255の範囲の10進数で指定し ます。値が大きくなるほどかかる度合いが大きくなります。省略時は f=4が指定されたのと等価になります。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 [例] lrevise f=5 area=0,0,255,255 ---------------------------------------------------------------- matmix [area=X0,Y0,X1,Y1] ※Unstable Command. ---------------------------------------------------------------- アトリビュートプレーンを明るさのレベルとみなしてカラープレーン に質感合成を施します。素材の元となる画像は予めカラープレーンに 描画しておく必要があります。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 ---------------------------------------------------------------- mirror [h] [v] [hv/vh] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーン/アトリビュートプレーン画像を左右反転及び上下反転 します。必ずカラーとアトリビュートは同時に反転処理が行われます。 h,v等の反転指示を省略すると画像には何も処理が行われません。従っ て、反転処理を行う場合は反転指示を省略してはいけません。 h 処理エリアを上下反転(水平軸反転)します。 v 処理エリアを左右反転(垂直軸反転)します。 hv,vh(又は h v 両方を指定) 上下反転/左右反転を同時に行います。結果として画像を180度回転 するのと等価になります。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーン/アトリビュートプレー ンの全領域が対象となります。 ---------------------------------------------------------------- mono [maskoff] [reverse] [pal=R,G,B] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーンの画像にモノクロ化処理を施します。アトリビュート プレーンを処理マスクとして扱います。 maskoff アトリビュートプレーンをマスクとして扱いません。 reverse アトリビュートプレーンをマスクとして扱う場合にマスク値を反転 して処理を行います。maskoffが指定されている場合にこのスイッ チを指定しても何もおこりません。 pal=R,G,B 指定された色を基調にしてモノクロ処理を行います。省略時は pal=0,0,0が指定されたのと等価になります。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 [例] mono pal=192,150,133 ---------------------------------------------------------------- mosaic [maskoff] [reverse] [blksize=w,h] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーンの画像にモザイク処理を施します。アトリビュート プレーンを処理マスクとして扱います。 maskoff アトリビュートプレーンをマスクとして扱いません。 reverse アトリビュートプレーンをマスクとして扱う場合にマスク値を反転 して処理を行います。maskoffが指定されている場合にこのスイッ チを指定しても何もおこりません。 blksize=w,h モザイクのブロックサイズを指定します。wが横幅、hが高さに相当 します。単位はピクセルで、w=2〜Width , h=2〜Height の範囲で 指定します。もし、 blksize=16 の様にwのみを指定した場合は、 hも16を指定したのと等価になります。正方形のブロックとして指定 したい場合に便利でしょう。省略時は blksize=8,8が指定されたの と等価になります。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 [例] mosaic blksize=4,4 ---------------------------------------------------------------- motion3 [param=ブレ度] [pos=X,Y] ---------------------------------------------------------------- カメラと被写体の距離が変化している時のブレをシミュレートします。 必ず全カラープレーンが処理の対象となります。 param=ブレ度 ブレの度合いを指定します。1〜9までの10進数で指定します。大き くなるほどブレの度合いが大きくなります。省略時は param=4 が 指定されたのと等価になります。 pos=X,Y 接近していくポイントを指定します。(0,0)〜(Width-1,Height-1)ま での範囲で指定します。省略時はカラープレーンの中心を指定した のと等価になります。 ---------------------------------------------------------------- negative [col] [attr] [maskoff] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーン画像又は、アトリビュートプレーン画像をネガ反転し ます。col 又は attr のいずれかを指定します。指定が無い場合は colが指定されたのと等価になります。 col カラープレーン画像をネガ反転します。maskoffが指定されていない 場合はアトリビュートプレーンを処理マスクとして扱います。 attr アトリビュートプレーン画像をネガ反転します。maskoffの指定は無 効になります。 maskoff colが指定された場合のアトリビュートプレーンのマスク処理を無効 にします。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 ---------------------------------------------------------------- noise [l=level] [h/s/v] [maskoff] [reverse] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーン画像にノイズを与えます。h/s/v のいずれも指定され なかった場合は着目ピクセルのR,G,Bそれぞれについてノイズを与えま す。アトリビュートプレーンを処理マスクとして扱います。 l=level ノイズの強さを1〜255までの10進数で指定します。値が大きくなる ほどノイズが強くかかります。省略時はl=4が指定されたのと等価に なります。 h/s/v ノイズのタイプを指定します。hが指定された場合は着目ピクセルの 色相に対してのみノイズを与えます。sが指定された場合は彩度に対 してのみノイズを与えます。vが指定された場合は明度に対してのみ ノイズを与えます。h,s,vはどれか一つしか指定できません。二つ 以上のタイプが指定された場合は、後の方に書かれたタイプが有効 となります。 maskoff アトリビュートプレーンをマスクとして扱いません。 reverse アトリビュートプレーンをマスクとして扱う場合にマスク値を反転 して処理を行います。maskoffが指定されている場合にこのスイッ チを指定しても何もおこりません。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 ---------------------------------------------------------------- load file [col] [line] [col&line] [col&tran] [line_to_attr] [col_to_attr] [tran_to_attr] [pal=R,G,B] [pos=X,Y] [maskoff] [reverse] [mono] [monob] [attr] [rot90] [mask_to_attr] [mask_to_col] [tran=透明度] ---------------------------------------------------------------- fileで指定される画像ファイルをスイッチ及びパラメータに従い、 カラープレーン/アトリビュートプレーンに読み込みます。 fileはかならず loadコマンドの次に指定して下さい。ファイルの 指定は省略できません。また拡張子も省略できません。 大文字/小文字 の区別も行いません。 指定のファイルのイメージサイズが Width×Heightよりも大きい場合 はイメージの 左上からWidth×Height分 だけ画像バッファにロードされ ます。 指定のファイルのイメージサイズがWidth×Heightより小さい場合は 画像バッファの左上を原点にロードされます。 fileには以下のものがサポートされています。 *.SAI(SAI1023.X, SAI1220.X, SAI80201.Xでロード/セーブ可能版) *.RGB(*.IPRが同一ディレクトリに必要) *.PPM(Depth==256の バイナリPPMファイルのみ) *.BMP(WindowsBMPで256色/フルカラーのいずれか) *.GLX(Matier独自形式) *.SIM(バージョン0.9.09ベース を独自解析) *.SI1(バージョン0.9.09ベース を独自解析) *.SI2(バージョン0.9.09ベース を独自解析) *.SI3(バージョン0.9.09ベース を独自解析) *.JPG(フルカラー/グレースケール JPEG) *.PNG(フルカラー/グレースケール/256色インデックスカラー インターレスは未対応) *.PCD(768*512pix^2 のみ) *.RGB.gz gzipで圧縮されたRGBファイル (*.IRP.gzも同一ディレクトリに置いてあること) *.PPM.gz gzipで圧縮されたPPMファイル *.BMP.gz gzipで圧縮されたBMPファイル col (全フォーマットに有効) カラープレーンにデータをロードします。SAIフォーマットの場合は 実線プレーンデータをマスクとみなして着色プレーンデータをカラー プレーンにロードします。maskoffが指定されている場合は着色プレー ンデータをカラープレーンにロードします。 GLXファイルを指定した場合はマスクビットが1のピクセルはロード されません。 SI3ファイルを指定した場合はカラー情報だけがロードされます。 SIMファイルを指定した場合モノクロ256階調に変換されロードされま す。 本スイッチは SIMファイル以外 はデフォルトで有効なので、指定しな くても構いません。 line (SAIフォーマットのみ有効) SAIフォーマットの実線プレーンのみをカラープレーンにロードしま す。 col&line (SAIフォーマットのみ有効) SAIフォーマットの実線プレーンと着色プレーンを合成したものをカ ラープレーンにロードします。 col&tran (SI3フォーマットのみ有効) SI3フォーマットを透明度を考慮してカラープレーンにロードします。 SI3ファイルが指定された場合は自動的に本スイッチが指定された事 になりますので、指定の必要はありません。 line_to_attr (SAI,SI1フォーマットのみ有効) SAIフォーマットの実線プレーンをアトリビュートプレーンに加算ロー ドします。 col_to_attr (SAIフォーマットのみ有効) SAIフォーマットの着色プレーンをモノクロ変換した後、アトリビュー トプレーンに加算ロードします。 tran_to_attr (SI3フォーマットのみ有効) SI3フォーマットの透明度をアトリビュートプレーンに加算ロードし ます。 pal=R,G,B (SAIフォーマットのみ有効) 実線プレーンの色を指定します。R,G,Bはそれぞれ0〜255の範囲の 10進数で指定します。省略時は pal=0,0,0 が指定されたのと等価に なります。col&line,line のいずれかが指定された時に有効になり ます。 pos=X,Y (SAIフォーマット以外有効) 画像バッファへのロード位置を指定します。指定した位置がロード する画像の左上頂点となります。マイナス値を指定する事もできま す。 mono (BMP,PPM,RGB,JPG,PNG,PCDフォーマットの場合に有効) モノクロ変換してカラープレーンにロードします。 monob (BMP,PPM,RGB,JPG,PNG,PCDフォーマットの場合に有効) モノクロ変換時に 青を基調として変換し、カラープレーンにロード します。 attr (BMP,PPM,RGB,JPG,PNG,PCDフォーマットの場合に有効) モノクロ変換した後、アトリビュートプレーンに結果を加算ロード します。新規読み込みとしてロードを行う場合は、予めアトリビュー トプレーンを clear attr=0 コマンドでクリアしておく必要があり ます。 rot90 (RGB,PPM,JPG,PPM,PCDフォーマットの場合に有効) 画像を左に90°回転させてロードします。 mask_to_attr (GLX,SIMフォーマットの場合に有効) GLXデータの場合はGLXデータのマスクビットをアトリビュートプレーン に加算ロードします。 MASK==0 の場合は0, MASK==1 の場合は255がアトリビュートプレー ンにロードされます。 SIMデータの場合は内容をアトリビュートプレーンに加算ロードしま す。 mask_to_col (GLX,SIMフォーマットの場合に有効) GLXデータの場合はGLXデータのマスクビットをカラープレーンにロー ドします。 MASK==0 の場合はR,G,B=0,0,0として、MASK==1 の場合は R,G,B=255,255,255 としてカラープレーンにロードされます。 SIMデータの場合は256階調グレースケールデータとしてカラープレー ンにロードされます。 tran=透明度 (カラープレーンにロードを行う場合に有効) ロード時の透明度を指定します。-255〜255の範囲の10進数で指定し ます。値が大きくなるほど透明度が上がります。省略時はtran=0と 等価になります。 SAIフォーマット,GLXフォーマット指定時に、maskoffが指定されて いない場合は、マスク値に透明度が加算されます。 maskoff (SAI,GLX,RGB,PPM,JPG,PPM,PCDフォーマットの場合に有効) SAIフォーマットの場合は実線プレーンをマスクとみなさなくなりま す。 GLXフォーマットの場合はマスクビットを見ないで全ピクセルをロー ドします。 RGB,PPM,JPG,PPM,PCDフォーマットの場合はアトリビュートプレーン を処理マスクとみなしてロードを行います。 reverse (SAI,GLX,SIM,RGB,PPM,JPG,PPM,PCDフォーマットの場合に有効) SAIフォーマットの場合で maskoff が指定されていない場合に、 実線プレーンによるマスク値を反転して着色プレーンのロードを行 います。maskoffが指定されている場合は実線プレーン値を反転して ロードします。 GLXフォーマットの場合で maskoff が指定されていない場合はマスク ビット値を反転した値でロードするピクセルを判定します。maskoff が指定されている場合はマスクビット値を反転した値を評価して、 ロードが行われます SIMフォーマットの場合は値を反転してロードされます。 RGB,PPM,JPG,PPM,PCDフォーマットの場合はアトリビュートプレーン を反転したものを処理マスクとみなしてロードを行います。 with_alpha(PNG) RGBデータと共にαチャネルをアトリビュートプレーンにロードしま す。この時、処理マスクは無効になります。 ※排他関係にあるスイッチは一番最後に指定されたスイッチが有効と なります。 ============================================================== 各フォーマットで指定可能なスイッチ一覧 -------------------------------------------------------------- *.SAI(default=col) col, line, col&line, line_to_attr, col_to_attr, pal=, tran=, maskoff, reverse -------------------------------------------------------------- *.BMP(.gz) (default=col) col, attr, mono, monob, pos=, tran= -------------------------------------------------------------- *.RGB(.gz), *.PPM(.gz), *.JPG, *.PNG, *.PCD (default=col) col, attr, mono, monob, rot90, pos=, tran= maskoff reverse with_attr(PNG) -------------------------------------------------------------- *.GLX (default=col) col, mask_to_attr, mask_to_col, maskoff, reverse, tran= -------------------------------------------------------------- *.SIM (default=mask_to_attr) mask_to_col, mask_to_attr, reverse, pos=, tran= -------------------------------------------------------------- *.SI1 (default=col) col, pos=, tran= -------------------------------------------------------------- *.SI2 (default=line) line, line_to_attr, pal=, pos=, tran= -------------------------------------------------------------- *.SI3 (default=col&tran) col, col&tran, tran_to_attr, pos=, tran= ============================================================== ---------------------------------------------------------------- parabola foo.par foo.lig [ovlap_off] [map_on] [lighting_only] [shadow_rev] [hilight_off] [shade_off] [map_area=X0,X1,Y0,Y1] [pal=R,G,B] ---------------------------------------------------------------- 放物形状の描画及び、放物変形を行います。EX-SYSTEMで使用される Parabola.xの設定状態ファイル(*.par)とLight.xの設定状態ファイル (*.lig)が必要です。それぞれのファイルのフォーマットはEX-SYSTEM のマニュアルに準拠します。記述ミスがあった場合の描画結果は保証 されません。 ピクセルアスペクト比4:3での描画には対応していませんm(_'_)m ovlap_off 放物形状描画時に、描画される領域に重なるアトリビュートプレーン のピクセルを0にします。予めアトリビュートプレーンを255で初期化 しておく事で、*.SI3ファイルでセーブを行うと不要部分は透明にする 事ができます。 map_on *.par内のマッピングフラグの内容に関わらずマッピングを行います。 lighting_only マッピング及び指定色での立体球描画は行わず、影とハイライトのみ を描画します。 shadow_rev 影が強くなる部分を逆に明るくします。ハイライトはそのままになり ます。 hilight_off ハイライトの描画を行いません。 shade_off ハイライト及び影の描画を行いません。マッピングが行われない場合 は指定色で放物形を投影した領域を塗りつぶします。マッピングが行 われる場合は陰影無しの放物形投影変形を行います。 map_area=X0,Y0,X1,Y1 マッピング時の元画像領域を指定します。省略時はカラープレーン全 体がマッピングソースとなります。 pal=R,G,B マッピングを行わない場合の球の色を指定します。省略時は pal=255,255,255が指定されたのと等価になります。 ---------------------------------------------------------------- pers [pos=OX,OY,OZ] [rot=RX,RY,RZ] ---------------------------------------------------------------- カラープレーン及びアトリビュートプレーン画像を一枚の板の様に 見立てて三次元回転させます。必ず全カラープレーン及びアトリビュー トプレーンが処理の対象となります。 pos=OX,OY,OZ 回転軸の中心位置を移動量を指定します。 OX: 負の値の場合は左に移動し 正の値の場合は右に移動します。 OY: 負の値の場合は上に移動し 正の値の場合は下に移動します。 OZ: 負の値の場合は遠ざかり(縮小される) 正の値の場合は手前に 移動(拡大される)します。 省略時はpos=0,0,0が指定されたのと等価になり、カラープレーンの 中心が回転軸の中心になるように描画されます。 rot=RX,RY,RZ X,Y,Zそれぞれの回転軸の回転角を"°"(度/degree)で指定します。 省略時はrot=0,0,0が指定されたのと等価になります。 ---------------------------------------------------------------- pmotion [l=ブレ度] [v=X,Y] ---------------------------------------------------------------- カメラが平行に移動した時のブレをシミュレートします。必ず全カラー プレーンが処理の対象となります。 l=ブレ度 ブレの度合いを指定します。1〜9までの10進数で指定します。大き くなるほどブレの度合いが大きくなります。省略時は l=4 が指定 されたのと等価になります。 v=X,Y カラープレーンの中心に対するブレの方向を指定します。もし Witdh=640,Height=480 のカラープレーンに右方向のブレをかける場 合は pos=639,240 などと指定します。省略時はpos=0,0が指定され たのと等価になります。 ---------------------------------------------------------------- post [d=階調度数] [maskoff] [reverse] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーン画像にポスタリゼーション処理を施します。 アトリビュートプレーンを処理マスクとして扱います。 d=階調度数 階調の丸めを行う時の分割数を指定します。大きくなるほど階調が 減ります。2〜128までの整数で指定します。省略時は d=64が指定さ れたのと等価になります。 maskoff アトリビュートプレーンを処理マスクとして扱いません。 reverse アトリビュートプレーンをマスクとして扱う場合にマスク値を反転 して処理を行います。maskoffが指定されている場合にこのスイッ チを指定しても何もおこりません。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 ---------------------------------------------------------------- resize size=Width,Height ---------------------------------------------------------------- 画像バッファの再割り当てを行います。本コマンドを実行すると、そ れまでの画像バッファの内容は不定となります。 size=Width,Height 画像バッファのサイズをピクセル単位で指定します。それぞれ 1〜32768の範囲の10進数で指定します。 メモリの不足により画像バッファが確保できなかった場合はエラーメッ セージが出力されます。以後、resize,exit 以外のコマンドは実行で きません。 ---------------------------------------------------------------- ring [pos=ox,oy] [r=ri,ro] [rep=n] [t=th] [map_area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーン及びアトリビュートプレーンの画像を平面環状変形し ます。 pos=ox,ox 変形後のリングの中心座標を指定します。ox,oyとも-32767〜32767 までの整数で指定します。省略した場合画像バッファの中心を指定 したのと等価になります。 r=ri,ro リングの内円の半径(ri)と外円の半径(ro)を指定します。リングの 幅は ro-ri となります。省略した場合ri=96,ro=240が指定されたの と等価になりますが、多くの場合 この省略値に意味は無いと思いま すので、実際は省略してはいけません。 rep=n リングの中に描画するマッピングソースの枚数を指定します。nを増 やすと、円周方向にn枚分マッピングソースを列べた様にマッピング します。nは1〜256までの整数で指定します。省略時はrep=1が指定 されたのと等価になります。 t=th マッピング後のリングの回転角度を指定します。thは-359〜359まで の整数で指定します。正の値を指定した場合は左に回転し、負の値 を指定した場合は右に回転します。省略時はt=0が指定されたのと 等価になります。 map_area=X0,Y0,X1,Y1 マッピングソースの範囲を指定します。X0,X1は(0〜Width-1)までの 整数で指定し、Y0,Y1は0〜(Height-1)までの整数で指定します。 省略した場合はカラープレーン及びアトリビュートプレーン全体を 指定したのと等価になります。 ---------------------------------------------------------------- rotate [pos=OX,OY] [r=R] [t=th] ---------------------------------------------------------------- カラープレーン及びアトリビュートプレーン画像を二次元回転させま す。カラープレーン及びアトリビュートプレーンが処理の対象となりま す。 pos=OX,OY 回転の中心位置を指定します。OX,OYそれぞれ0〜(Width-1),0〜(Height-1) の整数で指定します。省略時は pos=Width/2,Height/2 が指定された のと等価になります。 r=R 回転を行うエリアの半径を指定します。posを中心として半径R内の ピクセルが回転の対象となります。1〜65535の整数で指定します。 省略時はr=32が指定されたのと等価になります。 t=th 回転角度を"°"(度/degree)で指定します。値が正の場合は右回転、 負の場合は左回転になります。省略時はt=0と等価になるので、回転 を行いたい場合は省略してはいけません。 ---------------------------------------------------------------- save file [q=Quality] [s=Smooth] [gray] [area=X0,Y0,X1,Y1] [sample=H,W] [l=level] [optimize] ---------------------------------------------------------------- fileで指定されるファイルにカラープレーン及び、アトリビュートプ レーンをセーブします。fileの指定は省略できません。また、拡張子 まで含めて指定する必要があります。 fileには以下のものがサポートされています。 *.SAI(SAI1023.X, SAI1220.X, SAI80201.Xでロード/セーブ可能版) *.RGB(*.IPRを同一ディレクトリに生成) *.PPM(バイナリPPMファイル) *.BMP(WindowsBMPでフルカラー) *.SIM(バージョン0.9.09ベース) *.SI1(バージョン0.9.09ベース) *.SI2(バージョン0.9.09ベース) *.SI3(バージョン0.9.09ベース) *.JPG(フルカラー/グレースケール) *.PNG(フルカラー/グレースケール) *.RGB.gz gzipで圧縮されたRGBファイル (*.IPR.gzも同一ディレクトリにセーブする) *.PPM.gz gzipで圧縮されたPPMファイル *.BMP.gz gzipで圧縮されたBMPファイル *.SAIを指定した場合はカラープレーンを着色プレーンに、アトリビュー トプレーンを実線プレーンにセーブします。カラープレーンのみのセー ブ、及びアトリビュートプレーンのみのセーブはできません。その場 合は clear コマンドを使用して、セーブしたくない画像バッファプ レーンを予めクリアしておく必要があります。 *.RGB(.gz),*.PPM(.gz),*.BMP(.gz),*.SI1の場合はカラープレーンのみ がセーブされます。もしアトリビュートプレーンをセーブしたい場合は atrmix コマンドでアトリビュートプレーンとカラープレーンを予め合成 しておく必要があります。 *.SIM,*.SI2の場合はアトリビュートプレーンのみがセーブされます。もし カラープレーンをセーブしたい場合はctoaコマンドで予めアトリビュー トプレーンにデータを転送しておく必要があります。 q=Quality *.JPG時のセーブ画質を指定します。0〜100までの整数で指定します。 値が大きいほど画質が良くなります(==圧縮率は下がります)。省略時 は q=75 が指定されたのと等価になります。 s=Smooth *.JPG時にスムージングを行う度合いを指定します。1〜100までの整 数で指定します。値が大きくなるほどスムージングの度合いが大きく なります。省略時は s=0 が指定されたのと等価になります。 sample=H,W *.JPG時に色度(CbCr)を間引く度合いを調節します。H,Wはそれぞれ 水平,垂直の間引き度合いを示し、1〜2の整数で指定します。 sample=1,1の場合にソース画像に最も近い状態でエンコードされます (==圧縮率は下がります)。省略時は sample=2,2 が指定されたのと 等価になります。デコーダによってはsample=1,2をデコードできない 場合がありますので、通常は sample=1,1/2,1/2,2 のいずれかを指定 する様にして下さい。 optimize *.JPG時に2パス圧縮を行います。本スイッチが指定された場合、大量 の作業メモリを必要とします。メモリが不足すると、JPGセーブ時に laymanがアボートする場合があります。その場合は、optimizeスイッ チを外し、jpegtran 等のコマンドにより最適化する様にして下さい。 l=level *.PNG,*.BMP.gz,*.RGB.gz,*.PPM.gz時の圧縮のレベルを指定します。 1〜9の整数で指定します。値が大きいほど圧縮率は高くなります(圧 縮に要する時間も多くなります)。省略時はいずれのフォーマットの 場合でも、l=6 が指定されたのと等価になります。 gray *.JPG/*.PNG 時にグレースケール変換を行いながらセーブします。 area=X0,Y0,X1,Y1 全フォーマットに対して矩形セーブ領域を指定します。省略時は カラープレーン/アトリビュートプレーンの全領域が対象となります。 with_alpha(PNG) RGBデータとアトリビュートプレーンの内容をαチャネルとしてセーブ します。 ---------------------------------------------------------------- scroll [atr_scroll_off] [roll=VX,VY] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- アトリビュートプレーン、カラープレーンの領域を指定量だけスク ロールします。スクロールアウトする領域は反対側にラップ(WRAP)し ます。 atr_scroll_off アトリビュートプレーンのスクロールを行いません。カラープレー ンのみスクロールされます。 roll=VX,VY 左右,上下のスクロール量を指定します。VXは -(Width-1)〜(Width-1) までの範囲を、VYは -(Height-1)〜(Height-1)までの範囲を10進数で 指定します。省略時はroll=0,0が指定されたのと同じになりますの で、実際にスクロールしたい場合は省略してはいけません。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時は全カラープレーン/全アトリビュートプ レーンが処理の対象になります。 [例] scroll roll=256,10 atr_scroll_off ---------------------------------------------------------------- shade [maskoff] [reverse] [l=ボカシ度] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- カラープレーンにぼかし処理を施します。アトリビュートプレーンを 処理マスクとして扱います。 maskoff アトリビュートプレーンをマスクとして扱いません。 reverse アトリビュートプレーンをマスクとして扱う場合にマスク値を反転 して処理を行います。maskoffが指定されている場合にこのスイッ チを指定しても何もおこりません。 l=ボカシ度 ボカシの度合いを指定します。1〜8の範囲で10進数で指定します。 大きくなるほどボカシの度合いが大きくなります。省略時はl=1が指 定されたのと等価になります。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 [例] shade l=2 ---------------------------------------------------------------- sharp [area=X0,Y0,X1,Y1] ※Unstable Command. ---------------------------------------------------------------- カラープレーンに描かれたモノクロ線画画像に鮮鋭化処理を施します。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 ---------------------------------------------------------------- sinwave [pitch] [l=振幅] [t=周期] [th=位相] [area=X0,Y0,X1,Y1] ---------------------------------------------------------------- アトリビュートプレーン、カラープレーンの領域を縦波/横波変形し ます。 pitch 縦に波うたせます。省略時は横に波うちます。 l=振幅 波の大きさをピクセルを単位として指定します。省略時はl=50が指定 されたのと等価になります。 t=周期 波の周期を指定します。省略時は t=1 が指定された事と等価になり、 処理領域高さ(pitch指定時は処理領域幅)内に1周期分の波が現れます。 th=位相 波の位相を指定します。ピクセルを単位として波を左右(pitch指定時 は上下)に動かします。省略時は th=0 が指定された事と等価になり ます。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時は全カラープレーン/全アトリビュートプ レーンが処理の対象になります。 ---------------------------------------------------------------- sphere foo.sph foo.lig [ovlap_off] [map_on] [lighting_only] [shadow_rev] [hilight_off] [shade_off] [map_area=X0,X1,Y0,Y1] [pal=R,G,B] ---------------------------------------------------------------- 立体球の描画及び、立体球状に変形を行います。EX-SYSTEMで使用さ れるSphere.xの設定状態ファイル(*.sph)とLight.xの設定状態ファイ ル(*.lig)が必要です。それぞれのファイルのフォーマットはEX-SYSTEM のマニュアルに準拠します。記述ミスがあった場合の描画結果は保証 されません。 ピクセルアスペクト比4:3での描画には対応していませんm(_'_)m ovlap_off 立体球描画時に、描画される領域に重なるアトリビュートプレーンの ピクセルを0にします。予めアトリビュートプレーンを255で初期化し ておく事で、*.SI3ファイルでセーブを行うと不要部分は透明にする 事ができます。 map_on *.sph内のマッピングフラグの内容に関わらずマッピングを行います。 lighting_only マッピング及び指定色での立体球描画は行わず、影とハイライトのみ を描画します。 shadow_rev 影が強くなる部分を逆に明るくします。ハイライトはそのままになり ます。 hilight_off ハイライトの描画を行いません。 shade_off ハイライト及び影の描画を行いません。マッピングが行われない場合 は指定色で塗りつぶし円を描き、マッピングが行われる場合は陰影無 しの球状変形を行います。 map_area=X0,Y0,X1,Y1 マッピング時の元画像領域を指定します。省略時はカラープレーン全 体がマッピングソースとなります。 pal=R,G,B マッピングを行わない場合の球の色を指定します。省略時は pal=255,255,255が指定されたのと等価になります。 ---------------------------------------------------------------- torus foo.tor foo.lig [ovlap_off] [map_on] [lighting_only] [shadow_rev] [hilight_off] [shade_off] [map_area=X0,X1,Y0,Y1] [pal=R,G,B] ---------------------------------------------------------------- トーラス形の描画及び、トーラス形への変形を行います。EX-SYSTEM で使用される Torus.xの設定状態ファイル(*.tor)とLight.xの設定状 態ファイル(*.lig)が必要です。それぞれのファイルのフォーマットは EX-SYSTEMのマニュアルに準拠します。記述ミスがあった場合の描画結果 は保証されません。 ピクセルアスペクト比4:3での描画には対応していませんm(_'_)m ovlap_off トーラス描画時に、描画される領域に重なるアトリビュートプレーンの ピクセルを0にします。予めアトリビュートプレーンを255で初期化し ておく事で、*.SI3ファイルでセーブを行うと不要部分は透明にする 事ができます。 map_on *.sph内のマッピングフラグの内容に関わらずマッピングを行います。 lighting_only マッピング及び指定色でのトーラス描画は行わず、影とハイライトのみ を描画します。 shadow_rev 影が強くなる部分を逆に明るくします。ハイライトはそのままになり ます。 hilight_off ハイライトの描画を行いません。 shade_off ハイライト及び影の描画を行いません。マッピングが行われない場合 は指定色で塗りつぶし、マッピングが行われる場合は陰影無しのトー ラス変形を行います。 map_area=X0,Y0,X1,Y1 マッピング時の元画像領域を指定します。省略時はカラープレーン全 体がマッピングソースとなります。 pal=R,G,B マッピングを行わない場合のトーラスの色を指定します。省略時は pal=255,255,255が指定されたのと等価になります。 ---------------------------------------------------------------- wave [hv=偏平率] [time=t] [light_off] [refrect] ---------------------------------------------------------------- 波紋の描画を行います。カラープレーンの全領域が処理の対象になり ます。 hv=偏平率 円の縦横比を指定します。0〜255で縦の比率がhv/256になります。 257〜65535で横の比率が256/hvになります。指定が無い場合は hv=256が指定されたのと等価になります。 time=t 中心から波紋が広がっていく時の経過時間を指定します。0〜65535 の範囲で指定します。0に近いと波紋の広がり始めの絵を描画し、大 きくなるほど波紋の広がり、波の減衰、反射などを繰り返した 絵を 描画します。省略時は t=30 が指定されたのと等価になります。 light_off ハイライト処理を行いません。屈折率による画像の変形だけを行い ます。 refrect カラープレーンの画面枠を壁とみなして、反射のシミュレートを行 います。画面枠まで到達しなくてはならないので、time=tの値を少 し大き目に取る必要があります。 ---------------------------------------------------------------- zoom [by=b/by=bx,by/size=W,H] [area=X0,Y0,X1,Y1] ※Unstable Command. ---------------------------------------------------------------- カラープレーン画像を縮小します。縮小された画像はカラープレーン の縮小元となったエリアの左上を原点として描画されます。 by=b/by=bx,by/size=W,H 縮小率を指定します。 by=bの場合、処理領域の幅,高さとも 1/b となります。1〜65535まで の実数で指定して下さい。 by=bx,byの場合 処理領域の幅は1/bxに、高さは1/byになります。1〜 65535までの実数で指定して下さい。 size=W,Hの場合は処理領域をW,Hのサイズとなるように縮小します。 W,Hには処理領域以下のサイズを指定して下さい。 area=X0,Y0,X1,Y1 処理を行う矩形領域を指定します。指定された矩形領域のみ処理 の対象になります。省略時はカラープレーンの全領域が対象となり ます。 ================================================================ [実行時の注意点] スイッチの依存関係を見ていないので、loadコマンドなどでBMPファ イルにも関わらず、line_to_attr を指定した場合でもエラーになり ません。結果が意図したモノと異なる場合などはスイッチの指定を中 心にスクリプトのデバッグを行ってくださいm(_'_)m ???=[0〜255] などのパラメータ指定で、指定範囲外の数値を指定し た場合は、そのパラメータの最大値、もしくは最小値が指定されたの と等価になる様にリミッターを付けてあります。従って、指定範囲 エラーは検出しません。しかし、将来的にそのリミット値が変化する 可能性も考えられますので、できるだけ指定範囲内の値を指定するよう にして下さい。 [運用上の注意点] ovlapとsave は実行の度にファイルのオープン/クローズを行ってい るので、 load foo.bmp shade save foo.bmp といったフィードバックセーブが可能なのですが、スクリプトの記述 ミスやプログラムバグなどにより、思った結果が得られなかった場合 に、元ファイルを破壊してしまうため、二度と同じ結果を得る事がで きなくなります。 loadコマンドによるアトリビュートプレーンへのデータロードは全 て現在のアトリビュートプレーンの状態に加算される形で行われます。 複数のファイルに対する処理を行う場合に、アトリビュート画面の状 態がそのまま継続しても良いのか、それとも clearコマンドで予め初 期化しておかなければならないのかということに注意して下さい。 clear col=255,255,255 attr=0 をスクリプトファイルの先頭、save コマンド後の処理の先頭に実行する様にしておけば、アトリビュート が意図した状態になっていないというスクリプトバグを減らせると 思います。
laymanの名前の由来は「Layer Manager Shell」というところからきています。
実際に使用していただくと、単なる一枚の画像バッファがあるだけなのに、
何故「レイヤー」?と疑問が沸くでしょう。それにはまず、彩の歴史から
お話しなくてはなりません。
最初に私が彩を使用したのは1997年頃かと思います。その当時の彩には、
16bit(実際は15bit)×3(RGB)の背景プレーンと、16bit(実際は15bit)×1の
線画プレーンの二種類のみのレイヤーしかありませんでした。しかし、
モノクロで主線を描き着色をする場合、線画プレーンに線を描き、
背景プレーンに着色を行うという事になりますが、
「色を付けても線画に描いた線が消えない」という今となっては
当たり前とも思える機能が、X68kという1997年当時に使用するには
スペック的にも相当辛いプラットホームで、現実的なレスポンスで
動作するというのが、脅威的だったのです。特に彩はブラシの描画が
美しく、それまでのX68k上で動作するグラフィックツールではほとんど
描画不能と思われていたタッチが可能でした。
ところが、全てがOKという訳ではなく、それまでのグラフィックツール
でも実装されていた「マスク機能」が付いていませんでした。
大経口のブラシでも美しい描画が可能でしたが、ある狭い領域を
ムラ無く塗るには、マスク機能でマスキングを行ない、大口径
ブラシで塗るのが簡単です。そのとき何気に、一枚絵をパーツ毎に
分解し、線画プレーンをマスクに見たてて着色領域の切り出しを
行い、複数できるパーツファイルを最後に合成することで、
擬似的に複数のレイヤーを使用できるのではないかと考えたのです。
そのパーツファイルを「レイヤー」と称し、それを統合すると
いう意味でレイヤーマネージャと名づけて作成したプログラムが
laymanだったという訳です。今にして思うと、やっていることは非常に単純
なのですが、「原理的に可能」というレベルであって、とても現実的
なCG作成環境ではなかったと思うのです。しかし、それで何点かCGを描いた
という昔の自分のパワーに驚いてしまいます(^^;。単に暇だったと
いう話はあるのですが、それよりも、そうして出来あがるCGが、
それまでのグラフィックツールを使って私がどんなに努力をしても、
到底描き出す事ができなかったものを、描き出す事ができたという
ところにあったと思っています。
その後、彩も進化を続け、マスクと複数レイヤーが実装され、
laymanはレイヤーのマネージメントを行うことは徐々になくなり、
画像の加工と他フォーマットへの変換という事に役割を変えて
いきました。最終的に彩には画像エフェクトを与える機能がプラグイン
として外部から自由に供給できるように実装されたため、laymanの
エフェクト機能の大部分はプラグインへと姿を変え、最終的に全ての作業は
彩の上で行えるようになり、laymanは自然に使用しなくなりました。
その後、時代の流れでWindowsマシンを使用するようになった私は
次第にX68kを使用する頻度が下がり、ご存知のように彩がWindows上で
動作するようになるとともに、X68kは完全に使用しなくなりました。
では、なぜまたWindows上でlayman?ということになる訳ですが、これに
ついては完全に趣味の部分でありまして、CygwinでWindows APIを使用して
グラフィックプログラムを作って遊ぶのにlaymanを引っ張り出して使ったと
いうだけのことだったりします(^^;
Cygwin版はあまり使い込んでいないため、バグの潜んでいる可能性が非常に
高いのです。また「ヲレツール」であるため、私が困らない不具合は永久に
放置される可能性があります。そのときは適当に直して使用していただく
ということでお願いしますm(_'_)m
2001/10/07 : Cgywin版初版