ページ 11

ゲームのストーリー展開の方法

Posted: 2016年3月15日(火) 19:56
by PUMP
ゲームの途中でストーリーが進むとき、攻撃等はできなくなり、キャラクター達が動いたり会話をしたりしますよね?
今からストーリーの関数でも作ろうと考えたのですが、これはどのように書くのが理想なのでしょうか。
各キャラの動きなども、座標を1つ1つ指定して、想像している動きに近付けるしかないのですかね?

Re: ゲームのストーリー展開の方法

Posted: 2016年3月16日(水) 12:55
by Ketty
こんにちは(^v^)

>ゲームの途中でストーリーが進むとき、攻撃等はできなくなり、キャラクター達が動いたり会話をしたりしますよね?
イベントシーンのことですね?

>各キャラの動きなども、座標を1つ1つ指定して、想像している動きに近付けるしかないのですかね?
ゲーム全体を通して、そういう場面がほんの少ししか発生しないようなゲームなら、
プログラムで座標をひとつひとつ書いても、そんなに手間でないように思いますが、
それだと、調整するたびに(1pxでも変更するたびに)コンパイルし直す必要があって面倒なのと、
たくさんイベントシーンを挿入したくなったときにプログラムが膨れ上がって管理しづらくなる気がします。

>今からストーリーの関数でも作ろうと考えたのですが、これはどのように書くのが理想なのでしょうか。
私なら、スクリプトで管理する手法を使うことが多いです。

スクリプトで管理:
 スクリプトファイルと呼ばれる外部ファイルに、座標やセリフといったパラメーターを記述し、
 ゲームプログラムは、このファイルの内容に従ってキャラクターの座標やセリフを制御します。

スクリプトファイル:
 ただのテキストファイルです。ゲーム.exeとは別に用意します。
 キャラクターに演技してもらいたい台本のイメージです。
 どんな書式でどう記述するのかは自由です。

 たとえば、主人公をX=32、Y=8の位置まで歩かせる場合、
 MOVE, PLAYER, 32, 8などと書きます。

 座標やセリフを変更したくなったときは、このファイルを編集するだけで、ゲームプログラム自体は手を加えずに済みますから、ちびちびとした調整をしやすいです。

 ゲームプログラムは、初期化やシーンの移り目に、スクリプトファイルをロードするようにします。
 また、「MOVE」や「PLAYER」といったキーワードを、理解できるように実装しておく必要があります。

 なので、「スクリプトファイルをロードする」とか「キーワードを理解する」といったことを関数化したりクラスにしたりします。

Re: ゲームのストーリー展開の方法

Posted: 2016年3月16日(水) 16:18
by プラム
今、イベントシーン中かを調べて、イベントシーン中ならそれに従ったシーン状況をプログラムに書いて、
そうでないなら戦ったりする、などというプログラムを書けばいいんじゃないですかね?(それのやり方がいまいちわからないのはなんとなくわかりますがこんなことしか言えない)
まあ何の言語で、何のライブラリなどを使っているかが分からないので何とも言えませんが。

kettyさんの言っているように、Scriptファイルを使うというのも良い手です。(外部から会話シーンの内容を変えたりできるようになるというのが個人的に怖いですが)

まず最初にスクリプトファイルをすべてロードしておいて、それをイベントシーンでうまく再生するのが良いと思います。

c言語のソースコードでそれを表すのなら。
まあシーンの切り替えの基本としてはまず

コード:

int Scenenum; //0がゲームシーン、1が会話シーン

if(Scenenum==0){  //もしゲームシーンなら

    //ここに処理を追加

    if(/*例えばエンターキーが押されたら(コード省略)*/){
          Scenenum=1;  //シーンを会話に変更
    }
}else{  //ゲームシーンではないなら(イベントシーン)

    //ここに処理を追加

    if(/*例えばエンターキーが押されたら(コード省略)*/){
          Scenenum=0;  //シーンを会話に変更
    }

}

こんな感じのコードの中に、上手く処理を追加して言って、
それを描画していくと良いと思います(説明下手なのでよくわからないかもしれませんがすいません!

それと、まだあまりプログラミングのことが分からないのであればC言語入門サイトC++入門サイトなどと
ゲームの作り方については、ここの掲示板の管理人のDixqさんがやっている。C言語 ゲームプログラミングの館などを参考にしてみるのも良いかもしれません。

Re: ゲームのストーリー展開の方法

Posted: 2016年3月16日(水) 16:53
by usao
オフトピック
>どのように書くのが理想なのでしょうか

方法の選択に際してどんな事柄を重要視するのか
的なことを先に述べた方が話がしやすいのではないでしょうか