HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0927
ガモウソフト「青空を反射しながら近づいてくる、ガラスのような中ボス」を2Dで表現6解決


ガモウソフト

リンク

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

それぞれの面の部分を透過色にして面でないところはほかの色にした白黒画像を用意します。
それをスクロールさせている青空の画像の上に透過処理をしてコピーします。これで面に
青空が張り付いた感じになりますよね。これを最初に用意した画像の透過色でなかったほう
の色を透過色にしてコピーします。これを青空の角度と色を適当に変更したものを
何個か作り後はそれらの画像を合体させて半透明処理をすれば、それっぽくなるはずです。



Quiet

リンク

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 …素晴らしい命令があるのですね! もっと勉強しなくては。



ONION software Copyright 1997-2023(c) All rights reserved.