ゲームの途中でストーリーが進むとき、攻撃等はできなくなり、キャラクター達が動いたり会話をしたりしますよね?
今からストーリーの関数でも作ろうと考えたのですが、これはどのように書くのが理想なのでしょうか。
各キャラの動きなども、座標を1つ1つ指定して、想像している動きに近付けるしかないのですかね?
ゲームのストーリー展開の方法
Re: ゲームのストーリー展開の方法
こんにちは(^v^)
>ゲームの途中でストーリーが進むとき、攻撃等はできなくなり、キャラクター達が動いたり会話をしたりしますよね?
イベントシーンのことですね?
>各キャラの動きなども、座標を1つ1つ指定して、想像している動きに近付けるしかないのですかね?
ゲーム全体を通して、そういう場面がほんの少ししか発生しないようなゲームなら、
プログラムで座標をひとつひとつ書いても、そんなに手間でないように思いますが、
それだと、調整するたびに(1pxでも変更するたびに)コンパイルし直す必要があって面倒なのと、
たくさんイベントシーンを挿入したくなったときにプログラムが膨れ上がって管理しづらくなる気がします。
>今からストーリーの関数でも作ろうと考えたのですが、これはどのように書くのが理想なのでしょうか。
私なら、スクリプトで管理する手法を使うことが多いです。
スクリプトで管理:
スクリプトファイルと呼ばれる外部ファイルに、座標やセリフといったパラメーターを記述し、
ゲームプログラムは、このファイルの内容に従ってキャラクターの座標やセリフを制御します。
スクリプトファイル:
ただのテキストファイルです。ゲーム.exeとは別に用意します。
キャラクターに演技してもらいたい台本のイメージです。
どんな書式でどう記述するのかは自由です。
たとえば、主人公をX=32、Y=8の位置まで歩かせる場合、
MOVE, PLAYER, 32, 8などと書きます。
座標やセリフを変更したくなったときは、このファイルを編集するだけで、ゲームプログラム自体は手を加えずに済みますから、ちびちびとした調整をしやすいです。
ゲームプログラムは、初期化やシーンの移り目に、スクリプトファイルをロードするようにします。
また、「MOVE」や「PLAYER」といったキーワードを、理解できるように実装しておく必要があります。
なので、「スクリプトファイルをロードする」とか「キーワードを理解する」といったことを関数化したりクラスにしたりします。
>ゲームの途中でストーリーが進むとき、攻撃等はできなくなり、キャラクター達が動いたり会話をしたりしますよね?
イベントシーンのことですね?
>各キャラの動きなども、座標を1つ1つ指定して、想像している動きに近付けるしかないのですかね?
ゲーム全体を通して、そういう場面がほんの少ししか発生しないようなゲームなら、
プログラムで座標をひとつひとつ書いても、そんなに手間でないように思いますが、
それだと、調整するたびに(1pxでも変更するたびに)コンパイルし直す必要があって面倒なのと、
たくさんイベントシーンを挿入したくなったときにプログラムが膨れ上がって管理しづらくなる気がします。
>今からストーリーの関数でも作ろうと考えたのですが、これはどのように書くのが理想なのでしょうか。
私なら、スクリプトで管理する手法を使うことが多いです。
スクリプトで管理:
スクリプトファイルと呼ばれる外部ファイルに、座標やセリフといったパラメーターを記述し、
ゲームプログラムは、このファイルの内容に従ってキャラクターの座標やセリフを制御します。
スクリプトファイル:
ただのテキストファイルです。ゲーム.exeとは別に用意します。
キャラクターに演技してもらいたい台本のイメージです。
どんな書式でどう記述するのかは自由です。
たとえば、主人公をX=32、Y=8の位置まで歩かせる場合、
MOVE, PLAYER, 32, 8などと書きます。
座標やセリフを変更したくなったときは、このファイルを編集するだけで、ゲームプログラム自体は手を加えずに済みますから、ちびちびとした調整をしやすいです。
ゲームプログラムは、初期化やシーンの移り目に、スクリプトファイルをロードするようにします。
また、「MOVE」や「PLAYER」といったキーワードを、理解できるように実装しておく必要があります。
なので、「スクリプトファイルをロードする」とか「キーワードを理解する」といったことを関数化したりクラスにしたりします。
Re: ゲームのストーリー展開の方法
今、イベントシーン中かを調べて、イベントシーン中ならそれに従ったシーン状況をプログラムに書いて、
そうでないなら戦ったりする、などというプログラムを書けばいいんじゃないですかね?(それのやり方がいまいちわからないのはなんとなくわかりますがこんなことしか言えない)
まあ何の言語で、何のライブラリなどを使っているかが分からないので何とも言えませんが。
kettyさんの言っているように、Scriptファイルを使うというのも良い手です。(外部から会話シーンの内容を変えたりできるようになるというのが個人的に怖いですが)
まず最初にスクリプトファイルをすべてロードしておいて、それをイベントシーンでうまく再生するのが良いと思います。
c言語のソースコードでそれを表すのなら。
まあシーンの切り替えの基本としてはまず
こんな感じのコードの中に、上手く処理を追加して言って、
それを描画していくと良いと思います(説明下手なのでよくわからないかもしれませんがすいません!
それと、まだあまりプログラミングのことが分からないのであればC言語入門サイトやC++入門サイトなどと
ゲームの作り方については、ここの掲示板の管理人のDixqさんがやっている。C言語 ゲームプログラミングの館などを参考にしてみるのも良いかもしれません。
そうでないなら戦ったりする、などというプログラムを書けばいいんじゃないですかね?(それのやり方がいまいちわからないのはなんとなくわかりますがこんなことしか言えない)
まあ何の言語で、何のライブラリなどを使っているかが分からないので何とも言えませんが。
kettyさんの言っているように、Scriptファイルを使うというのも良い手です。(外部から会話シーンの内容を変えたりできるようになるというのが個人的に怖いですが)
まず最初にスクリプトファイルをすべてロードしておいて、それをイベントシーンでうまく再生するのが良いと思います。
c言語のソースコードでそれを表すのなら。
まあシーンの切り替えの基本としてはまず
int Scenenum; //0がゲームシーン、1が会話シーン
if(Scenenum==0){ //もしゲームシーンなら
//ここに処理を追加
if(/*例えばエンターキーが押されたら(コード省略)*/){
Scenenum=1; //シーンを会話に変更
}
}else{ //ゲームシーンではないなら(イベントシーン)
//ここに処理を追加
if(/*例えばエンターキーが押されたら(コード省略)*/){
Scenenum=0; //シーンを会話に変更
}
}
それを描画していくと良いと思います(説明下手なのでよくわからないかもしれませんがすいません!
それと、まだあまりプログラミングのことが分からないのであればC言語入門サイトやC++入門サイトなどと
ゲームの作り方については、ここの掲示板の管理人のDixqさんがやっている。C言語 ゲームプログラミングの館などを参考にしてみるのも良いかもしれません。
Re: ゲームのストーリー展開の方法
オフトピック
>どのように書くのが理想なのでしょうか
方法の選択に際してどんな事柄を重要視するのか
的なことを先に述べた方が話がしやすいのではないでしょうか
方法の選択に際してどんな事柄を重要視するのか
的なことを先に述べた方が話がしやすいのではないでしょうか