●MacでKissデータを作ってみようじゃありませんか奥さん-Vol.4

さて、いままで散々「fkiss」と言っておきながら、全く手を付けていなかったので、この辺でそろそろfkissに挑戦

してみるとしましょう。かくいう私も、fkissはコレが初めてです。おっかなびっくりしながら、ハイレベルなKissを

制作するのも乙なモンでしょう。いっしょに勉強してインタラクティブでアンビバレンツな(後半間違い…)Kissを

作りましょう、そうしましょう。


●めんどくさいから、オフラインでマターリみたい...という人は

この.html一式と、製作工程ごとのKissデータ、完成版Kissデータ、元の画像(.PSD形式)
、各セルに加工前のリソース画像にパレット7種まで大大セット!!
(マカー以外は上手く見られないかも知れませんので、そこんトコよろしく)

【こちらからダウンロード】


●fkissとは何なのか?

そもそもfkissとは何だいね? と言う方もいらっしゃるでしょう。詳しいことは私も知りませんが(ヲイヲイ)

簡単に言うとインタラクティブなKissデータのことです。これはただの着せ替えゲームを発展させようとした

Kissローダー制作者様方の宿願だったようです。従来の、衣服がレイヤー状に重なった「普通の」Kissと比べても

飛躍的に進歩したのがソレであります。簡単なアニメーション、命令構文を用いたギミック、更に腕と根気さえあれば

ゲームのような物も作れてしまう、なによりFlashのように専用の高いソフトを買わなくても、テキストエディタだけで

出来てしまう夢のようなシステムなのです(結果的にFlashには勝てませんでしたが…)。

 加えて、世のKissはほとんどが何らかのfkissであり、何のひねりもないKissというのは意外と少なかったりします。

別にノーマルのKissでも良いのですが、まあ行ってみるとしましょう。

●Kissのスキル

ここへ来て、Kissって何? Kissってどうやって作るの? と言ったご相談は勘弁してください。今までのレクチャーで

いっしょに学んできたはずです。読んでいないなら読んでください。以降は、一応Kissデータを作成できる事を最低条件と

してお話を進めさせていただきます。

 さて、fkissといっても本体はKissと同じです。何ら変わりはありません。構文を解析すると解りますがfkissのスクリプトは

オリジナルのKissを強化する形でくっついてきていることが解ります。詰まるところ、ナイスなKissからナイスなfkissも生まれる。

大元となるKissデータ制作を怠っては行けないと言うことですな。

IconParty本領発揮!

私は今回も伝家の宝刀、IconPartyを使います。ということで16色で作りましょう。フルカラーKissがナンボのもんじゃい!

環境に甘んじることなく、茨の道を突き進みましょう。昔のドッターやグラフィッカーは少ない色を…って、まあいいか。

今回は、fkissと併せて多段パレットという芸当を使ってみたいと思います。コレは一言には説明しにくいので、その時に

じっくり説明させていただきます。

←ここまで一気に駆け抜けます。止まっている暇はない。

ちなみに、今回のレクチャーではストリートファイターゼロ2に初登場した格闘女子高生さくらを取り上げてみました。

いつになくメジャーなキャラですが、さくらとしてはお気に入りです。木之元よりも神宮寺よりも好きでしょうか…?

まあ、それは置いておくとしましょう。

パレットワークを施し、PICTリソース、ID=128で保存。基本は忘れないでください。なお、上の画像ではPhotoShopの4.0.1jと

Elements形式のファイルがゴッチャになっていますが体の主線をIconPartyで仕上げ、服装は全てPhotoShop Elementsで

制作しました。ドット絵が描ける方ならKissデータを0から興すことも可能なわけです。腕に自身がある方は是非!

 かなり早く仕上がるはず

(一番時間かかるのはもちろん既成の画像を取り込んだ場合(Vol.1で実践済み)です。主線抽出と吹っ飛ばしが延々と続きます)。

 

 ファイルが揃ったらいつも通りにcelmakerに放り込み、.celデータと.kcfデータにしましょう。問題なくセルデータ化したら

