RPGの演出について

管理人です。日記でRPG講座を好評?連載中です。
http://dixq.net/forum/blog.php?u=114&b=217
C言語とDXライブラリをつかったRPGを一から作成する講座ですので興味のあるかは御覧ください。
で、このコミュはRPG作成に興味が有る方のお手伝いをしたいと思って立ち上げました。
このコミュに参加してどしどし質問や意見を下さい。

なお、RPG講座は途中でで挫折しないモチベーション維持のために質問など募集します。もちろんツッコミも歓迎です。応援も嬉しいですよ。よろしくお願いします。
返信
アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 8年前
住所: 東海地方
連絡を取る:

RPGの演出について

#1

投稿記事 by softya(ソフト屋) » 6年前

どぶろくさんに対する回答です。
「RPGを作りたい人の自己紹介 と アンケート • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=6 ... 401#p93401

加算半透明とか光系の演出にWin32APIは向いていないですからね。
DXライブラリは、そういうのは得意です。

>簡単な演出プログラム集など欲しいですね。ワイプや魔法など単純なものでいいんですけど。

ワイプは切り替え前後を別バッファにレンダリングしてWin32APIならStretchBltで2つの画像を合成してやれば良いと思います。
Win32APIは回転系の変形は苦手なので、そういうのは避けたほうが良いでしょう。

あと演出でDQ系だと旅の扉のラスタースクロールが有名ですが、これもStretchBltで実現できます。

魔法の演出はどんなイメージなのかわかりませんので答えられないですが、もう少し細かく聞いてもらえると答えられると思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

どぶろく
記事: 75
登録日時: 6年前

Re: RPGの演出について

#2

投稿記事 by どぶろく » 6年前

解答ありがとうございます。

DXライブラリで書き換えようと思います。何といってもサンプルが豊富なのと処理が単純になるのが良い所ですね。
おっしゃる通り加算半透明とか光系の演出が得意なのも魅力ですね。

魔法の演出は難しく考えるとシューティングゲームの演出(弾幕のボス戦など)に似ているものを想像しています(例えが変?)。
火炎系ならくるくる回って伸縮したり。氷系なら氷を表示して砕け散らせるような感じです。
サンダー系なら画面を暗くして細かい稲妻をたくさん表示したいですね(ビカビカじゃなく穏やかに)。

簡単な演出プログラム集は、例えばサンダー系の魔法なら稲妻が走ればいいので、ラインを描くグラフィック関数で
ギザギザを作って黄色く塗りつぶしてピカピカさせたり、または、文字の●を連続してギザギザに流すように表示したり、
絵を描かなくても出来そうなやつです。こういうのを参考にしたいワケです。こういうのを投稿してくれる人が
いればいいのですが・・・。えっ? 自分で投稿しろって?

旅の扉のラスタースクロールは是非とも欲しいですね。期待しています。えっ? 自分で作れって?

ちなみに、私が敵と遭遇した時に使っている演出は実に単純なものです。某プログラム言語のサンプルにあったもので、
ただランダムに星を表示しているだけです。(DXライブラリで書き換えてみました)。
本格的な演出もいいんですが、こんな単純な演出もたくさんあると楽しいと思うのです。

コード:

include "DxLib.h"

//-------------------------------------------------------------
//  戦闘開始の星を表示
//-------------------------------------------------------------
void put_star(void)
{
    int  x, y, i;
    int  r, g, b;

    SetFontSize(40);      // フォントサイズを変更

    for(i=0; i<180 ;i++){
        r=GetRand(255); g=GetRand(255); b=GetRand(255);
        x=GetRand(639-40); y=GetRand(479-40);
        DrawString(x, y, "★", GetColor(r,g,b));
        WaitTimer(7);
    }
}

//-------------------------------------------------------------
//  エントリーポイント
//-------------------------------------------------------------
int WINAPI WinMain( HINSTANCE , HINSTANCE, LPSTR, int)
{
    ChangeWindowMode(TRUE);    // ウィンドウモード

    if( DxLib_Init() == -1 ){  // DXライブラリ初期化処理
        return -1 ;            // エラーが起きたら直ちに終了
    }

    put_star();                // 星を表示

    ClearDrawScreen();
    DrawString((640-6*40)/2, 200, "バトル開始!",GetColor(255,255,255));

    WaitKey() ;                // キー入力待ち
    DxLib_End() ;              // DXライブラリ使用の終了処理

    return 0 ;                 // ソフトの終了
}

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 8年前
住所: 東海地方
連絡を取る:

Re: RPGの演出について

#3

投稿記事 by softya(ソフト屋) » 6年前

どぶろく さんが書きました: 魔法の演出は難しく考えるとシューティングゲームの演出(弾幕のボス戦など)に似ているものを想像しています(例えが変?)。
火炎系ならくるくる回って伸縮したり。氷系なら氷を表示して砕け散らせるような感じです。
サンダー系なら画面を暗くして細かい稲妻をたくさん表示したいですね(ビカビカじゃなく穏やかに)。
それこそ龍神録が参考になると思います。
どぶろく さんが書きました: 簡単な演出プログラム集は、例えばサンダー系の魔法なら稲妻が走ればいいので、ラインを描くグラフィック関数で
ギザギザを作って黄色く塗りつぶしてピカピカさせたり、または、文字の●を連続してギザギザに流すように表示したり、
絵を描かなくても出来そうなやつです。こういうのを参考にしたいワケです。こういうのを投稿してくれる人が
いればいいのですが・・・。えっ? 自分で投稿しろって?
それを作るのが楽しいと思うのでわからないことは聞いてくださいね。
どぶろく さんが書きました: 旅の扉のラスタースクロールは是非とも欲しいですね。期待しています。えっ? 自分で作れって?
そんなに難しくないですよ。
画面を数ドット単位で横にスライスして左右にsinカーブで揺らしてやるでけです。
この周期を適度に変えてやると旅の扉っぽくなります。
どぶろく さんが書きました: ちなみに、私が敵と遭遇した時に使っている演出は実に単純なものです。某プログラム言語のサンプルにあったもので、
ただランダムに星を表示しているだけです。(DXライブラリで書き換えてみました)。
本格的な演出もいいんですが、こんな単純な演出もたくさんあると楽しいと思うのです。

