ローダに依存する機能 by えむけいさま  引用 T_Ten 1997/11/10
もくじ

  1. はじめに(動作確認環境)
  2. fkissのイベント拡張
  3. コメント表示機能
  4. PlayFKiSSについて(Macの人も見て!) (T_Tenが追加)



 本ファイルは、えむけい氏作 KISSLD v0.07s添付ヘルプに記載されている 内容のうち「fkiss命令」と「コメント機能」に関するファイルを取り出し、 T_Ten が、えむけい氏の承諾を得て、 テキストファイルに直したものです。m(__)m
しかし、一部分表記を変更していますので、まったく同じではありません。
最新の情報につきましては、最新のKISSLDの添付ヘルプをごらんください。 (【4】は T_Tenが編集しました。)

【TTFKSMN4.HTM】では、一般的な使用法の説明をしましたが、 本ファイルは、それでは至らない部分の、特に機種依存する部分の より深い説明となっています。

データを作成なさる皆様が、他の人の環境を考慮頂ければ より多くの人に、自分の意図した作品を見てもらうことができるでしょう。

注:1997/11/10時点での最新版は
KISSLD v0.07sです。


【1】はじめに(動作確認環境)

 現在、KISSのデータをさらに楽しいものにするべく、仕様上のさまざまな 拡張が試みられています。それらの拡張は、当然ながらその仕様をサポートする ローダでしか使えません。
また、KISS/GSであいまいな部分の動作が、ローダによって微妙に異なったりも しています。
以下に、私が知っている拡張仕様や、互換性に関して私が気づいた部分をあげて おきます。ただしこれは私が勝手に調べたものなので、疑問点などについて各ローダ の作者様に直接問い合わせるようなことはご遠慮ください。

 ローダの動作はバージョンによっても異なります。 私が動作の検証に用いた ローダとそのバージョンは、以下の通りです。とくにバージョンを明記してい ないときは、このバージョンについての説明であるとお考えください。

 WKISS/WKISS32に関しては、最新の公開バージョンであるWKISS ver 2.36a w0.68以降 とWKISS32 v0.04以降の、バージョンによる違いに触れている場合もあります。

・WKISS32 v0.04d
・WKISS v0.68c
・KISSGAシリーズ v1.50
・KISS v2.50d
・fkiss v0.25
・KISSLD v0.07s



【2】fkissのイベント拡張

 イベント拡張はまだ実験的な規格であり、fkiss の仕様自体が しばしば変わるうえ、ローダによって微妙に解釈が異なったりするため、 データとローダの間にはかなりの「相性」があります。
 ここではFKISSEX*.DOCの内容を繰り返すことは しません。互換性の問題に限って説明します。
fkissのイベント拡張に関しては、 すでにある程度の基礎知識を持っていることを前提にしています。


fkiss
(1)yav氏による、UNIXの X Window System 用KISSローダです。 KISSをマルチメディア対応にするための拡張機能をサポートしています。
この拡張機能に対応したデータでは、クリックすると音声が出たり、 簡単なアニメーションをしたりします。ただし現時点ではまだ実験的な規格に すぎず、次期KISSにはまったく異なる記述方式が採用される予定だそうです。

(2)fkiss(1)で実装されている、イベント拡張機能のことを指してfkissと呼ぶ こともあります。

FKISSEX*.DOC
fkissのアーカイブfkiss???.tar.gzに同梱されている、 次のファイル群の総称です。

FKISSEX.DOC
FKISSEX1.DOC
FKISSEX2.DOC
FKISSEX3.DOC

fkissは実験仕様であって日々変化する可能性があるため、 公式なマニュアルは存在しません。 このドキュメント自体バージョンとともに変化する可能性が あるので、できる限り最新版を参照することをおすすめします。
本ヘルプで参照しているバージョンは、??? = 025です。



