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

∇ 脚注

※1:デスクトップの任意の画面をビットマップ画像に変換すること。ベクター等にフリーのキャプチャーツールが置いてあるので活用しましょう。お金に余裕のある人はPaint SHOP Proがお薦め。


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

- 書き換えパターン4:ラティス

Update: 2000/8/29


ラティス

 アクションゲームなどでステージクリアしたとき等、ブラックアウトさせるのに、うずまきを描きながら黒くしていったりとか、XY等間隔で模様を描き始め、気が付けば真っ黒になっていたり等、ちょっと違うブラックアウトを実現しているものを見かけます。このXY等間隔模様作画によるブラックアウトの手法を、鷹月はラティス(格子。タイルと呼ぶ人もいますけど)処理と呼んでいます。イメージ的には下の図のような感じですか。
 第1段階で、画面全体のちょびっと(緑の部分)を黒くさせるとします。今回、格子の面積を4×3と考えてみて、その各左上の1ドットを対象としてみました。1/12がフェードアウトということになります。この処理はどうすれば良いでしょうか?横4、縦3間隔でloopを使い、黒の点を配置していけば良いでしょうか?これは論外です。1段階につき25600回も作画命令させるのは愚の骨頂です。
 正解は、透過貼りこみを活用する事です。全ての、とは言いませんが多くの言語系で、特定の色を透明色とした画像のコピーができるようになっています。これを利用して、上の図における緑の部分を「黒く」塗り、そうでない部分を透明色のベタ指定してやればよいのです。こういう画像を用意し、画面コピーでいっぺんに貼りこんであげます。すると、文字通り「格子の穴を抜けるように」黒の点が一斉に作画されます。ちょっと考えて見ればなんてことはないですね。

 それを、この図に示すような順番で、格子をずらしていけば良い訳です。画面端が繋がった条件で単に右下に進めているだけです。プログラムはもう、アルゴリズムとは言わないレベルまで単純なものになっています。
; ラティス(画像→黒)---------------------------------------
  buffer 14,640,480,0 : cls 0
  screen 0,640,480,0 : cls 4

*main
  gsel 14 : picload "格子がしきつめられたグラフィック",1
  gsel 0 : picload "書き換えられる元の画像",1
  gmode 2 ; HSPで、透過貼りこみを有効にするためのモード設定(必須)

  x=0 : y=0
  repeat 12
    pos x,y
    gcopy 14,0,0,640,480
    x=x+1 : y=y+1
    if x>=4 : x=0
    if y>=3 : y=0
    await 72
  loop

  stop ; --- end of file ------------------------------------
 1/12ずつ、12段階に分けてブラックアウトしていきます。ほんと、小学生のBASICプログラムですね。結局のトコロ、しかけは全て格子のグラフィックにあるわけですね。SLG移動アルゴリズム講座のSession7で、移動ルーチンに12段階の光源を計算し実装させていますが、これも同様に格子のアイデアを利用しているだけなんです。

格子の描き方?

 ところでこの格子を描く方法って、皆さんは知っているでしょうか?フルカラーのペイントツールが氾濫した結果、意外に描きにくくなってるんですね、こういうの。Gumina's Labo.に置いてある「Line Effecter」なんかも、やってる事は単純だけど、さくっと出来るツールがなかなかないものです。

宍戸さんの「ドット絵でぃた」
http://www.sm.rim.or.jp/~shishido/
なんとなく考え付く方法としては、宍戸さんの作られているチップエディタなどで、一つのパターンを作り、それをVNツールやIEなどに壁紙として読み込ませ、画面を必要なサイズでキャプチャーするという方法です。今回のように格子が1パターンしかないものはこれで充分でしょう。でも、1パターンを作るのにも多少時間が掛かってしまいます。

「ActiveBasic」
http://www2s.biglobe.ne.jp/~yamadai/
 規則的なグラフィック、タイルなどが作りたい場合、BASIC等の言語を使うのが一番手っ取り早いと私は思っています。上に紹介したのは、山本さんの開発された、Windows上で動作するBASIC(N88BASIC互換)でして、上のソースで紹介していた格子パターンは、これで生成したものです。ソースは次の通り。

10 WNDPOS 0,0,639+13,479+32
20 FOR I=0 TO 639 STEP 4
30 FOR J=0 TO 479 STEP 3
40 PSET (I,J),7
50 NEXT J:NEXT I
60 GOTO 60
 これをウィンドウキャプチャー(※1)して、パレットカラーを変更すれば(D-PixedとかPSPで操作するのが良いかな?)おしまいというわけです。プログラマ属性のない方でも基本命令だけで作れてしまうので、クリエイターな人たちはこのBASICは軽く抑えておくことをお薦めしますよ。「廃れた言語」なんて言わないで(笑)。

- 鷹月ぐみな


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