hahaさんへのレス(昨日の半透明ネタ・長文)



[ このメッセージへの返事 ] [ 返事を書く ] [ home.html ]



投稿者: KIM @ moya.gw.hirosaki-u.ac.jp on 97/7/25 12:08:11

> > おもいっきり手前みそですが、
> > TOWNSのBASICで自作しているRPGで、
> > 「ウインドウを何枚開いてもそれぞれが完全半透明表示になる」
> > ってのを実現してます。(画面モードは3万色320×240・2画面)
> > 個人的な話で失礼しました。ではでは。
>
> ポリベサタに移植されることを願って
>
ど、どうもです。(^^;)努力します。
でも卒論とダブルブッキングするかもしれないなぁ・・・<なぜに延期(T_T)
でも曲がりなりにも2年以上ずっとやってきたものだったりするんで
個人的にはぜひ実現させたいんですけどね。<サタベーでの発表

> 半透明はどういうふうにすればいいんですか?

あ、半透明の機能そのものはTOWNSのBASIC <F-BASIC386
にソフトウェアで用意されているものを使ってます。
(ちなみに以下のことは全てスプライト機能じゃなくてグラフィック関連です)
LINEとかの描画命令の属性に普通だとPSETやPRESET、AND/OR
などがありますが、F-BASIC386だとこの中にPASTELがあるんですよ。
これは「既にVRAMにある色と混色して描画する」属性です。
どれだけ元の色を残せるかも専用命令で指定できます。

こんな便利な機能がない場合は・・・
 1.描こうとする画像データをどこかに用意する。(仮想画面があれば理想)
 2.描かれる場所の1つのドットの色データをとってRGBに分解する。
 3.描こうとする画像の同じ場所の色データもRGBに分解する
 4.2&3のRGBそれぞれについて適当に間をとっそれを色データにする
 5.その色データで実際に描く場所にドットを打つ
 6.2〜5(場合によっては4まで)を全描画範囲について繰り返す
となりますが、BASICレベルだと見るからに重そう・・・(^^;)
ちなみに半透明ポリゴンも基本的には上の手順をプログラムで踏んでいけば
可能なはずです(^^;)<ポリゴンを描くという前段階が加わりますが

てなわけで私の場合、根幹の部分は用意された機能に頼っているわけですが、
ここからがテクの見せ所です(^^)
上の方に 3万色320×240・2画面って書いてますが、
2画面の半透明合成機能なんかは当然ありません。<ゲーム機じゃないんだし
し・か・も、実はこのうち1画面はハードウェアスクロールしてるんですね。
(ドラクエなんかに代表されるあの2Dフィールド表示のためです)
ウインドウはハードウェアスクロールしてない画面に描いてるんですが、
(ちなみにこの画面にキャラクタなんかも描いてる)
この状況で半透明というカッコいい見せ方を実現するには、どうすれば?

てなところですが、超長くなりそうな気がしてきたので
ここで一旦切ります。
まだ見たかったらレス2へどうぞ(^^;)。では。

(hahaさん以外の方へ:私信でこんなに使ってすみません)