1・サポートしていない命令(オリジナルはえむけい氏作)


 イベント系の命令は、実際に意味のある実装がなされていなくてもキーワード として認識している場合があります。これは、未対応だからといって単純に無視 するとコンフィグの誤動作をまねくおそれがあるからです。

 たとえば、いまのところleftside,rightside,upside,downsideを実装している ローダはありません。

 なお、すべてのローダですべての命令について実験したわけではないので、 ウソを書いている可能性もあります(^^;。間違いを見つけられましたらご一報い ただけると幸いです。


・図中で使用した記号
○:動作可能な命令
-:動作しない命令
*:キーワードとしてプログラムの中に予約されているが、動作はしない命令

動作環境UNIX/X11Win32PC-9821Win32Win32Macintosh
ローダーfkissWKISS32KISS21KISSLDPlayFKissFrench Kiss
バージョンv0.25v0.04gv1.50v0.07qalpha 0.712.2.0
命令数363430305129
never---
initialize
alarm
begin
end*
press
release
catch
drop
fixcatch
fixdrop
unfix
set
col-
in*-----
out*-*---
leftside*-*---
rightside*-*---
upside*-*---
downside*-*---
nop--
debug-
shell---
unmap
map
altmap
move
sound
timer
randomtimer
quit--*-
changeset-
changecol-
transparent--
windowsize--*-
viewport--*-
ローダーfkissWKISS32KISS21KISSLDPlayFKissFrench Kiss


 以下はFKiSS2命令です。それぞれの命令の互換性はよくわかりません。
これらの命令の説明は、ローダー付属のドキュメントをご覧ください。
また、ご使用の際は、使用ローダーを明示した方が良いでしょう。

ローダーWKISS32v0.04gPlayFKiss alpha 0.71French Kiss 2.2.0
version-
in/FKiSS2
collide-
out/FKiSS2
apart-
stillin
stillout
music-
notify-
moveto
movebyx
moverandx--
movebyy
moverandy--
movetorand-
ifmapped--
ifnotmapped--
iffixed--
ifnotfixed--
ifmoved--
ifnotmoved--
setfix--


in/FKiSS2,out/FKiSS2
 FKiSS2命令で使用されているin,out命令は、fkiss命令でキーワード予約 されているin,out命令と異なるため、このように表記しています。
プログラムの世界は早いもの勝ち。といううわさもありますが、 出来ることなら互換性の高いものになるといいです。:-( (T_Ten)

shell
 インターネットエクスプローラ3.0のセキュリティホール騒動で有名になりました が、任意のプログラムを(たとえばFDISKだろうがFORMATだろうが)起動できるという のは、とても恐いことなのです。本家fkissでも特別なスイッチを指定して起動しな いと有効にならなかったはずです。
 とくにクライアントサーバを想定した作りになっているfkissではリモートマシン 上の任意のプログラムを起動できるケースも考えられ、完璧なセキュリティホール になります。
 KISSLDでは-dをつけなかった場合、実行するはずだった文字列を診断出力へ送るに とどめます。


2・同時に起動するタイマ

 まず、以下のfkiss命令をご覧ください。

;@press(#1)             ;オブジェクト#1がマウスでクリックされると起動します。
;@      timer(3,200)    ;200ミリ秒後に鳴るタイマ3を仕掛けます。
;@      map("huge.cel") ;huge.celを表示状態にします。
;@      timer(2,100)    ;100ミリ秒後に鳴るタイマ2を仕掛けます。
;@alarm(2)              ;タイマ2が鳴ったときに起動します。
;@      timer(1,100)    ;100ミリ秒後に鳴るタイマ1を仕掛けます。
;@alarm(3)              ;タイマ3が鳴ったときに起動します
;@      timer(4,1000)   ;1000ミリ秒後に鳴るタイマ4を仕掛けます。
;@alarm(1)              ;タイマ1が鳴ったときに起動します

;@      timer(4,0)      ;タイマ4が仕掛けられていたら、解除します。
 では、問題です。

問1
huge.celは非常に巨大で(あるいはマシンが非力で(;_;))、 マップに150ミリ秒かかったとします。
タイマ2が起動するのは #1が押されてから何ミリ秒後でしょうか?
ただし、セルのマップ以外にかかった時間は無視できるものとします。

問2
問1と同じ条件で、タイマ1が起動するのは、 #1が押されてから何ミリ秒後でしょうか?

問3
タイマ4は鳴るでしょうか?


答1 150ミリ秒後
マップに150ミリ秒かかって、それから100ミリ秒後に鳴るから250ミリ秒…… というのは間違いです。
timer命令は、自分が実行されたときの時刻ではなく、自分を支配下におく イベント(問題文の例ではpress(#1))が起動されたときの時刻を基準に、 タイマを仕掛けます。

答2 200ミリ秒後
タイマ2が起動するのが150ミリ秒後で、それから100ミリ秒後に鳴るタイマを 仕掛けるから250ミリ秒後……というのは間違いです(T_T)。
alarmは、実際の起動予定より遅れて起動しても、その遅れも計算に入れて 動作します。

だから、問題文の例では実際には150ミリ秒後に起動していますが、 タイマ1の起動時刻を決めるときには、あたかも100ミリ秒後に起動したかの ように計算します。

このへんは雑誌などの〆切りに似ていると思います。今月〆切りに遅れた からといって、来月以降の〆切りも延びるわけではありません:-)。

答3 わからない
FKISSEX*.DOCを見ても、同時に発生する(はずである)イベント同士が どういう順番で処理されるかは書かれていません。
同じイベント内でのアクションについては処理系依存 (つまり結局わからない(^^;)と明記されています。

したがってこういう記述はしないほうがいい……のですが、 fkissやWKISS32での実装に依存したデータもすでに存在します。
その場合の答は「鳴る」です
(なぜそうなのかは、これ以上ローダ依存のデータを増やしたくないので 説明しません)。
しかたがないのでKISSLDでもこの動作に合わせました。




3・transparent命令

transparent命令で(あるいはコメントの%tで)指定できる 透明度の範囲は0〜256です。

WKISS32 v0.04では付属ヘルプに0〜255の範囲で補正すると書いてあり、 実際そうするのですがこれはある意味不具合のようです。

WKISS32でも内部的には256で完全に透明になるよう計算していますし、 %tでは補正を行っていないので透明度256も指定できます。

ですから、完全に透明にしたい場合には

transparent("aaa.cel", 256)

のように指定してください。

 v0.04では間違って255に補正されるWKISS32でもエラーにはなりませんし、 v0.04c以降では正しく256になります。
 ローダによっては、256を指定した場合と255を指定した場合とで 処理速度がぜんぜん違う可能性があります。

 なお、transparentおよび%tによって指定できる透明度と、 フルカラーセルでピクセル単位に指定できるアルファ値(透明度)は、 どちらもckissで規定しているにもかかわらず数値の意味が 異なることに注意してください。
前者は範囲が0〜256で数値が大きくなるほど透明になりますが、
後者は範囲が0〜255で数値が小さくなるほど透明になります。

追記:97/10/30
注:現バージョンのWKISS32では、transparent命令を使う場合には KISS領域にて、
%t0,%t256,%t128といった透明色指定の 機能文字を、 とにかくどこかに一つ以上指定する必要があります。
指定しなかった場合は、fkiss領域にてtransparentを指定しても 透明色は表示されません。(未公開版WKISS32 v0.04gで確認)

次のバージョン以降で修正されるそうです。


ckiss
(1)ひゅう氏によるKISSローダです(Win32用です。Macで動くPower PC版もある ようですが、詳細は知りません)。KISSでフルカラー/半透明対応のセルファイルや、 コンフィグファイルのコメント領域を利用して半透明を実現するための拡張機能を 提唱しています。

(2)ckiss(1)で実装されている、フルカラー/半透明拡張仕様のことです。



4・オブジェクトのmap/unmap/altmap

 最新の(fkiss 0.25の)解釈では、map/unmap/altmap命令は、 セルに対してしか使えないことになっています。
しかし、多くの互換ローダは、古いデータの互換性のため、 引き続きオブジェクトのmap/unmap/altmapをサポートしています
(KISSLDもそうです)。
実はfkissもサポートしていますが、仕様では一切保証されていません。



5・同名のセル

 複数行コメントなどの関係で、まったく同じ名前のセルを複数回読み込む場合があります。そういうセルをfkissコマンドの引数に使った場合の動作はローダによって異なります。

例:

#0 abc.cel
#1 abc.cel
#2 abc.cel
(中略)
;@      altmap("abc.cel")
fkiss/WKISS/WKISS32/KISSLDの場合
いちばん上のセルのみがaltmapされます。また、こちらがfkissとしての 正しい(fkissの提唱者であるyavさんの意図している)動作のようです。

KISSGAシリーズの場合
同名の、すべてのセルがaltmapされます。

6・大文字・小文字の区別

fkissの命令は、すべて大文字・小文字を厳密に区別します。
セルファイル名の指定も大文字・小文字を区別するよう、FKISSEX*.DOCには 書かれていますが、実はfkissは、まったく同名のセルが見つからないときは (警告を表示した上で)大文字・小文字の組み合わせを除いて同名のセルで 代用するようになっています。

私の試した限りでは、WKISS/WKISS32/KISSGAシリーズも、セルファイル名に 関しては大文字・小文字を区別しないようです。
ちなみに、KISSLDも大文字・小文字を区別しません。

では、すべてのローダが同じ動作なのかというと、残念ながらそうでは ありません。

#0 abc.cel
#1 ABC.CEL
#2 abc.cel
(中略)
;@	unmap("ABC.CEL")

上記の例では、
fkissは2番目のセルをunmapします。
KISSGAシリーズは3つともunmapします。
それ以外のローダはいちばん上のセルをunmapします。


7・再生できる音声ファイル

FKISSEX*.DOCによれば、 「オーディオファイルのフォーマットは未定」 なのだそうです。
とりあえずWindowsのWAVEファイルにしておけば、Windows用のローダでは まず間違いなく鳴りますが、他のOSでの動作も考えると難しいようです。


8・固定値がついたセルのmove

WKISS/WKISS32ではmove命令で動かしているセルをクリックしても、固定値は 減算されないようです。それ以外のローダでは減算されます。
なぜWKISS系がこういう仕様なのかは謎です。


9・releaseイベントの起動タイミング

 FKISSEX*.DOCによれば、固定オブジェクト(を構成するセル)に設定されたrelease イベントは、固定オブジェクトが自動的にもとの位置に戻っても、ボタンを離す までは発生しないことになっています。
 しかしKISSGAシリーズ/WKISS w0.68/WKISS32 v0.04bは、固定オブジェクトが もとの位置に戻った時点でreleaseイベントを発生させてしまうようです。
WKISS v0.68c/WKISS32 v0.04c以降では、この非互換は修正 されています。

【3】コメント表示機能

 セルをマウスの右ボタンでクリックしたとき、そのセルにコメントがついて いればそれを表示するという機能です。うまく使えば(もちろん発声はしませ んが)KISSで簡単なおしゃべりとか案内図も楽しめます。
 厳密にいうならコメントがローダの機能で表示されることを想定していないデータ (KISSGAシリーズの登場以前にはけっこうありました)では作者の意図しない表示を してしまう可能性があります。しかし、逆にこの拡張を用いたデータを非対応 ローダで読んでも、コメントが見えないだけで動作にまったく問題はありません。 そのためもあってか、かなり多くのローダがサポートしていますが、 KISS/GSでは何も規定されていません(たとえば本家のPC-9801用KISS v2.50d もサポートしていません)。

またサポートしているローダ同士ではかなり動作が異なり、 凝ったコメントを 付けているデータ作者の方々は、 ローダ別にコンフィグを用意するなどの対策 をされているようです。


私が知っている各ローダの動作を示します。

本家KISS.EXE v2.50d
WKISS ver 2.36a w0.68
WKISS v0.68c/WKISS32/fkiss
KISSGA/21/CL
Macintosh用KISSローダ
参考: KISSLDでは

長いコメントの表示方法とローダの対応を表にまとめると、

fkissKISSGAWKISSWKISS32 KISSLD
自動折り返し×× [*]
機能文字××
複数セル×

となります。

ご覧のとおり、どのローダでも使える方法はありません。
とくにKISSGAシリーズとfkiss / WKISS32とで両立させるのは不可能です。
 また、一見同じ動作をしているように見えるfkiss/WKISS32/KISSLDも、 セットに存在しないセルやマップされていないセルの扱いがバラバラです。

 次期KISSではMacintosh(というかボタンがひとつしかない環境)での扱いを どうするかも含めて、統一仕様を正式に規格化していただけるといいですね。
それまではローダごとの特徴をつかんで、楽しく利用しましょう(^^)。




本家KISS.EXE v2.50d
コメント表示機能はありません。 右クリックすると、マウスカーソルの位置 に関わらずツールパレット(?)の表示色が変化します。

WKISS ver 2.36a w0.68
右クリックすると、クリックした位置にあるオブジェクトに関して を表示します。
WKISS自体は折り返しはしないようですが、表示に使っているMessageBox関数 の仕様から、あまりに長い行は自動的に(勝手に)折り返されるため、 画面からはみ出すということはありません。

WKISS v0.68c/WKISS32/fkiss
クリックしたオブジェクトに所属するすべてのセルに 関して、 コメントを表示します。 コメントにはいくつか機能文字が使えますが、長い行を自動的に 折り返すことはありません。折り返しも機能文字で指定してやらなくてはなら ないのです(複数セルを用いた方法もありますが、コメント付きデータの作者 の皆様はよくご存じでしょうから、説明は省略します)。

 WKISSはメッセージボックスを使い、タイトルバーにはオブジェクト番号も表示 されます。
 WKISS32/fkissはマウスボタンを押している間だけコメントを表示し、 オブジェクト番号は表示しません。
 fkissは起動時オプションにより、クリックしたセルのみコメントを表示する モードや、セルの(CNF内での)行番号も表示するモードに切り替えられます (両者の併用もできます)。いずれの場合も機能文字は有効で、自動的に 折り返すことはありません。

KISSGA/21/CL
 クリックしたセルにコメントがあれば、それを表示します。
 クリックしたセルにコメントがない場合、


 セルを(重ね合わせ順で)上から探します。そして最初に見つかったセルの コメントを代わりに表示します(それも見つからなければ何も表示しません)。
 長いコメントは、半角40桁ごとに自動的に折り返されます。
 また、オプションによって本家と同じ動作にもできるようです。

 上記はv1.50以降での動作です。古いバージョンでは、 表示するのはクリックしたセルのコメントのみです。 同じオブジェクトに所属する他のセルは関係ありません。

Macintosh用KISSローダ
Macintoshのマウスには ボタンがひとつしかありませんから、当然「右クリ ックした場合の動作」なんてあるわけありません。ただし、バルーンヘルプを 使ってカーソル位置にあるセルのコメントを表示する、などの試みがなされて いるようです。

KISSLD
KISSLDでは
 拙作KISSLDでは、できるだけ多くのコンフィグに対応させるため、 2通りの表示モードを用意しています。
それぞれ古いWKISS風の動作と、WKISS32/fkiss風の動作をします。
 WKISS32/fkissモードの場合、"/!で囲まれておらず、複数セルも機能文字も 使っていないコメントは、半角64桁程度で自動的に折り返します。それ以外の 場合は(作者ご本人による改行の入れかたを尊重するため) 自動折り返しはしません。

 またKISSLDは(どちらのモードでも)セット情報を見て、 現在のセットに存在しないセルのコメントは 表示しないようにします。
 WKISS/WKISS32の以前のバージョンおよびfkissはセット情報に関係なく、 同じオブジェクトに所属し、かつコメントがあるなら、すべて表示します。

 WKISS32 v0.04c以降は現在のセットに存在しないセルのほか、fkiss命令で アンマップされたセルのコメントも表示しません。


KISSLDの自動折り返し
「自動折り返し」は KISSLD ver 0.07e以降で可(本ファイル参照)

セット情報
(1)セット別のデータのうち、セーブ機能で書き換えられるもの (オブジェクトの位置情報および選択しているパレット組の番号)のことを、 私が勝手にこう呼んでいるだけです。公式な用語ではありません。
(2)各セットに、セルファイルが存在するかどうかを示す情報など、 セット別に管理される情報のことは何でも「セット情報」と 呼ぶ可能性があります。

セット
(1)セルの有無(使っているかどうか)、選択しているパレット組、および オブジェクトの位置情報からなるデータです。 最大10個までのセットを切り替えられます。
パレット組とオブジェクトの位置情報はディスクにセーブできます。
(2)1つのコンフィグファイルから生成される、 最大10個までの切り替え可能なセット(1)全体のことも、 (広義に)セットと呼ぶ場合があるようです。 基本セット/追加セットなどという場合は、こちらの使い方です。


引用:えむけい氏作 KISSLD v0.07s 添付ヘルプより。





【4】PlayFKiSSについて(by T_Ten)
あくまで T_Tenの私見ですが

fkissについて指導頂き、調べてきましたが、 一言にfkissと言ってもローダー毎に細かい動作が違うようです。
もちろん統一して欲しいですが、意志疎通の困難さから、 これらローダーの動作が統一される事はよほどの事がなければ 有り得ないでしょう。

なので、KISS/GSや fkiss の仕様と違ったデータを作成する方は、 いっそのこと「似てるけど違うプログラムなんだ!」と割り切って

「動作するローダーを明確に示す」
などの自衛策を忘れないでください。

さて...。
【海外の動向】1997/8/13現在

海外にもKISSは広まっており、 日本とは違った独自のKISS文化を歩んでいるようです。

Chad Randall氏作の PlayFKiss (Windows95/NTで動作します。) や、
John Stiles 氏作の French Kiss (Macintosh で動作するはずです。)
MacOSの種類までは知らないので。m(__)m

も、そういったローダーです。
Macな方々は、French Kissにお世話になっている方が多いと思います。



【さらなる拡張への試み】

PlayFKissの作者 Chad氏は、色々な命令を積極的に実装していまして、 「FKiSS2」を新たに提唱し、その命令のランク付けをしています。

このChad氏独自の「FKiSS2」の分類によると
MacintoshのFrench Kiss 2.2.0の命令が ( version 2 ) だとわかります。

その動作の詳細、使い方について 詳しくは、PlayFKiSSの添付ドキュメントを見て下さい。 m(__)m

「fkiss」命令では表現出来ない、アクティブな作品を作りたいのなら 「FKiSS2」命令を使用してみても、面白い作品になると思います。

その際は、皆様のためにも使用ローダーを明記してくださいね。m(__)m

【データ互換性に関する不安】

将来はわかりませんが、動作がはっきりするまでは
使用の際には、Chad氏提唱の「FKiSS2」とyav氏提唱の「fkiss」とは、 全く別個のモノだと割り切った方が現在の所は良い様です。

なぜなら、現在「fkiss」命令でさえローダー毎に細かい違いがあるのに 「FKiSS2」はそれを考慮していない(というか言葉の壁で難しい ?) Chad 氏のさらなる拡張仕様なので、命令の互換性が保たれているかどうか 不安な面が無いとはいえないからです。

せっかくデータを作っても、互換性のない命令を使用した為に 他の人に見てもらえなかったり、せっかくデータをダウンロードしても 命令に対応していないローダーしか持っていないために、データを観賞 出来なかったら、みなさん困るでしょう?

【データ作成時の御願い】

PlayFKissもFrench Kissも一応「fkiss」の命令を使用出来るので
データを作成する際は、「fkiss」の命令を使用すれば多くの人が 観賞できるデータを作成する事が出来るでしょう。

マシンパワーの進化は予想できないのでわかりませんが 現在の所は、Windows95/NT用のPlayFKissは動作が重いので 各種国産ローダと比べると見劣りしてしまう。というのが 私の環境での正直な感想です。 もちろん、個人使用に関して私がとやかく言う権利は有りません。m(__)m

将来、「fkiss」にしろ、「FKiSS2」にしろ、
KISSでアニメーションするための命令がどう変化して行くかわかりませんが、 みんなで楽しめる命令になると良いなあ、と思います。


【PlayFKiss,French Kissで使用される命令一覧(だけ)】

以下に列挙するのは、Chad氏による独自の分類の「FKiSS2」命令です。
( version 0 )から( version 3 )まで、分類されています。

「データの互換性を保ちたい」「より多くのデータを共有したい」
という希望から、あえてその命令の指定方法を説明しません。 [*]

この「FKiSS2」命令を使用したい人は、
PlayFKissに添付されるドキュメントをご覧下さい。


FKiSS (version 0) で動作する命令
[Event]
alarm(n)
begin()
catch(#n)catch("CELNAME.CEL")
col(n)
drop(#n)drop("CELNAME.CEL")
end()
fixcatch(#n)   fixcatch("CELNAME.CEL")
fixdrop(#n)fixdrop("CELNAME.CEL")
initialize()
press(#n)press("CELNAME.CEL")
release(#n)release("CELNAME.CEL")
set(n)
unfix(#n)unfix("CELNAME.CEL")
[Action]
altmap(#n)altmap("CELNAME.CEL")
changecol(n)
changeset(n)
map(#n)map("CELNAME.CEL")
move(#n,i,j)move("CELNAME.CEL",i,j)
nop()
randomtimer(n,i,j)
sound("FILENAME.XXX")
timer(n,i)
unmap(#n)unmap("CELNAME.CEL")

FKiSSb (version 1) で動作する命令
[Event]
never()
[Action]
debug(文字列)
quit()
transparent("CELNAME.CEL")
viewport(n,n)<謎です。
windowsize(n,n)

FKiSS2 (version 2) で動作する命令
[Event]
in(#m,#n)
out(#m,#n)
stillin(#m,#n)
stillout(#m,#n)
version(n)
[Action]
movebyx(#n,i,j)
movebyy(#n,i,j)
moveto(#n,i,j)
music(FILENAME.XXX)
notify(文字列)

FKiSS2.1 (version 3) で動作する命令
[Event]
apart("CELNAME1.CEL","CELNAME2.CEL")
collide("CELNAME1.CEL","CELNAME2.CEL")
[Action]
iffixed(#n,i,j)
ifmapped("CELNAME.CEL",i,j)
ifmoved(#n,i,j)
ifnotfixed(#n,i,j)
ifnotmapped("CELNAME.CEL",i,j)
ifnotmoved(#n,i,j)
moverandx(#n,i,j)
moverandy(#n,i,j)
movetorand(#n)
setfix(#n,i)

なお、使用した記号は次の通りです。
#m,#n              ;  #m,#n  で指定するオブジェクト番号です。
CELNAME.CEL        ;  セルファイル名です。
FILENAME.XXX       ;  FILENAME.XXX  で指定するファイル名です。
i,j,m,n            ;  10進数の整数です。


[*]
というか、マシンパワー(=お金)が無いので説明できないのが 本当の所です。486 class CPUでは KISSで本格的なアニメーションするのは つらいです (T-T) しかし、将来この命令が「fkiss」との互換性も考慮され、 さらに快適に動作するなら、きっと楽しいものになると思います。 決して、「FKiSS2」の試みを否定するものではありません。 残念ながら、現在の所は「fkiss」とは微妙に違う解釈をするようです。 また、動作が重く、timerのタイミングなどバラバラになってしまうので 使用の際には注意して欲しいと思います。 PlayFKissの作者 Chad氏は、「fkiss」と互換性のあるローダーを 作成したいと考えておられるようなので、将来動作が統一されるなら、 この様なことは考え過ぎなのかもしれません。:-)

[MORE.HTM]