コード:

include "DxLib.h"

//-------------------------------------------------------------
//  戦闘開始の星を表示
//-------------------------------------------------------------
void put_star(void)
{
    int  x, y, i;
    int  r, g, b;

    SetFontSize(40);      // フォントサイズを変更

    for(i=0; i<180 ;i++){
        r=GetRand(255); g=GetRand(255); b=GetRand(255);
        x=GetRand(639-40); y=GetRand(479-40);
        DrawString(x, y, "★", GetColor(r,g,b));
        WaitTimer(7);
    }
}

//-------------------------------------------------------------
//  エントリーポイント
//-------------------------------------------------------------
int WINAPI WinMain( HINSTANCE , HINSTANCE, LPSTR, int)
{
    ChangeWindowMode(TRUE);    // ウィンドウモード

    if( DxLib_Init() == -1 ){  // DXライブラリ初期化処理
        return -1 ;            // エラーが起きたら直ちに終了
    }

    put_star();                // 星を表示

    ClearDrawScreen();
    DrawString((640-6*40)/2, 200, "バトル開始!",GetColor(255,255,255));

    WaitKey() ;                // キー入力待ち
    DxLib_End() ;              // DXライブラリ使用の終了処理

    return 0 ;                 // ソフトの終了
}
良い感じが出て入れば何でもいいですよ。
私のRPG講座のやつは、フィールドとバトル背景を徐々に置き換えていくものです。
※ 背景を小さなブロックでランダムに上に重ねているだけですが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

どぶろく
記事: 75
登録日時: 6年前

Re: RPGの演出について

#4

投稿記事 by どぶろく » 6年前

softya(ソフト屋) さんが書きました: そんなに難しくないですよ。
画面を数ドット単位で横にスライスして左右にsinカーブで揺らしてやるでけです。
この周期を適度に変えてやると旅の扉っぽくなります。
こういうふうに説明してもらえると、大変分かり易いです。ありがとうございます。

その他の演出について、
屋根の上に鳥がとまっていて近ずくと飛んで行ったり、
池に魚が泳いでいたりするのも面白い演出でした。
鏡や池に自分の姿が映るのも面白かったですね。

あー、夢がどんどん広がって行く。楽しい。

宿屋に泊るときなど、単に暗くなるだけですが、
カラスが飛んできて「カァー」と鳴くのはどうでしょうか?
毎回こういう演出を入れると飽きるので、たまに入れたりします。

あー、夢がどんどん広がって行く。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 8年前
住所: 東海地方
連絡を取る:

Re: RPGの演出について

#5

投稿記事 by softya(ソフト屋) » 6年前

どぶろく さんが書きました:
softya(ソフト屋) さんが書きました: そんなに難しくないですよ。
画面を数ドット単位で横にスライスして左右にsinカーブで揺らしてやるでけです。
この周期を適度に変えてやると旅の扉っぽくなります。
こういうふうに説明してもらえると、大変分かり易いです。ありがとうございます。

その他の演出について、
屋根の上に鳥がとまっていて近ずくと飛んで行ったり、
池に魚が泳いでいたりするのも面白い演出でした。
鏡や池に自分の姿が映るのも面白かったですね。

あー、夢がどんどん広がって行く。楽しい。

宿屋に泊るときなど、単に暗くなるだけですが、
カラスが飛んできて「カァー」と鳴くのはどうでしょうか?
毎回こういう演出を入れると飽きるので、たまに入れたりします。

あー、夢がどんどん広がって行く。
鳥が飛ぶは、リアルタイムにプレイヤー動作と並行でイベンド実行できるシステムを用意するとできますね。プログラムでも良いですが。
池の鯉は専用プログラムかなぁ。
鏡や池は専用のシステムですね。マップの鏡属性で特殊なプログラムを動作させていると思います。

>カラスが飛んできて「カァー」と鳴くのはどうでしょうか?

夜のふくろうとかもいいですよね。
実際、日常的に鳥などを演出で入れていると急にいなくなって異変が起きたなどの演出にも応用できますね。
日常⇔異変の演出としても日常的な描写は大事だと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

どぶろく
記事: 75
登録日時: 6年前

Re: RPGの演出について

#6

投稿記事 by どぶろく » 6年前

夜のふくろうはいいですね。かわいいし、面白みもあります。
虫が鳴くというのもどうでしょうか?実際の音じゃなくても文章で表現してもいいんじゃないでしょうか?
日常からの異変の演出がイベント発生の演出になるというのはさすがですね。

セリフの表示で、普通ボックスに表示するのですが、
漫画みたいに、ふきだしを作って表示していたものがありました。
アイディアは素晴らしかったのですが、実際は読みづらかったので残念でした。
それにしてもプロは大変ですね、常に新しいことを考え続けなければならないし、
それを表現するプログラムを作るのも大変ですよね。

返信

“RPGを作りたい!” へ戻る