.cnfにスクリプトを記述します。

←目がねえ…

早いモンで、すぐにかんせ…って目がねえ!? ドコでミスったんだ? 目のセルが抜け落ちてる!?

 …訳ではありません。今回は、fkiss。よってfkissの初歩とされる「目パチ」を行うために瞳のレイヤーを

まだ配置していないのでした。目パチとは、つまり瞬きのこと。皆さん、どこかでKissデータを入手して遊んでいたら

Kissのキャラがふと瞬きをしたなんて事ありません? それにもfkiss構文が働いているのです。

私も偉そうなことは言えませんので、ネット上のfkissのまつわる参考文献を傍らに置きつつ、いよいよfkiss構文へ

突入いたしましょう。

●いざ、fkiss。

 fkiss構文についてはネット上、特にKissの御大WKP様のホームページにその説明書があります。それを読んで

理解できればfkissもつつがなく制作できることになるのですが、fkissの説明書はシロウトが読むと今ひとつ

不親切というか、解りにくいです。

 そこで、最初は高望みせず目パチに全ての労力を払い、目パチだけを再現するべくレクチャーを行います。

物事は簡単な所から手を付けた方がよい物ですからね。皆さんも、まずは脇見せずに目パチを実現させましょう。そもそも、

目パチ以外に何かしたいですか?

←左からアニメーションすれば嬉しいのですが…さて。

上のように3枚の目を描きました。この3枚が順に現れればアニメーションが成立するわけです。考え方としては

gifアニメに近いでしょう。

それでは、以下fkiss構文のスタートです!

●fkiss構文に挑め!

 まず、一般的なKiss実行ファイルである.cnf形式のファイルを先に作成しておいて下さい。今までのレクチャーで

お勉強済みなので問題はありませんね? ようは、スタンダードなKissデータを作れと言うことです。

 そいつが完成したら、fkiss構文を差し込んでいきましょう。いよいよfkissですぞ、ドキドキ!


;↓fkiss構文スタート↓
;@EventHandler; 絶対、必ず、死んでも入れなくちゃいけないそうです。

;@ initialize() ; 命令を初期化する構文

;@ begin() ; かってに始めちゃって、と言う構文。
;@ timer(0,1) ;0.001秒経ったらalarm(0)を始めて、と言う構文

;@ alarm(0) ;これはalarm(0)だよ、という構文。
;@ unmap("eye1.cel") ;開いた目玉を消して、という構文。
;@ randomtimer(1,75,250) ;0.075秒〜0.25秒位経ったらalarm(1)を始めて、という構文。

;@ alarm(1) ;これはalarm(1)だよ、という構文。
;@ unmap("eye2.cel") ;半開きの目玉を消して、という構文。
;@ randomtimer(2,500,1000) ;0.5秒〜1秒位経ったらalarm(2)を始めて、という構文。

;@ alarm(2) ;これはalarm(2)だよ、という構文。
;@ map("eye2.cel") ;半開きの目玉を出して、という構文。
;@ randomtimer(3,100,300) ;0.1秒〜0.3秒位経ったらalarm(3)を始めて、という構文。

;@ alarm(3) ;これはalarm(3)だよ、という構文。
;@ map("eye1.cel") ;開いた目玉を出して、という構文。
;@ randomtimer(0,1000,3000) ;1秒〜3秒位経ったらalarm(0)を始めて(最初に戻って)、という構文。

;@end() ;おしまい、という構文。


これを、.cnfの最後に差し入れてください。このまま描いたら、訳ワカメですのでこれから説明させて

頂きます。

 

;@EventHandler; 絶対、必ず、死んでも入れなくちゃいけないそうです。

この一文からfkissが始まります。Kissローダーに「この.cnfはfkissだよ」と教えるための文だと思ってください。

絶対、必ず、死んでも入れてください。コレがないと動きません。

 加えて、必ずこの書き方で行ってください。大文字小文字の間違い、空白の挿入は厳禁です。1から書いてミスるよりも

コピペで貼り付けた方が確実かも知れません。

