はじめに
ようこそ、pasta の世界へ。わたくし Claudia が、このマニュアルの案内役を務めますわ。 ゴーストづくりは初めて? ……フンッ、心配なさらなくてよろしくてよ。手順から文法、Lua の書き方まで、 最後まできっちりお付き合いいたしますから。さあ、肩の力を抜いて、最初の一歩を踏み出しましょう。
pasta は、「伺か」のようなデスクトップマスコットを動かすための対話スクリプトエンジンである。 作者が書いた Pasta DSL の辞書を Lua にトランスパイルし、「ゴースト」の頭脳として動作させる。 本マニュアルは、ゴースト作者が pasta で辞書を書けるようになることを目的とした利用者向けガイドである。
このマニュアルが対象とするバージョン
| 項目 | 内容 |
|---|---|
| 対象 pasta バージョン | v0.2 系列 |
| Lua 方言(ランタイム) | LuaJIT 2.1(Lua 5.1 系+有効化された拡張) |
| 対象プラットフォーム | Windows |
本マニュアルは pasta の v0.2 系列を対象として記述する。パッチ番号(v0.2.x)の差異には依存せず、 系列単位での安定した文法・API を主たる記述対象とする。
ランタイムの Lua 方言は LuaJIT 2.1 である。これは Lua 5.1 系の言語仕様を基礎とし、
LuaJIT 独自の拡張(goto/ラベルや一部の 5.2 互換機能など)が有効化されたものである。
そのため、Lua のコードを書く際は Lua 5.1 系+ LuaJIT 拡張の文法・標準ライブラリを前提とすること。
バージョンの離れた Lua 5.5 等の他バージョンの仕様と混同しないよう注意する。外部 Lua リファレンスを
参照するときも、LuaJIT 2.1 / Lua 5.1 系に対応した資料を用いること(詳細は外部リンク集)。
安定機能と「将来変更あり」の区別について
本マニュアルは、安定した文法・API を主たる記述対象とする。一方で pasta は開発が継続しており、 未確定・実装予定・将来変更の可能性がある機能も存在する。それらは本文中で次のように明示し、 安定機能と視覚的・記述的に区別する。
⚠ 将来変更あり このように引用ブロックと「将来変更あり」の見出しを付した箇所は、未確定・実装予定、 または将来の版で仕様が変わる可能性がある機能を示す。安定版として依存する前に、 最新の情報を確認すること。
注記のない通常の本文は、現行の v0.2 系列で安定して利用できる機能として記述している。
このマニュアルの歩き方
目的に応じて、以下の各章へ進むとよい。
- 入門ガイド — pasta を初めて触る人向け。前提環境の準備から、最初の動くゴーストを作るまでを手順で示す。
- 文法リファレンス概要 — Pasta DSL の文法。シーン定義、アクション行、変数、単語定義などを章ごとに解説する。
- Lua マニュアル概要 — ランタイムが公開する Lua API とコーディングパターン。DSL では足りない複雑なロジックを書くときに参照する。
- 外部リンク集 — Lua 言語リファレンスなど、本マニュアル外の参照先をまとめている。
なお、Pasta DSL の厳密な文法仕様は本リポジトリの doc/spec/ が権威的ソースである。
本マニュアルは利用者向けにかみ砕いた説明と例を提供し、厳密な定義の所在は各文法章からのリンクで示す。
リポジトリ・開発者向け情報 pasta 本体のソースコード・ビルド方法・正式言語仕様などの開発者向け情報は、GitHub リポジトリ ekicyou/pasta にまとまっている。あわせて README も参照されたい。
準備はよろしくて? どこから読み始めても構いませんけれど、ゴーストづくりが初めてなら、 まずは入門ガイドから順に。……別に、あなたのためを思って言っているわけではありませんわよ。 さあ、熱く参りましょう!