━━━━ 伺か ━━━━


実装編 制作概要編 SHELL編 GHOST(YAYA)編 TIPS


制作概論編



●はじめに

 ここでは自分でゴースト・シェルを作る手順を説明していこうと思いますが、詳細については説明しません。w
細かい説明をしているサイトは既にいろんな方々がしていますのでそちらを参考にしてください。お勧めとしては The Giftさんのメニュー、伺か関連からシェル・ゴースト作成入門講座と、 そこからリンクされている作成入門サイトさんを見ていただければだいたいわかると思います。
ここではそれらに関わる概要・基礎的な部分と、それらのサイトを見ても解り難い部分の説明に絞りたいと思います。

 また、後半ではキャラクターの性格や機能を実装させるゴーストのプログラム部分に触れますが、ここではベースウェアに SSPを、栞(栞って何?については後で)には YAYAを使用する事を前提に説明をしていきます。

●で、栞って何?

 ゴーストではどういう時にどういった会話をさせるか、どういう操作をした時どんな機能を実行させるかというのを一般的なウィンドウズ用 アプリケーションと同じようにプログラムを考え、ソースを自分で書かなければなりません。
 「栞(しおり)」は、人間にとって解り易い言葉で書いたソースをベースウェアに解るように伝えるためのプログラムというわけです。 つまり翻訳システムというわけですね。でも人が普段会話をする言葉にも日本語や英語、ポルトガル語と色々ありますよね?
 過去にプログラムを少しやってみようとした人はわかると思いますが、プログラム言語にもC言語やDelphiなどがあります。各言語には作る プログラムによって得手不得手、大変か安易かの違いはありますが基本的には同じ事をしてくれるプログラムは作れます、 当然ソースの中身は言語が違うので違うものになります。
これと同じように栞にも数種類あり、栞によって得意不得意があります。その中でも現在多く使われているのが次の3種類です。

 里々(さとり)
 おそらく現在もっとも多く使用されている栞、ソースの殆どの部分を2バイト文字(半角英数以外の日本語など)を使用して構築することができ、 コミュニケーション関係のプログラムを組むのが安易で、会話などを充実させたゴーストを作る事に向いている栞。 その反面、難しい事をさせたり機能部分を実装させることには向いておらず、かなりややこしいソースを組まないと実装させることが出来ない。

 YAYA(やや)
 文(あや)の後継栞でとてもプログラマブルな栞、構文は殆どC言語に準じている。 そのプログラマブルな部分からプログラム未経験者で手を出す人は少ない。 また、WebなどのYAYAの説明を読んでも殆どがプログラム経験者を前提としたような説明が多くプログラム言語の入門本を読んで 頭を抱えてしまう人にはまず理解不可能。
 関数が充実していてオリジナル機能の追加などに向いていて、その拡張性は広くソースの構造もシンプル。 最初のハードルは高めだが基本をおさえてしまえば後々一番頭を悩ませる事の無い栞。

 華和梨(かわり)
 こちらもプログラマブルな栞だが、里々とYAYAの中間にあたるとっつき易さと拡張性を持ち合わせている栞。