なお、fkiss構文は全て「;@」から始まります。何でだ? とか考えずに、そうだと思えばいいんです。

あと、fkiss構文中にあっても「末尾;」以降はコメント欄として使えるようです。覚えておきたいことや一言メモを

添えておけば、自分自身にも、また解析にかけた人にも優しいでしょう。

 

;@ initialize() ; 命令を初期化する構文

初期化する構文…だそうです。何だか意味が分かりませんが、とりあえず書いて置いて下さい。一体コレは何なんだ?

とか、細かいことは気にしないでください。イニシャライズと読むようですね。

 

;@ begin() ; かってに始めちゃって、と言う構文。
;@ timer(0,1) ;0.001秒経ったらalarm(0)を始めて、と言う構文

 ここから、いよいよfkissの命令構文です。まず最初の「;@ begin()」ですが、もちろん沖縄のバンドではありません。

これは人間の行動に関係なく、Kissの方でかってに始めちゃっていいよ、という命令文です。今回は目パチなので、我々

プレイヤーが何かしなくても、勝手に始まってくれなくては困るわけです。したがって、コレを用います。

 これ以外にOnmouseに当たる構文が存在しますが、今は割愛します。

;@ timer(0,1)」これは、○○しろ! という文字通りの命令文です。

 :@ begin()の後を受けて、自動的に実行される最初の命令です。なお、コレは1回だけ実行されますが、今はあまり気にしなくて

よろしいです。timerといっても、時間を計るわけではありません。時間を使った命令だと思ってください。

 上の文では(0,1)と、指示されていますね。かっこ内の最初の0は「alarm(0)を始めて」という命令です。alarmとは

目覚ましのことではなく、一つの命令文のセットだと思ってください。いや、思え。

 次の1は○秒経ったら、の意味です。1は1秒ではなく0.001秒です。この命令構文では、速攻で命令が開始されるという

事になりますね。

;@ alarm(0) ;これはalarm(0)だよ、という構文。
;@ unmap("eye1.cel") ;開いた目玉を消して、という構文。
;@ randomtimer(1,75,250) ;0.075秒〜0.25秒位経ったらalarm(1)を始めて、という構文。

 ほとんどはこんな文で構成されています。「;@ alarm(0)」は一つの命令構文セット、その0です。という文です。

なぜalarmなのかは不明です。
 そして、「;@ unmap("消したいセルの名前")」を用いてセルを消すことにより擬似的なアニメーションを

作り出すわけです。

 なお、すでに私の目パチ用セル(eye1.cel〜eye3.cel)は配置済みです(アニメーションさせたい画像も、セル化して

配置して置いて下さい。)

←上に重なったセルを消すことでアニメーション化させていることがわかります。

ちなみに、unmapとは逆にセルを表すときはmapを用います。今回のfkiss構文でも、unmapで上のセルを

消しつつ、目を閉じる絵まで持ってゆき、後半は上のセルを再度表すことで目の開く様を表現しているのが

分かるはずです。

 

;@ alarm(3) ;これはalarm(3)だよ、という構文。
;@ map("eye1.cel") ;開いた目玉を出して、という構文。
;@ randomtimer(0,1000,3000) ;1秒〜3秒位経ったらalarm(0)を始めて(最初に戻って)、という構文。

こうしてみると、スクリプト自体は簡単とは言えませんが、ドコで何がどう作用するのかは見えてきたのではないでしょうか?

上の構文でもう一度、おさらいです。

;@ alarm(3) ;
アラーム-3の命令構文を開始という構文。

;@ map("eye1.cel") ;
eye1.celを表示してね。という構文です。目が開いたことになります。
eye1.cel

;@ randomtimer(0,1000,3000) ;
とらえ方としては1秒〜3秒の間待ってから、アラーム-0(つまり最初)に戻ってね、という構文です。
かっこ内は順に、次にやって欲しいアラーム番号このくらいは待って欲しい秒数(1/1000単位)、
最長はこのくらいという秒数(1/1000単位) 
を指示しているのです。ちなみにtimer関数も使用可能です。
timerですと、指定された時間きっちりを消費してから次のアラームへ移行します。

 

