CreationCollege-TOP
Now Printing..
▲ C.College TOP▲ HSP-Tech Top . 情報局2号館

∇ 脚注


∇ 感想はこちらに
クリエイターズボード(掲示板)

- 書き換えパターン1:パレットフェード

Update: 2000/8/29


パレットフェード

 画面切り替えの中でももっとも基本的なパレットフェードの紹介です。まずは種類を列挙しておきましょう。

[1] 画像→黒にブラックアウト
[2] 画像→白にホワイトアウト
[3] 黒→画像にフェードイン
[4] 白→画像にフェードイン

 他にも、青や赤への中途半端なカラーフェードがありますが、それらはここでは説明しませんので、各自でルーチン組んで試して見てください。
 で、これら[1]~[4]を実装するためには二つの方法があります。一つはパレットを使用して、そのパレットの感度を変えていく手法で、もう一つは、フルカラーのまま、半透明加算処理を加える手法です。
 パレットフェードというからには、パレットで処理させたい所なのですが、割とこれは面倒なんです。[3]や[4]の処理をするさい、予め各パレットの値を0にしておいて、規定値に少しずつ変化させていくなんて面倒ほかなりません。16色しかないならともかく、です。([1]と[2]は問題なく実装できるのですが)また、フルカラーの絵をパレット(大抵256色)に落としてしまうと、当然色調が劣化してしまうのでお薦めできません。(フェード後に実際の画面を再作画という手法もあるにはありますが、切り替わりのタイミングに一瞬違和感が出たりします)
 そういうわけで、以下のHSPソースは、半透明処理でフェードを行いました。[1]~[4]を全部書くのは面倒なので、[3]だけです。

; パレットフェード(黒→画像)--------------------------

 #include "hspext.as" ; 必須

  buffer 14,640,480,0 : cls 0
  screen 0,640,480,0 : cls 4
  gmode 0

*main
  gsel 14 : pos 0,0 : picload "フェードイン画像",1
  gsel 0 : pos 0,0 : gfini 640,480

  repeat 16
    redraw 0                 ;再作画の抑止
    gcopy 14,0,0,640,480     ;画像を表示
    gfdec 240-(cnt*16),240-(cnt*16),240-(cnt*16)
    redraw 1                 ;再作画の実行
    await 3
  loop

stop ; --- end of file ------------------------------------
 各ステップ、画像を転送するのですが、画面作画命令を遅らせておいて、その間に半透明演算の一つ gfdec命令で、指定域まで色を落としてあげます。それから作画命令を実行する。あとは明るさの減少度を徐々に0に近づけていけば、黒→指定画像へのフェードインが実現できます。 白からのフェードイン [4] は、gfdec の代わりに gfinc を使えば良いだけです。各自で改造してみてください。
 もちろんこの方法では、画像→画像へのフェードはできません。これはパターン5「モーフィング」の方で実現していますので、そちらを参照ください。

- 鷹月ぐみな


.
Copyright- 鷹月ぐみな(gumina)たかつきCOMPANY 1997-2000.▲ C.College TOP