ゆえにどっちつかずで最初から華和梨を選ぶという人はそれほど多くなく、機能的な面で里々を使用しているうちに満足出来なくなってきた人が 華和梨を選ぶという事が多い。(らしい・・・、私は里々とYAYAしか実際に使ったことが無いので詳しいことは判りません(´・ω・`))

 簡単にですが、ざっと上記のような違いがあります。
ここでは後々機能の拡張や、ミニゲーム的な物もやってみたいとなった場合、頭を捻りまくらないと実装できない里々より、基本さえ覚えて 少しずつ慣れていけば、そういった物も実装しやすいYAYAを使用する事を前提に説明をしていきます。(某サイトではYAYAを「スルメのような栞」と 説明されていますが、正にそんな感じです。噛めば噛むほど・・・)


 さて、ゴーストを初めて作る場合、最初から必要なファイルを全て自分で作ろうと考えると 覚えることが多くてきっと挫折してしまいます・・・。 なので、殆どのゴースト入門サイトでも書かれていますが、はじめは大抵どの栞にも用意されてる、テンプレート用の入門ゴーストを 改造していくことでオリジナルゴーストを作ることを強くお奨めします。
 今回使用するYAYAにもテンプレートゴースト「紺野ややめ」 がありますので暫くこのややめを参考にして説明しますので、リンクからDL、インストールしておきましょう。

●ファイル構造とシステム構造を掴もう!

 きっとここを読んでいる方は「早く自分の思った通りに動くゴーストが見てみたい!!」と、はやる気持ちが押さえられないかもしれませんが、 ひとまず落着いて、頭の角に置いとくだけで良いのでまずはファイル構造とシステム構造を適当に理解しましょう。(`・ω・´)

はじめにファイル構造ですが下の図は「紺野ややめ」をインストールした直後のSSP〜ややめファイル+αを展開していったファイル構造図です。
ファイル構造
これを見て「あれ?そんなファイル入ってない・・・」とか「このファイルが図に載ってない・・・」 というのがあると思いますがとりあえず置いといて下さい。

次に下の図がシステム構造です。システム構造は、どのファイルがどんな役目で、どのプログラム(ファイルに)から呼び出(登録)されているのかを示しています。
システム構造
さて、2つの図を見ながら少し説明していきます。

 通常ゴースト製作者はファイル構成図の水色のフォルダから先を自分で用意する事になります。水色のフォルダの名前は製作者の任意のフォルダ名でOKです。 ゴーストの名前など判りやすい名前をつけると良いと思います。

 ただし、このフォルダ名(ファイル名)に限った事ではありませんが注意点が1つ。
通常プログラムソース内で、ファイルを指定する場合などにパス(ファイルまでのフォルダの経路)を入力しますが、プログラムによっては 2バイト文字(漢字やひらがななどの日本語入力された文字)を読み込めないプログラムが多々あります。たとえメインプログラムが日本語に対応していたとしても プラグインなどが対応しておらず、バグが発生する場合があるので、基本的にはフォルダやファイル名は半角英数でつけておくようにしましょう。

 水色フォルダ内にはghostとshellフォルダ、そしてそれぞれのフォルダ内にmasterフォルダがあり、その中が主なファイル置き場になります。 ghost、shell、masterフォルダはベースウェア側で決まっているのでこの名前で作る必要があります。


 ではまずはshell側から見ていくといくつかのテキストファイルと画像ファイルであるpngファイルがあります。この中で重要なテキストファイルが descript.txtとsurfaces.txtです。
descript.txtはシステム図にあるように基本設定ファイルでこの中にはバルーン(吹き出し)の基本位置やメニューの背景画像ファイル、メニュー文字色 などを指定します。ファイル図shell内にある3つのmenu_・・・.pngはメニューの背景画像ファイルで、descript.txt内で指定しているのでdescript.txtを書き換えれば任意のファイル名 でも構いません。descript.txt自体はこのファイル名で作る必要があります。
 surfaces.txtはサーフェイスファイル(キャラクター画像)の個々の設定を登録しておくリストになります。この中ではアニメーション用のパーツファイルや タイミング、サーフェイスの当たり判定範囲など、サーフェイスIDとそのサーフェイスでのいろんな位置情報を登録しておきます。 このファイルもファイル名はsurfaces.txtである必要があります。

 ベースウェアはこのdescript.txtとsurfaces.txtを最初に読み込んで、登録されているメニュー画像やサーフェイスファイルを読み込むので重要な ファイルになります。サーフェイスファイルについては後でまた説明します。


 次に、ghost側を見ていくとこちらもいくつかのテキストファイルと他のファイルがあります。
このテキストファイルの中でghost側にもdescript.txtがあり、これがghost側の基本設定ファイルになります。この中には栞本体(dll)の指定や ゴースト起動時にタスクバーに表示されるアイコンのicnファイルを指定します。
 さて、ここから先は栞ファイルになりますが、栞に関するファイル構成は各栞によって違う為、ここからはあくまで栞がYAYAであることが前提の説明です。
YAYAではyaya.dllが栞の本体ファイルになります。yaya.dllはまず最初にyaya.txtを読み込みます。yaya.txtにはゴーストの動作や喋りなどの プログラムソースであるyaya_・・・.txtファイルが登録されています。yaya.txtに登録されていないソースファイルは読み込まれないので 新たにyayaソースファイルを作った場合にはyaya.txtへの登録を忘れないように注意しましょう。yayaファイルについても後でまた説明します。


 さて、今回参考にした「紺野ややめ」のファイル内にはありませんが、図の中にSAORIフォルダ(ファイル)があります。
これはシステム図にあるように拡張機能を使用できるようにするファイルで、いろんな機能用のSAORIファイルがネットで公開されており、 yayaソースファイル内で呼び出して機能を使う事になります。
 しかし、システム図の中にもう1つ同じ拡張機能としてプラグインがあります。このプラグインとSAORIの違いはベースウェア自体にインストールして ベースウェアに機能を追加するのがプラグイン、各ゴーストで個々に用意してゴーストのプログラムによって呼び出されて機能を使えるようにするのが SAORIになります。

 以上が大体のファイル構成と役目になります。なんとなく解かりましたか?この時点ではなんとなくで十分です。
適当に頭に置きながら、わからなくなったらここを見返してみてください。次では作っていく順番にもう少し詳しく説明していきます。






Hobbyへ

TOPへ