【カレッジ】スクリプトゼミ #1「スクリプト言語とプログラミング言語の違い」

【はじめに】

本日より、キャラフレのスクリプト言語についての講義を担当します。宜しくお願い致します。

今日は第一回目ということもあり、概論からスタートします。徐々に実践的な内容に入っていきますので、学園祭への出展物を制作したい人にとっての入門になることも目指していきたいと思います。

尚、カレッジ在籍生徒においては、各講義に対応した課題を提出することで、単位が認定されます。
単位取得希望者は、教授ゼミ室のシークレット掲示板に課題提出用の見出しを立てておきますので、そちらの注意事項を読んだ上で課題提出をして下さい。

【1】スクリプト言語とプログラミング言語の違い

キャラフレには編集室というシステムがあり、スライドショーやミニゲームコンテンツを制作するための開発環境を公開しています。
編集室でコンテンツを制作するためには、「スクリプト」と呼ばれるプラグラミング言語を覚えなければなりません。
この「スクリプト言語」と呼ばれるものですが、「プログラミング言語」とは、異なるものなのかどうかが、最初のテーマです。

余談ですが、「プログラム言語」なのか「プログラミング言語」なのかも気になるところです。
これはおそらく英語で「Programme language」ではなく「Programming language」が正しいことから、正確には「プログラミング言語」と呼ぶべきかと思います。
そう考えると「スクリプティング言語」と呼ぶのが正しいように思いますが、この講座においては日本で一般的な「スクリプト言語」と呼ぶことにします。

さて、本題です。
スクリプト言語の本来の意味は、人間がしゃべる「自然言語」に近いという意味だと思います。
もともと機械寄りの言語を、人間(とはいってもプログラムの専門家)が理解しやすいように改良していったのが「プログラミング言語」であり、それとは逆のアプローチ。つまり、専門家以外でも理解しやすいように自然言語をベースに考えたものが「スクリプト言語」です。
大昔は「簡易言語」と言った言葉もありましたが、最近は殆ど聞きませんね。

キャラフレのスクリプト言語は、ベースとなる「シナリオ」を強く意識しています。Scriptの元々の意味である「台本・脚本」にも通じる考え方ですね。
つまり、シナリオ担当者の元の脚本を、できるだけ読みにくくしないことを第一優先に設計しました。

例えば、以下はキャラフレで実際に使われているクエストの一部分です。

[如月アリサ]:
あら、もしかして…

[星野博人]:
ああ、そういうことか(ニコ)

[夏樹啓太郎]:
おいおい、俺は何のことだかわからないぞ?(激汗)

[加嶋沙耶]:
あーせやねぇ!(ニコ)

[加嶋沙耶]:
この子が今日の主役ってことね、ミカちゃん(笑)

キャラフレ以外の殆どのスクリプト言語・プログラミング言語では、セリフなどのデータとコマンドを明確に分離するため、データをデリミタと呼ばれる特殊文字で区切ります。デリミタには、ダブルクォーテーションマークや、シングルクォーテーションマークが、良く使われます。

例えば
“あら、もしかして…”
のような感じですね。

しかし、シナリオライターがシナリオを書く時に、全てのセリフをデリミタで囲んでもらうのは、書く効率を落とすと考えます。一方、その作業をプログラマー(スクリプター)に押しつけるのも、時間の無駄です。

キャラフレのスクリプト言語を設計する時の考え方として、機械の都合を押しつけるのではなく、人間の都合を優先してあります。

シナリオライターが、演出指示をコマンドとして記述できるようになれば、スクリプトの専門家がいなくても、そのままコンテンツとして実装できることを目標としています。
同時に、元シナリオとスクリプトを別々に管理しなくても、最終的なスクリプトさえあれば、後からシナリオを読む必要があっても可読性を損なわないことも重要と考えています。

作業者が分かれたり、管理が分かれると、デリミタ忘れなどのつまらないミスも発生します。また、出来上がったものが読みにくいと校正するためにシナリオへ戻り、修正したシナリオから再度スクリプト修正を行うなどの効率の悪いこともおこります。
キャラフレのスクリプトであれば、スクリプトをシナリオライターに直接修正してもらうことで、最新のファイルを一元化することができるのです。

つまりキャラフレスクリプトの特徴を要約すると、シナリオライターが最低限のルールを覚えてシナリオを記述することで、脚本の読みやすさを損ねずにADVゲームとして実装できることを目標に設計・開発されているということです。

その後、ニーズに応える形でミニゲーム用のコマンドをたくさん追加しました。ミニゲームを作るのは専門家の領域と考えていますが、講座の最後の方ではいろいろ解説していきたいと思っています。

以下は余談です。

この講座を読みながら、キャラフレで発表できるコンテンツを作ってみたいと考えた皆さん。
キャラフレのスクリプトは、シナリオさえ考えられれば、簡単にADVゲームが作れるようように配慮しています。また、自分で絵が描けなくても、キャラフレ内の背景や、自分や友だちのアバターを使って、様々なシチュエーションが再現できるように考えています。
背景も、ADVで必用になりそうなシーンはできるだけ充実させるようにしていますし、衣装や顔パターンも追加して、キャラの使い分けもできるようになっています。
そして、多くの感情を表現できる表情で、ストーリーを活き活きと表現することができるでしょう。

と言うわけで、最後は宣伝になりましたが、これで第一回目の講義を終わります(笑)

次回以降も、しばらくはADVゲームを作れるようになることを目標に、コマンドの解説を行っていきたいと思います。不定期連載になりますが、宜しくお願い致します。

コメントを残す

メールアドレスが公開されることはありません。