さあ、いかがでしょうか?

ここまで問題なく進んでいれば目パチが完成は近いです。fkiss構文の最末尾には終了を示す命令構文

;@ end() ;

を記しておきましょう。コレでfkissの命令が完了しました。Kissローダーで動作を確認してみるといたしましょう。

問題なく動いていれば、アナタは私よりも優秀です(ヲイヲイ…

 

 何か異常が見つかった、特にいくつかあるウチの1ツのセルで固まってしまった、アニメーションしないという場合

、往々にしてalarm番号の指定が間違っていると考えられます。;@begin() ; 直後の ;@timer 関数で最初のalarm

番号を指定、続く格alarm内で次ぎalarm番号の指定を行っていますが、当てずっぽうな番号を指定してしまうと画像は

アニメーションしません(当然ですね)。ほぼ、コレが原因になっています。あとはtimerで指定した秒数が短すぎると

セルはマッハでアニメーションします(w

この辺は、適量というヤツを守りましょう。

 

●手間ひま加えてもう一工夫

 目パチが無事に動き出したら、それで完成でもよいのですがもう少しfkissを研究してみるためにも、もう一つ

fkiss構文を加えてみましょう。

 では、お約束通りにOnmouseに当たるスクリプトを使用し、遊んでいる我々のクリックなどによってレスポンスを

返すという物をやってみたいと思います。先程作った目パチfkissを更に改造します。不安ならバックアップを取っておきましょう。

それでは行ってみよー!

 さて、あるセルをクリックすると今回はスカートがめくれるというアニメーションを作成してみましょう。コラ、そこ

エロイとか言わない! 科学の進歩にエロは不可欠なのです!

とはいえ、すでに目パチが出来ているのですから後はそれを発展させていけばいいのですねぇ。ただ、Kissの上とはいえ

あくまでアニメーションですので画像となるセルを作らねばなりません。今回は、スカートがブワーッとめくれさせたいので

今までのスカートから、めくれたスカートを作ってみましょう。

←基本理念はこう言うことです。スカート画像を3つ用意しました。

用意していて感じたのですが裏地も書いた方がよりリアルに仕上がったかも知れませんねぇ…ただ、今回はfkiss構文が

絡むため、無駄を極力省いてしまいましょう。そうしましょう。


(448,320) ;
%cap_plt.kcf ;
[0 ;
;
#1 glove.cel : 0 ;オープンフインガーグローブ
#0 hear.cel : 0 ;髪の毛
#2 sneaker.cel : 0 ;コンバース?
#3 sailor.cel : 0 ;セーラー服上
#4 suihei.cel : 0 ;セーラ服下
#5 bura.cel : 0 ;とっくりブラ
#6 blo.cel : 0 ;ブルマ
#7 pants.cel : 0 ;下着
#8 maki.cel : 0 ;鉢巻き
#9 eye1.cel : 0 ;fkiss用-瞳セル^full
#9 eye2.cel : 0 ;fkiss用-瞳セル^1/2
#9 eye3.cel : 0 ;fkiss用-瞳セル^0/0
#0 body.cel : 0 ;さくら
#1 glove_.cel : 0 ;
#2 sneaker_.cel : 0 ;
#3 sailor_.cel : 0 ;
#4 suihei_.cel : 0 ;
#5 bura_.cel : 0 ;
#6 blo_.cel : 0 ;
#7 pants_.cel : 0 ;
#8 maki_.cel : 0 ;
;
$0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0
;位置指定のスクリプトです、セルの数だけ書きます。今回は21?個。
;書かなくても何とかなったような気もするが…
;
;
;↓fkiss構文スタート↓
;@EventHandler; 絶対、必ず、死んでも入れなくちゃいけないそうです。

;@ initialize() ; 命令を初期化する構文

;@ begin() ; かってに始めちゃって、と言う構文。
;@ timer(0,1) ;0.001秒経ったらalarm(0)を始めて、と言う構文

;@ alarm(0) ;これはalarm(0)だよ、という構文。
;@ unmap("eye1.cel") ;開いた目玉を消して、という構文。
;@ randomtimer(1,75,250) ;0.075秒〜0.25秒位経ったらalarm(1)を始めて、という構文。

;@ alarm(1) ;これはalarm(1)だよ、という構文。
;@ unmap("eye2.cel") ;半開きの目玉を消して、という構文。
;@ randomtimer(2,500,1000) ;0.5秒〜1秒位経ったらalarm(2)を始めて、という構文。

;@ alarm(2) ;これはalarm(2)だよ、という構文。
;@ map("eye2.cel") ;半開きの目玉を出して、という構文。
;@ randomtimer(3,100,300) ;0.1秒〜0.3秒位経ったらalarm(3)を始めて、という構文。

;@ alarm(3) ;これはalarm(3)だよ、という構文。
;@ map("eye1.cel") ;開いた目玉を出して、という構文。
;@ randomtimer(0,1000,3000) ;1秒〜3秒位経ったらalarm(0)を始めて(最初に戻って)、という構文。

;@end() ;おしまい、という構文。


さて、最新のスクリプトはこのようになっています。セルさえ揃えればコレをコピペして目パチを再現できますね。

しかして、今回はここにスカートのめくれた画像、その1・その2を加えつつfkiss構文にも手を加えスカートめくりを

成就しましょう(あほか…

コレが、今回のfkissで使用するスカートめくり発動ボタン通称「風ボタンくん(セルネームはwind.cel)」であります。

コレをポチッと押すことで、スカートがヴァーッとめくれれば御の字なワケですね。

 

 まずは、セルデータ化したスカート用セル3枚(ここではsuihei0.cel、suihei1.cel、suihei2.celとなっています)を

セルデータの序列に組み込みましょう。もちろん、風ボタンくんセルも読み込ませなくてはなりませんね。

#10 wind.cel : 0 ;風ボタンくん

#4 suihei0.cel : 0 ;スカート平常
#4 suihei1.cel : 0 ;スカート中間
#4 suihei2.cel : 0 ;スカート最大

こういう感じで書きます。なお、この際に使用するスカートセルは幅をすでに揃えてあります。#以下に同じ番号を振り

一つにまとめておきましょう。このデータを開くと、何か変です(w

もちろん、このままでは次第に開いてゆくスカートを三枚重ねてはいている変な女子高生になってしまうので、全ての画像が

表示されることを確認したらfkiss構文へ移り、きれいに整える作業に入りましょう。

まずは;@ initialize() ; の後にsuihei1.celとsuihei2.cel消す(unmapする)構文を書きましょう。コレにより重なった

スカートをスッキリとさせるのです。

;@ initialize() ; 命令を初期化する構文
;@ unmap("suihei1.cel") ;重なったスカートのセルを消しておいてね、と言う構文。
;@ unmap("suihei2.cel") ;上に同じく

これだけ書いてローダーにかけてみると、余分なセルが消えてスッキリとしているはずです。ただ、せっかく読み込ませた

セルデータを使わない手はありません。さっそく行ってみましょう。

目パチ用構文の下当たりに

;@press("wind.cel")

と書きます。この構文はbegin()の仲間です。begin構文が「勝手に始めちゃって」という自動的な物だったのに対し

このpress関数は文字通り「遊んでいる人の手によってwind.celと言うセルがpress(プレス=クリック)されたら以下の

命令を始めてね。」と言うモノなのです。ここでいうwind.celとはもちろん風ボタンくんのことです。

後の命令文は先程とさして変わりません。

;@ timer(4,240)
;@ alarm(4) unmap("suihei0.cel") map("suihei1.cel)
;@ timer(5,250)
;@ alarm(5) unmap("suihei1.cel) map("suihei2.cel)
;@ timer(6,275)
;@ alarm(6) unmap("suihei2.cel") map("suihei0.cel")

ランダムタイマー関数ではなく、通常のタイマー関数ですね。alarmはここでも活躍しますが、目パチに0〜3までの

alarmを割いたのでここからはalarm(4)以降を使用します。前回の目パチの際はunmap,map構文を一回づつ使用して

いましたが、今回はその複合技。いちどに1つ画像を消し、1つ画像を表示させることでアニメーションさせてしまおうという

ものです。と言っても、先程の目パチをクリアしていればさほど難しい物ではないでしょう。

ようは、unmapとmapを組み合わせればいいだけです。ここまで説明してしまうと、後は感性で理解する他はなくなります。

(ちなみに、完成品にはもう少し手を加えてあるのでこのままの構文ではありません。)

 

●発動、多段パレット!

 さて、いよいよ多段パレットのご説明に移らせていただきます。これは、パレットを変更することでセルに割り当てられたカラーを

変更、格闘ゲームで言う2Pカラーに近い表現を可能とするKiss古来からある機能なのです。この機能の使い手様としては

私の最も尊敬するKiss制作者様である桃瀬ちぎら様(様付けすぎだろ…)のサイトをご覧になると大変よろしいでしょう。

桃瀬様のサイトはコチラとなっております→ttp://www11.plala.or.jp/momochin5122/

 さて、さっそく多段パレットの説明ですが…一般的には多段パレットと呼ぶ人は居ません。ここでは私と皆さんの間だけで

使う名称です。では、世間一般ではコレを何と呼んでいるか? と言いますと、「パレット組」あるいは「マルチパレット」と

呼ぶようです。しかし、マルチパレットに関しては「講座の第2回」の鈴のKissで使用した二つのパレットを読み込むソレも

じつはマルチパレットです。実際、マルチパレット…で検索をかけると複数のパレット運用の方が出てくる可能性が高いです。

 

マルチパレットと多段パレットの最大の違いはその運用可能数と、パレット変更を行えるか否かです。

マルチパレットは最新のKissローダーを用いた場合ハイカラーに近いほどの色を運用することが可能ですが

多段パレットでは最大でも256色。加えて同時に運用が出来ないと言う欠点もあります。しかし、多段パレットの

最大のウリは、やはりセルのカラー変更機能でしょう。

Palette:ボタンを使用することによりセルに用いられているパレットの変更が可能なのです。

←考え方としてはこうなります。

●実際にするべき事。

 理念はお解り頂けたでしょうか? ソレではさっそく多段パレットの作成にかかりましょう。その為にもパレットを

たくさん用意します。パレット自体は、基本のパレット作成に使用した画像を開きあらかじめインデックス化→パレット読み込みで

オリジナルパレットを読み込ませた上で、カラーテーブルをいじくってゆきます。

上のような手順を繰り返し、最大10個までパレットを作成します。そうしたらば、再びcelmakerの出番です。

さっそく起動し、今回は上から二番目のボタン「MultiPlt palette」を選択します。すると…

このようなダイアログが出てきます。一体何を言っているのだろう? と言うことで、この英文をエキサイトの

翻訳にかけてみますと…

10個までのパレットを選択してください;クリックする
「取り消す」終了された時。(注:処理されたPICtsは第1の
パレットを使用して引かれるに違いありません。)

だそうです。意味わからんちんですが、詰まるところ10個までのパレットを選ぶ=多段パレットを作れると言うことに

相違ありません。さっそく、作ったパレットをドンドン放り込んでいきましょう。

こうして出来上がったパレットを、セルデータのあるフォルダに格納し、.cnfファイルを書き換えるなりパレット名を

変えるなりしてローダーで開くと…おぉ、多段パレットKissの完成です!

もうコレで、思い残すことはない…我が生涯にいっぺんの悔いなーし!

 かどうかは知りませんが、コレで一応Kissで出来る全ての講座が終わりました。皆さんもMacでKissを作って

みようじゃありませんか! 残念ながらハイカラーKissは作れませんが、Macでもちゃんと作れることは証明されました。

いやめでたい! 日本の夜明けは近いぜよ!

□戻る


アダルト専用無料サーバー