第一部 11:00〜

「ゴースト製作支援ライブラリ『あやりりす』の紹介」 - C.Ponapalt 様

  • 自己紹介
  • 「あやりりす」って何?
    • 伺か向けDSL「文」(AYA)の改造版「YAYA」向け開発支援ライブラリ
    • C言語ライクに書けるAYA→プログラマ専用の雰囲気
    • 普通の人(非プログラマ)にも書けるスクリプト、PGも納得の強力な支援機能の両立をしたい
    • それって都合良すぎ??
  • あやりりすの適用前・適用後
  • できること
    • 簡単で適切な自動トーク制御
    • 難しい細工のいらないイベント反応
    • SakuraScriptをあまり使わない
  • できないこと - 「AYA以外の何か with 違うもの」
    • 里々の辞書を読む
    • AYAの文法がまったく要らない記述
  • 開発動機と名前の由来
    • くーぷらん氏、水無月藍氏の開発支援経験
    • 何でも書けるが難解なAYA・華和梨
    • 一見簡単だが、ややこしいことをすると即刻記述が破綻状態になる里々系“括弧悪い”
    • 「何でも書けて簡単に書ければ問題ないよね」→内輪で使うために開発
    • 名前の由来
  • 「あやりりす」と「あやりりすEX」
  • 「あやりりす」→イベント処理支援ライブラリ
    • OnBoot→「朝に起動」
    • OnGhostChange→「*Emilyへ変更」
    • OnMouseMove+ややこしい条件分岐→「なでなで0Bust」
    • AYAに慣れた人でもめんどくさい処理記述を完全支援!Tipsを全部投入!
  • ランダムトーク管理
    • 「新規追加ランダムトーク」で新ネタ優先→慣れていても実装が面倒
    • 季節や時間帯専用トークを特別な記述なしに通常トークに混ぜて喋らせることができる→大量のif分の山よサヨウナラ!
    • 「ランダムトーク秋」とか書ける
  • コミュニケート管理
    • 泣きそうな条件分岐の山→「ユーザーコミュ好き|愛し」
  • 今後の展開
    • モードのサポート→まだ完成度が低い
    • アンカー(単語解説)サポート→別ファイルで実装中。できれば単独で使えるようにしたい。(あやりりすACとして分割?)
  • あやりりすEX
  • トークべた書き支援ライブラリ(「あやりりす」抜きで単体仕様可)
    • 行ベースで台本を書くようにベタ書きできる設計→副産物:誰がどの表情で喋ってるかわかる
  • -
    • チェイントーク支援→「=====」で区切るだけでチェイントーク
    • メニュー記述支援
      • @メニュー:テキスト|イベント
      • @半分メニュー:テキスト|イベント
      • →一行全部ハイライトするメニューが一瞬で書ける
  • 今後の展開
    • サーフィス番号変換処理→実はそこそこ実装済み、運用中(aya_lilith_ex_config.dicを参照)
    • 「番号」の代わりに文字で書けるように→「りりす笑:わっはっは」
      • 最初は便利に思うけれど、そのうち飽きて番号に戻ることが多い?(ボツ?)
    • 行ベースの条件分岐→ローカル変数が使えないので調整中(一応動く)
  • まとめ
    • 里々レベルの簡単さと、AYAの拡張性をあわせもつ強力なライブラリを開発
    • AYAゴースト開発に必要な着手当初の学習量を劇的に軽減→プログラマさん以外にも使える
  • -
  • 終わり(?)
  • 本当の開発動機
    • 「ぽなさんが」がトーク書くのが面倒臭かった
      • 下書きをいちいちスクリプトに手作業で直す工程に飽きた
    • 「ぽなさんが」イベント処理描くのが面倒臭かった
      • 毎回再利用不可能なコードを書き直すのが面倒だった
  • 実装詳細
    • AYAはプロトコルまで実装が可能
    • イベント処理やトーク処理を自分で書くことができる
    • 普通の設計:「SSP」→「DLL入り口」→「プロトコル解釈」→「イベント処理」→「DLL出口」→「開発者が書く辞書」
    • AYAの設計:「SSP」→「DLL入り口」→「最低限の処理」→「DLL出口」→「プロトコル解釈」→「イベント処理」→「開発者が書く辞書」
    • 「開発者が書く辞書群」に手をつけず、新しい記法を追加することができる
    • 開発者向け辞書と、支援部実装詳細との完全な切り離しが目的
      • Tipsサイトからテキストコピペはもう嫌だ
      • まともなプログラミング環境なら当たり前
    • 辞書として読み込むだけで追加できる「きわめて簡便な追加操作」
      • 新しいゴーストを作るたびに手作業が伴うとか正直やってられない
      • 更新するときもあやりりす関係ファイルを入れ替えればOK!