演出のやり方ですが・・・

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

演出のやり方ですが・・・

#1

投稿記事 by 匿名 » 16年前

最近の東方のゲームはポーズをかけると画面がぼやけたり、ボスの周りの背景がゆがんだりしていますけど、ああいう演出はどうすればできるんでしょうか?

管理人

Re:演出のやり方ですが・・・

#2

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

私はストップボタンが押された瞬間、その画面をキャプチャして
画面を暗く、赤くして

http://homepage2.nifty.com/natupaji/DxL ... html#R3N18

表示しています。
ゆがみは

http://www.play21.jp/board/formz.cgi?ac ... &rln=20959

この辺参考になるでしょうか。
画面と同じサイズのぼかし素材画像を用意しておいて、それをブレンドして描画してやるという手もあると思います。
また、ある程度飛び飛びにGetPixelでピクセルの色をとってきて、ある区間でDrawBoxしてやると
モザイクのようにもなると思います。

Justy

Re:演出のやり方ですが・・・

#3

投稿記事 by Justy » 16年前

 東方のゲームをやったことがないので、一般的な話になりますが


>ポーズをかけると画面がぼやけたり、

 いろんなやりかたがあると思うのですが、一番簡単そうなのは
ぼかしたいその画面を裏画面ではなく、テクスチャにレンダリングして、
そのテクスチャをアルファブレンドでアルファ値を下げた状態で
上下左右(或いは斜め)などの周囲の方向にわずかずらして
何度も描くことです。

 ずらす幅や何回描いたかで見え方は変わってきます。
 ただ、処理負荷高いので、どう使うのかは工夫しなければなりません。



>、ボスの周りの背景がゆがんだりしていますけど

 東方でどう歪んでいるのかは見たことがないのでわかりませんが、
シンプルなのはこんなかんじでしょう。

 DirectXにしろ OpenGLにしろ大抵の描画ライブラリには
頂点とその頂点に対応したテクスチャ座標(UV座標)を指定して普通の長方形や正方形ではなく、
自由な形状(三角形や台形・菱形のような変則的な四角形、或いはそれ以上の多角形)の絵を
表示できる機能があります。

プリミティブタイプ Mi-ko's FriendlySpace
ttp://mi-ko.cocoa.cx/programming/directx/directgraphics/FVF/directgraphics_01.html

DirectX によるゲームプログラミング入門 :第 3 章 DirectX Graphics の特殊効果 
ttp://www.microsoft.com/japan/msdn/academic/Articles/DirectX/03/
の「(5) UV 座標」参照。

 歪ませたい絵をテクスチャとして用意し、この機能を使ってボスの周りを
細かい三角形に分割して、頂点ボス周辺の頂点の位置を動かしてあげれば
ゆがみが表現できます。

 一昔前の PS1/PS2とかでよく見かけた光学迷彩エフェクトも
これの延長線上で作られています。
 


# でも今時だとシェーダのお仕事ですよね、このあたりって。

Maverick Project
ttp://maverickproj.web.fc2.com/pg00.html

匿名

Re:演出のやり方ですが・・・

#4

投稿記事 by 匿名 » 16年前

すいません、東方ではこんなかんじにゆがんでいます。
ぼやけたりとかはなんとなく分かりますけどゆがみはサンプルの意味が理解不能な状態です。
なんとかがんばって理解するのでこんな感じにゆがむサンプルを教えてください。
あとこれだと分かりにくいですけどゆがんでいる部分だけ赤っぽくなっている時もあるんですよね。
そういう表現はどうすればいいでしょうか?

匿名

Re:演出のやり方ですが・・・

#5

投稿記事 by 匿名 » 16年前

あと聞き忘れたんですけど「ラスタースクロール」「テクスチャ」「レンダリング」って何のことですか?

通りすがり

Re:演出のやり方ですが・・・

#6

投稿記事 by 通りすがり » 16年前

赤くしたいなら赤でアルファブレンドすればよいだけです。
特殊な形で赤くしたいならその形で作った赤い画像を上からアルファブレンドすればよしです。
わからない言葉があるときはまずググるなり自分で調べてみましょう。

御津凪

Re:演出のやり方ですが・・・

#7

投稿記事 by 御津凪 » 16年前

> あと聞き忘れたんですけど「ラスタースクロール」「テクスチャ」「レンダリング」って何のことですか?

まずはそこから覚えていかないと、東方のような、比較的高度な演出を作るのは難しいです。
ラスタースクロールは、
http://l.huu.cc/board/log/bbslog_66.html#20946
こちらをご覧ください。

テクスチャは、ポリゴンの板に張るシールのような画像のことを指します。

レンダリングは、ポリゴンやモデル、テクスチャなどを描画する処理の事を指します。

これらは基礎となる用語です。
きちんと調べて覚えましょう。

東方ではシェーダ(レンダリング処理を自分で処理すること)でエフェクトを実現されているようなので、
始めからそれをやるには敷居が高いかもしれません。
(真似るだけならシェーダを使わなくても可能です)

匿名

Re:演出のやり方ですが・・・

#8

投稿記事 by 匿名 » 16年前

難しくて今は無理そうですね。まあ地道にがんばります。

閉鎖

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