|
|
2008/9/27(Sat) 09:14:44|NO.19777
よく分からないタイトルで、すいません。
もっと分かりにくく云うと、アニメ「エバンゲリオン」に出てくる中ボス「ラミエル」です。
http://fusion-s.cocolog-nifty.com/photos/anime/photo_10.html
↑私のホームページでは ありません。
これを表現するには、どうすれば良いのでしょうか?
不可視バッファ 1番に ラミエル画像 を、
バッファ 2番に 青空 画像(半透明) を用意して、
ウィンドウ0番に貼り付けて、
あとは、青空画像を ラミエルの上でスクロールさせれば…
3時間ほど頑張っていますが、うまくいきません。
どなたか、解かる方は居ませんか?
|
|
2008/9/27(Sat) 11:29:49|NO.19780
gmode 4を応用すれば出来るのでは?
ちょっと長いですがこんな感じで、
screen 0,400,400,0 :cls 4
repeat 200
color cnt,cnt,255
boxf 0,cnt*2,400,cnt*2+2
loop
buffer 1,400,400,0 :cls 4 ;ラミエル?
color 60,60,200 :boxf 100,100,300,300
color 0,0,0 :pos 110,200 :mes "雲が流れてると思いねぇ"
buffer 2,400,400,0 :cls 0 ;マスク作成
color 0,0,0 :boxf 100,100,300,300
buffer 3,800,200,0 :cls 4 ;雲画像作成
color 100,100,100
randomize
repeat 16 :repeat 100
c=rnd(50)+200 :color c,c,c
pos rnd(800),rnd(150)+50 :mes "●"
loop :loop
buffer 4,400,400,0 :cls 4 ;コピー用バッファ
*main
gsel 4 :gmode 1
pos 0,0 :gcopy 1,0,0,400,400 ;ラミエルコピー
kumox++ :if kumox>400 :kumox=0
gmode 5,,,190
pos 100,100 :gcopy 3,kumox,0,200,200 ;雲を加算コピー
gmode 2
pos 0,0 :gcopy 2,0,0,400,400 ;マスクを黒抜きでコピー
gsel 0 :redraw 0
color 255,255,255 ;透過色指定(白)
gmode 4,,,255
pos 100,100 :gcopy 4,100,100,200,200 ;バッファ4から表に白抜きでコピー
redraw 1 :await 33
goto *main
こういう事ではありませんでしたか?
|
|
2008/9/27(Sat) 11:35:57|NO.19781
それぞれの面の部分を透過色にして面でないところはほかの色にした白黒画像を用意します。
それをスクロールさせている青空の画像の上に透過処理をしてコピーします。これで面に
青空が張り付いた感じになりますよね。これを最初に用意した画像の透過色でなかったほう
の色を透過色にしてコピーします。これを青空の角度と色を適当に変更したものを
何個か作り後はそれらの画像を合体させて半透明処理をすれば、それっぽくなるはずです。
|
|
2008/9/27(Sat) 11:50:22|NO.19782
randomize
buffer 1 ;枠
color 255:boxf 0,0,100,100
color :boxf 5,5,95,95
buffer 2 ;背景
color 150,150,150
repeat 500
pos rnd(640),rnd(480):mes "★"
loop
screen 0
x=0:y=0
*main
pos 0,0:gmode 0,640,480:gcopy 2 ;背景
pos x+50,y+50:gmode 3,100,100,150:grotate 2,x,y,0,-100,-100 ;反射
pos x,y:gmode 2,100,100:gcopy 1 ;枠
stick ky,15
if ky&1:x-
if ky&4:x+
if ky&2:y-
if ky&8:y+
redraw 1:await 1:redraw 0
goto *main
合ってますか?
|
|
2008/9/27(Sat) 15:33:35|NO.19791
映画見てないから、詳しい仕様はわからんけど、
絵を見る限り8面体ですよね。
ってことは、最低でも三角形が画面内に最低でも2面は描画されるんですよね?
(画像の角度にするなら4面描画)
やり方は俺が思うに2つある。
まず、とりあえず雲が反射していないラミエルの画像を用意。
これは絶対必要。当たり前だが。
1つ目は雲の絵を準備して、gsquareでコピーする。
この時、第2引数の配列の値を同じすると三角形に表示できる。
ただし、うまくループさせないと見栄えは悪いです。
buffer 1,512,256
;color 255,255,255:boxf
;画像がある人は512×256の雲の画像をここでbuffer1にロード(てかうpしたからDLして)
picload "sky.bmp"
screen 0,640,480,0
dim x,4
dim y,4
x(0)=320,320,192,448
y(0)=112,112,368,368
dim copy_x,4
dim copy_y,4
copy_x(0)=128,128,0,256
copy_y(0)=0,0,256,256
point=128
gsel 0
*main
;スクロール
point +=2
if (point>=384):point=128
copy_x(0)=point,point,point-128,point+128
redraw 0
color 0,0,0:boxf
※反射していないラミエルの画像の上から半透明コピーしてください。
gsquare 1,x,y,copy_x,copy_y
redraw 1
await 16
goto *main
いつもは答えは書かないけど、気が向いたので作ってみた。
画像はこちらからDL
http://upload.fam.cx/cgi-bin/img-box/d8l80927152408.bmp
つーか適当すぎてwwもう何と言うかwww
まぁ、きれいループさせたければ自分で工夫してとしかいえません。
画像は好きに使っていいですよ。いつまであるかわからんけど。
あと、HSP用のDirectXプラグインでは俺の知る限りでは
同じ方法使うことはできないので、そこのところだけは覚えといて下さい。
もう1つは専用のアニメを作るってことくらいですかね。
これだと何面あってもいけるけど、面が増えるほど作業が面倒になります。
まぁ、俺はこっちのほうがいいと思いますが。

| |
|
2008/9/27(Sat) 15:36:36|NO.19792
恐れ入りました…。
私 一人で頑張っていても、この処理は 一日掛けても出来なかったかもしれません。
本当に、ありがとうございます。
…ラミエルのシューティングが作りたくなってきた…。
|
|
2008/9/27(Sat) 16:27:02|NO.19795
頂いたスクリプトを解読している間に(←遅い)、レヴィンさん から書き込みが。
gsquare …素晴らしい命令があるのですね! もっと勉強しなくては。
|
|