弾を沢山重ねたらレーザーになる画像

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
@

弾を沢山重ねたらレーザーになる画像

#1

投稿記事 by @ » 16年前

がほしいのですが何か良い素材、
もしくはその素材があるサイトはないでしょうか?
よろしくお願いします。

Justy

Re:弾を沢山重ねたらレーザーになる画像

#2

投稿記事 by Justy » 16年前

画像

[color=#d0b0c0" face="monospace]
>弾を沢山重ねたらレーザーになる画像
[/color]

 これはつまり、弾としてもレーザーとして使える共通の素材が欲しいということですか?

 んー、そういうサイトの方は知らないですね。

 でもどんなレーザーをイメージしているのかわかりませんが、
よくある(?)重ねる系のレーザーなら少し小さめのシンプルな感じの素材を
引き延ばしたりした上で加算&半透明の組み合わせで大抵レーザーっぽく
なります。

 例えば添付の画像(適当に円描いたやつ)も工夫次第で

[color=#98a8b8">http://dixq.net/zip/bbs/Justy/LazerMovie.zip
解凍PASS : nuGszfWM[/color]

のように。


※ 1本目は普通に直線、2本目はランダムで色を青系を混ぜた、
3,4本目は動きを変えてみたものです

@

Re:弾を沢山重ねたらレーザーになる画像

#3

投稿記事 by @ » 16年前

>Justyさん
すみません。違います。ちょっとそういった処理は自分にはまだできないので
添付した感じ画像(添付した画像は分かりやすく一つ一つに色を変えてつけてあります)みたいに
弾を連続して出したら重なってレーザーのように見える画像がほしい
ということをさきほど言ったのですが・・ないでしょうか?

チルチル

Re:弾を沢山重ねたらレーザーになる画像

#4

投稿記事 by チルチル » 16年前

龍神録で言うとこれなんかどうでしょうか?
中が強い白系か黒系だと繋がりやすいようです
まあ加算ブレンドぐらいはした方が良いですが
この画像は引き伸ばした方が綺麗ですけどね

Justy

Re:弾を沢山重ねたらレーザーになる画像

#5

投稿記事 by Justy » 16年前

[color=#d0b0c0" face="monospace]
>弾を連続して出したら重なってレーザー
[/color]

 んーと、やっぱりさっきの画像ですが、こんなかんじのものでしょうか?

 これは、さっきの画像を5:2の割合で横長に引き延ばし、
多数の弾の開始地点と色をランダムで微妙にずらして、横に飛ばしながら
加算&半透明で表示したものです。

そうは問屋の最終兵器

Re:弾を沢山重ねたらレーザーになる画像

#6

投稿記事 by そうは問屋の最終兵器 » 16年前

単一の画像ではないですが、私はこんな感じで描画しています。

そうは問屋の最終兵器

Re:弾を沢山重ねたらレーザーになる画像

#7

投稿記事 by そうは問屋の最終兵器 » 16年前

いくつか並べて、とりあえず撃ってみるとこんな感じ。
画像のようにへにょらせるのも結構簡単。
参考になれば幸いです。

Re:弾を沢山重ねたらレーザーになる画像

#8

投稿記事 by » 16年前

>そうは問屋の最終兵器さん
ちなみに一つのレーザーにつき、何カウント間隔で、何個並べているのでしょうか?
参考までに教えてください。

Dixq (管理人)

Re:弾を沢山重ねたらレーザーになる画像

#9

投稿記事 by Dixq (管理人) » 16年前

>>Justyさん

おぉぉ・・・すごくて感動しました、さすがJustyさん^^
出来れば・・可能ならばサンプルプログラミングの館に置いていただきたい・・w

工夫次第でどうにでもなるものですねぇ。
これは単にDrawModiGraphを使ったりして引き延ばして加算してるだけですか?
ウネウネはsin?

後、あの動画、消えてしまうのが勿体ないのですが・・、
こちらのサーバーにうつして、こちらからリンクを張らせていただいてもいいでしょうか?

Dixq (管理人)

Re:弾を沢山重ねたらレーザーになる画像

#10

投稿記事 by Dixq (管理人) » 16年前

>@さん

過去ログでよく見かけますが、大抵の弾なら引き延ばせばレーザーに見えるようです。
東方でいえば米粒弾とか。
レーザーとしての画像が作りたければ以前作り方を紹介した動画作ったのでよければご覧ください。
[nico]http://www.nicovideo.jp/watch/sm6055308[/nico]

案外簡単に作れるので、下手に素材を探すより作ったほうが効率的ですよ。

@

Re:弾を沢山重ねたらレーザーになる画像

#11

投稿記事 by @ » 16年前

>Dixqさん
ニコニコ動画は見たらハマると友人から聞いたのでアカウントをとってません。
だから見れないです・・

Dixq (管理人)

Re:弾を沢山重ねたらレーザーになる画像

#12

投稿記事 by Dixq (管理人) » 16年前

そうでしたか^^;
まぁ必要な動画を見るだけならどうということは無いと思いますが;

そうですね~とりあえずレーザーは米粒弾を引き延ばせば作れるようですよ。

Justy

Re:弾を沢山重ねたらレーザーになる画像

#13

投稿記事 by Justy » 16年前


>工夫次第でどうにでもなるものですねぇ。

 そうですね。
 パーティクル系のエフェクトなので、面白いことに結構適当なテクスチャでも
どうとでもなるんですよね。

 あの円テクスチャ1枚で、炎系・煙系などもいろいろ表現できますので、
円の周囲のぼかし具合とかを調整した数種類があれば汎用的に使えます。



>これは単にDrawModiGraphを使ったりして引き延ばして加算してるだけですか?
>ウネウネはsin?

 見ての通り軌跡を繋げているので、結果的に長く引き延ばしたもの
(比率的には1:100~200以上)を透明度を上げてランダムで微妙に
色合いと開始位置を変えて加算で何十と表示しています。
(開始位置のずれが“揺らぎ”になってるわけですね)

 で、DrawModiGraphではないです。そもそも DirectXなので……。
 でも、DXライブラリでもポリゴン関数はあるんで、やってやれなくはないと思います。

 動きは読み通り sin/cos系です。行列計算の中で回転するときに使っています。



>こちらのサーバーにうつして、こちらからリンクを張らせていただいてもいいでしょうか?

 それは構いません。
 よろしくお願いします。

Dixq (管理人)

Re:弾を沢山重ねたらレーザーになる画像

#14

投稿記事 by Dixq (管理人) » 16年前

DXライブラリで出来ないかやってみました。

http://dixq.net/zip/bbs/Lazer.zip

う~ん、ちょっと違いますかね・・。
Justyさんのようなキラっと光る感じが出ません・・。
後、いい意味でのムラが出ません。
単純に円を拡大しているので、ウネウネの時のように中間が透けたりしないし・・。

>炎系・煙系などもいろいろ表現できますので、

ろうそくならこれを上向きにゆらゆらさせたらよさそうですが、「爆発」ってどうやるんでしょう^^;

Dixq (管理人)

Re:弾を沢山重ねたらレーザーになる画像

#15

投稿記事 by Dixq (管理人) » 16年前

>パーティクル系のエフェクト

この言葉は最近DXライブラリの質問掲示板でsyさんが仰っているのをお見かけしました。
エフェクトは作ると色々出来るものですね。
IWさん、かたぱるとさんのご意見を参考に作ったものですが、
やっつけでこんな物作ってみました。

これは、ロマサガのロゴの出方がかっこよくて

[youtube][/youtube]
(最初の9秒位)

何とかDXライブラリでできないかな~と思って作ったものです。
http://dixq.net/zip/bbs/LogoEffect.zip
座標データ的なものは、龍神録プログラミングの館の漢字弾幕データ生成ツールで作りました。
・・・って段々脱線してすみません^^;

そうは問屋の最終兵器

Re:弾を沢山重ねたらレーザーになる画像

#16

投稿記事 by そうは問屋の最終兵器 » 16年前

二番目の画像の弾幕だと、

x方向に速さ 2.5*cos(弾の角度)
y方向に速さ 2.5*sin(弾の角度)

で動かして、
4カウント毎に、計10発(36方向なので合計360発)撃ってます。
速さが変わると発射の間隔を手動で設定し直さなければならないので結構面倒だったりします。

Justy

Re:弾を沢山重ねたらレーザーになる画像

#17

投稿記事 by Justy » 16年前

 結構脱線気味なので、ほどほどにしないとと思いつつも
いや、もう実にお見事としか言いようがありません!



>Justyさんのようなキラっと光る感じが出ません・

 もう十分私のは越えていますよ。
 輪郭もすごく綺麗です。

 あとはそのときの状況に合わせて、レーザーの周囲を補強するエフェクトだったり
光源だったりと足していけば完璧です。




>ロゴ

 いいですね、とても綺麗です。
 データに依存した形式になっているところが再利用性が
あってすばらしいです。



>爆発

 レーザーもそうなのでうが、どういう爆発なのかでも全然変わってくるのですが、
テクスチャ1つで出来るのは小爆発くらいですね。

 よくある爆発だと幾つかの種類のパーティクル&パターンアニメの組み合わせが
必要になってきます。

 例えば、

・ 爆発の絵
 寿命短めなパーティクルで、16~25コマくらいの発生から収束までのパターンアニメ。
 加算して白く飛ばし、いくつも断続的に出す

・ 黒煙
 爆発よりは長めな寿命を持つパーティクル、16~25コマくらいの発生から収束までのパターンアニメ。
 絵としては爆発と同じでもいいかも。

・ 白い爆発と黒煙の中間的な爆発
 寿命短めなパーティクル。

・ インパクト時の輪っか
 よくある輪っか。

・ 破片
 パーティクル。ものによっては軌跡を持った破片もいいかも。
 
・ 赤系のグロウ
 インパクトの瞬間のものと、燃えている間周囲を赤く染めるような揺らぎを持たせた
加算テクスチャ。
 
と、これくらい入れると“らしく”見えるかな、と思います。


 あ、それから sin/cosを使っていたのは動画の3番目と4番目の方です。
 1番目と2番目の方は実は開始地点が微妙にずれているだけで、
完全な直進で、揺らいでいるように見えるのは1つ1つが高速で移動している為、
そういう動きに見えているだけです。

Dixq (管理人)

Re:弾を沢山重ねたらレーザーになる画像

#18

投稿記事 by Dixq (管理人) » 16年前

いえいえ、全く見事などと言って頂けるような出来ではありませんが・・^^;
Justyさんにそう言って頂けると光栄です^^

>レーザーの周囲を補強するエフェクトだったり

あぁなるほど、そうするとハッキリしそうですね。
じゃぁ龍神録2のレーザーはこれでいってみるか・・(単純)

>爆発

あれから色々弄って見ましたが、工夫次第で結構色んな事が出来そうですね。
良いエフェクトがもし出来たらサンプルプログラミングの館にでもアップして見たいと思います^^

あ、Justyさんも何か新作出来ましたら載せさせて下さいw

>sin/cosを使っていたのは動画の3番目と4番目の方です。 1番目と2番目の方は実は開始地点が微妙にずれているだけで、
>完全な直進で、揺らいでいるように見えるのは1つ1つが高速で移動している為、そういう動きに見えているだけです。

なるほど、そのようですね。
私の画像は横に引き伸ばしてるので、発射地点を変えると発射地点のグラフィックが薄くなってしまったので、
ちょっと角度を変えることでムラを出しました。
レーザーの発射地点は何か別の画像で発射元であることを演出してもいいかもしれませんね。

Justy

Re:弾を沢山重ねたらレーザーになる画像

#19

投稿記事 by Justy » 16年前


>Justyさんも何か新作出来ましたら載せさせて下さいw

 では、そのうち何か作ってみます。



>発射地点を変えると発射地点のグラフィックが薄くなってしまったので
>レーザーの発射地点は何か別の画像で発射元であることを演出してもいいかもしれませんね

 そうですね。
 発射地点は発射口のモデルがあるならその中に入れてしまえばうまい具合に隠れると思いますが、
発射元に別のエフェクトをおくのもいいですね。

Re:弾を沢山重ねたらレーザーになる画像

#20

投稿記事 by » 16年前

あの、特定の弾だけに
加算ブレンドをするっていうのはどうしたらよいのでしょうか?

//弾丸の描画
void graph_bullet(){
	int i,j,eff;
	double disp_angle;
	SetDrawMode( DX_DRAWMODE_BILINEAR ) ;//線形補完描画
	for(i=0;i<SHOT_MAX;i++){//敵の弾幕数分ループ
		if(shot.flag>0){//弾幕データがオンなら
			for(j=0;j<SHOT_BULLET_MAX;j++){//その弾幕が持つ弾の最大数分ループ
				if(shot.bullet[j].flag!=0){//弾データがオンなら
					if(shot.bullet[j].eff==1)
						SetDrawBlendMode( DX_BLENDMODE_ADD, 255) ;
					if(bullet_info[shot.bullet[j].knd].kaiten==1)
						disp_angle=PI2*(shot.bullet[j].cnt%120)/120;
					else
						disp_angle=shot.bullet[j].angle+PI/2;

					DrawRotaGraphFdF(
						shot.bullet[j].x, shot.bullet[j].y,
						1.0, disp_angle,
						img_bullet[shot.bullet[j].knd][shot.bullet[j].co[/url],TRUE);

					if(shot[i].bullet[j].eff==1)
						SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0) ;
				}
			}
		}
	}
	boss_assist_img();
	//ボス
	if(boss_shot.flag>0){//弾幕データがオンなら
		for(j=0;j<BOSS_BULLET_MAX;j++){//その弾幕が持つ弾の最大数分ループ
			if(boss_shot.bullet[j].flag!=0){//弾データがオンなら
				eff=0;
				if(boss_shot.bullet[j].kaiten==1)
					disp_angle=PI2*(boss_shot.bullet[j].cnt%120)/120;
				else
					disp_angle=boss_shot.bullet[j].angle+PI/2;
				if(boss_shot.bullet[j].eff_detail==1){//風雨にも負けず用弾エフェクト
					SetDrawBlendMode( DX_BLENDMODE_ADD, 100+GetRand(155)),eff=1 ;
					DrawRotaGraphFdF(
						boss_shot.bullet[j].x, boss_shot.bullet[j].y,
						1.3, disp_angle,
						img_bullet[boss_shot.bullet[j].knd][boss_shot.bullet[j].co[/url],TRUE);
				}
				if(boss_shot.bullet[j].eff==1)
					SetDrawBlendMode( DX_BLENDMODE_ADD, 255),eff=1 ;
				if(boss_shot.bullet[j].eff==2)
					SetDrawBlendMode( DX_BLENDMODE_ADD, 255+GetRand(100)),eff=1 ;
				DrawRotaGraphFdF(
					boss_shot.bullet[j].x, boss_shot.bullet[j].y,
					1.0, disp_angle,
					img_bullet[boss_shot.bullet[j].knd][boss_shot.bullet[j].co[/url],TRUE);
				if(eff==1)
					SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0) ;
			}
		}
		for(j=0;j<BOSS_ASSIST_MAX;j++){//その弾幕が持つ弾の最大数分ループ
			if(boss_shot.assist[j].flag!=0){//弾データがオンなら
				if(boss_shot.assist[j].eff==1)
					SetDrawBlendMode( DX_BLENDMODE_ADD, 255) ;
				if(boss_shot.assist[j].kaiten==1)
					disp_angle=PI2*(boss_shot.assist[j].cnt%120)/120;
				else
					disp_angle=boss_shot.assist[j].angle+PI/2;
				DrawRotaGraphF(
					boss_shot.assist[j].x+FX+dn.x, boss_shot.assist[j].y+FY+dn.y,
					1.0, disp_angle,
					img_bullet[boss_shot.assist[j].knd][boss_shot.assist[j].co[/url],TRUE);
				if(boss_shot.assist[j].eff==1)
					SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0) ;
			}
		}
	}
	SetDrawMode(DX_DRAWMODE_NEAREST);//描画形式を戻す
}

Justy

Re:弾を沢山重ねたらレーザーになる画像

#21

投稿記事 by Justy » 16年前


>特定の弾だけに
>加算ブレンドをするっていうのはどうしたらよいのでしょうか?

 その特定の弾とやらの メンバ effを 1にすればいいように見えます。

閉鎖

“C言語何でも質問掲示板” へ戻る