|這是一個翻譯中的詞條,歡迎有興趣的朋友加以補完。| * 里々からYAYAへ移行する [#ke0d0ecc] * 從里々移行至YAYA [#ke0d0ecc] 主に里々しかSHIORI使った事がないけどYAYAも使ってみたい!という人向けの説明です。~ タイトルに「☆」がついている項目は「[[はろーYAYAわーるど(紺野ややめ)>http://ms.shillest.net/yayame.xhtml]]」や「SimpleYAYAテンプレート」などのテンプレートじゃないと使えないかもしれません。~ 本詞條主要是面向想從里々SHIORI移行至YAYA的人。~ 標題中有「☆」號的項目很可能非「[[はろーYAYAわーるど(紺野ややめ)>http://ms.shillest.net/yayame.xhtml]]」或「SimpleYAYAテンプレート」等範本就用不了。~ #contents * はじめに [#yd6505d2] ** 里々移行至YAYA的好處 [#z8a1faa1] ** 里々からYAYAにする利点 [#z8a1faa1] プログラミング的な事をするのに強いので、ゴーストのトーク以外の部分がごちゃごちゃしてきて書くのが面倒な場合楽になります。~ でもそれは特にYAYAだけに限った特性ではなく、[[華和梨>http://www.towano.net/wk_kwr/]]という選択肢もあります。~ 更新が停止していても良い(もし不具合があっても修正が望めない)なら更に選択肢は広がります。~ 自分で使いやすそうなSHIORIを選ぶのが良いでしょう。~ 編程能力較強,人格對話以外的部份的編寫會變得容易。~ 當然這優勢不光YAYA獨有,[[華和梨>http://www.towano.net/wk_kwr/]]也是另一個選擇。~ 如果使用不再更新(SHIORI出現了問題不指望會有修正)的話選擇就更多了。~ 總而言之選擇自己用得最就手就好。~ //配布停止のためコメントアウト[[透理>http://pleco.is.land.to/]] ~ YAYAにはファイル操作ができる、正規表現が使えるなどの特徴もありますが、他のSHIORIでもSAORIを使えばできますし、 [[YAYAasSAORI>http://navy.nm.land.to/post/]]でYAYAをSAORIとして使っても全く同じ事ができます。~ つまりそれだけを目当てにしてYAYAを選択する必要はありません。 YAYA能夠對檔案進行操作,又能夠使用正規表達式為其特徵,其他的SHIORI也能夠使用SAORI, 靠[[YAYA as SAORI>http://navy.nm.land.to/post/]]把YAYA當成SAORI來用也一樣。~ 也就是說如果這是目的的話就沒有選擇YAYA的必要了。 ** 注意点 [#u3ee1de7] -里々はウェイト、改行、スコープ切り替えタグなどが自動で入りましたが、YAYAはそれらを全て''さくらスクリプトを使い自分で書きます''。選択肢も必ずさくらスクリプトで書くことになります。 -YAYAは基本的にトーク以外は半角で書きます。 -里々はテンプレートゴーストがなくてもsatori.dllを用意してマニュアルを見ればなんとかなりましたが、YAYAはSHIORI/3.0設定スクリプトなど(ゴーストが動くときの歯車の部分)を自力で0から作るのが難しいためほぼ必須です。最低限[[SimpleYAYAテンプレート]]のyaya_shiori3.dicだけは流用したほうが無難です。 -里々は拡張子が「.txt」でファイル名が「dic~」から始まる辞書ファイルは自動的に読み込みましたが、YAYAは''yaya.txtで設定した辞書しか読み込みません''。その代わりどの拡張子の辞書も読み込める、辞書を好きなディレクトリに置けるという利点もあります。 -どの辞書にどのイベントを書いてもいいのは里々と同じ。 -フォルダごとの辞書読み込み切り替えはできません。(多重人格のやり方は[[Tips/多重人格モード]]にありますが、読み込みフォルダ切り替え方式ではありません) -里々はSAORI-basicをそのまま使えましたが、YAYAではPROXY.DLLというSAORIを経由しないと使えません。(詳しくは[[Tips/SAORIの使い方]]を) ** 注意點 [#u3ee1de7] -里々會自動插入等待、換行、說話者切換(\0、\1等),而YAYA則是全部''Sakura Script由創師自己編寫''。選項也變成必須以Sakura Script編寫。 -YAYA基本上對話以外都以半形書寫。 -里々在沒有範本人格而靠參考著使用手冊使用satori.dll就可以成事,但YAYA的SHIORI/3.0設定腳本等(人格運作的齒輪部分)要自己由0開始寫出是很困難所以範本基本上是必須的。最少單使用[[SimpleYAYAテンプレート>http://emily.shillest.net/ayaya/index.php?SimpleYAYA%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88]]的yaya_shiori3.dic才可以。 -里々會自動載入副檔名為「.txt」而檔名開頭為「dic~」的辭書檔案,但YAYA為''只載入yaya.txt中設定了的辭書''。但這點有使任何名稱的辭書也能載入,辭書也能放到任何位置的好處。 -哪個辭書中都能編寫任何事件這點和里々一樣。 -不能靠資料夾切換載入的辭書。(想做多重人格的創師可參考[[多重人格モード>http://emily.shillest.net/ayaya/index.php?Tips%2F%E5%A4%9A%E9%87%8D%E4%BA%BA%E6%A0%BC%E3%83%A2%E3%83%BC%E3%83%89]]的方法,但沒有切換資料夾的方式) -里々能直接使用SAORI-basic(exe形式SAORI),但YAYA必須經PROXY.DLL這類SAORI來操作SAORI-basic。(詳細請參考[[SAORIの使い方>http://emily.shillest.net/ayaya/index.php?Tips%2FSAORI%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9]]) ** 準備しておいたほうがよいもの [#qa625c4e] :テキストエディタ|[[エディタ色分けファイル]]と一緒にインストールしておきましょう。拡張子.dicのファイルを開くと色分けされるように設定しておくととても便利。 :テンプレートゴースト|[[StartUp/YAYAでゴーストを作る]]から自分に合ったものを。前述したようにほぼ必須。 ** 需要準備的東西 [#qa625c4e] :文字編輯器|和[[編輯器語法高亮檔案>http://emily.shillest.net/ayaya/index.php?Tips%2F%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E8%89%B2%E5%88%86%E3%81%91%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB]]一起安裝就更好。把副檔名.dic的檔案和語法高亮檔案關聯就更方便了。 :範本人格|從[[YAYAでゴーストを作る>http://emily.shillest.net/ayaya/index.php?StartUp%2FYAYA%E3%81%A7%E3%82%B4%E3%83%BC%E3%82%B9%E3%83%88%E3%82%92%E4%BD%9C%E3%82%8B]]或[[本wiki的範本>../AYA人格範本]]中選一個自己合適的吧。如前所述基本上是必須的。 * YAYAの辞書を書いてみる [#hcfdaf26] * 嘗試編寫YAYA 辭書 [#hcfdaf26] 起動イベントで例を出してみます。 以起動事件為舉出來看看。 ** 基本 [#me9643b5] -里々 *OnBoot :いっちばーん。 里々ではこう書いていました。~ YAYAでは以下のように書きます。 里々就會如此編寫。~ YAYA的話就以下面的寫法編寫。 -YAYA OnBoot { "\0\s[0]いっちばーん。\e" } なんかよくわからない記号が色々ありますが、一つづつ見ていきましょう。 有些不明的符號,我們逐一看看吧。 -記号の解説 -符號解說 :OnBoot|最初に書く起動イベントを表す名前。このへんは里々と同じです。YAYAでは関数名と呼んだりします。~ [[CROW・SSPリファレンス - Shiori>http://crow.aqrs.jp/reference/all/Shiori/index.html]]に書かれてるイベント名はどれもYAYAでそのまま書けます。~ 「起動」「終了」「初回」などの日本語のイベント名は里々独自イベント名のため、YAYAで使ってもそのままでは呼び出されません。 :OnBoot|最初為編寫代表起動事件的名稱。這裡和里々一樣。YAYA的話也叫為函數名稱。~ [[開發文件/平台/SSP/Shiori]]中所寫的事件名稱在YAYA中都如此編寫。~ 「起動」「終了」「初回」等日文事件名稱為里々專用事件名稱的關係,在YAYA中使用不自行處理的話將不會被呼叫。 :{ }|イベント名を書いたのあと、イベントの中身をこの二つの記号でくくります。~ ''YAYAでSHIORI Eventを書く時は必ず「イベント名{イベントの中身}」''です。~ ちゃんと囲まないとエラーが出てゴーストが起動しなくなってしまいます。 :{ }|在事件名稱之後,事件內容會以這兩個符號圍起來。~ ''YAYA中的SHIORI Event時必須以「事件名稱{事件內容}」形式''編寫。~ 不好好圍起來的話來有錯誤出現使人格不能起動。 :" "|トークなど、文字列は必ずこの記号でくくります。~ ''里々と違い、これでくくらない文字は変数名や関数名だと思われてしまいます''。~ ちなみに「" "」の変わりに「' '」でくくると中にある変数が展開されません。普段は「" "」でOK。 :" "|對話等字串必須用這個符號圍起來。~ ''和里々不同、不用這個符號圍起來的文字會被YAYA當成變數名或函數名''。~ 此外不使用「" "」而使用「' '」圍起來的文字中的變數將不會被展開。普通用「" "」就OK。 :\0|「これから0番キャラ(さくら側)がしゃべったり表情変えたりするぞー」という意味のさくらスクリプト。~ この後に書いたテキストはさくら側のバルーンに表示されます。うにゅう側にしゃべらせたくなったら\1。~ 里々ではこの二つの切り替えを「:」のみでしています。 :\0|「0號人物(主菜側)有所表示(說話或是轉變表情)了ー」的意思的Sakura Script。~ 在這之後所寫的文字會在主菜側對話框顯示。使魔側要說法的話用\1。~ 里々的話兩者間切換就只使用「:」。 :\s[0]|0番サーフェスを表示するさくらスクリプト。里々で(0)と書いていたもの。~ 里々では最初の(0)は省略できましたが、YAYAではこれを入れないとトークをする前のサーフェスがそのまま表示されてしまいます。 :\s[0]|顯示0號表情的Sakura Script。里々會以「(0)」編寫。~ 里々能把最初的(0)省略掉,但YAYA中不記入這個的話說法時會這這樣用之前的表情顯示。 :\e|トークの終了を表すさくらスクリプト。入れなくても特に問題はないようですが一応トークの最後に入れておきましょう。 :\e|表示說話完結的Sakura Script。不記入通常不會有大問題但是請習慣在對話完結時記入它吧。 ちなみに里々と違い自動でウェイトはつきません。入れたい場合はさくらスクリプトで入れてください。 さくらスクリプトはYAYA以外のSHIORIでも共通して使うものなので、このWikiでは説明していません。~ これ以外も色々あるのでリファレンスサイトで実際に使いたいものだけ、ちょっとづつだけでも良いのでYAYAといっしょに覚えてみてください。~ 此外和里々不同YAYA不會自動插入等待。想插入等待時請以Sakura Script記入。 Sakura Script除了YAYA以外的SHIORI也能共通的關係,就不在本詞條說明了。~ 除此之外就是參照關發文件轉換文法了,雖然有點辛苦但是可以的話大家一起學YAYA吧。~ -[[CROWリファレンス - SakuraScript>http://crow.aqrs.jp/reference/crow/SakuraScript/index.html]]~ -[[Disc-2 SakuraScriptリスト>http://disc2.s56.xrea.com/manual/list_sakura_script.htm]] 最初にイベント名を書く、中身を「{}」でくくるなどの書き方のルールがちゃんと合ってればこんな風に書いても 符合最初寫好事件名稱、內容以「{}」圍起來的編寫規則的話寫成這樣 OnBoot { "\0\s[0]いっちばーん。\e" } こんな風に書いちゃっても構いません。 甚至寫成這樣也沒問題。 OnBoot { "\0\s[0]いっちばーん。\e" } OnBootと{の間などにある空白・改行は、入れても入れなくても大丈夫。タブをいれてもOK。~ 自分の見やすい、書きやすい書き方を選んでください。~ OnBoot和{之間的空白・換行有沒有也沒關係。[Tab]也可以。~ 請選舉自己看著舒適,編寫舒適的編寫方法。~ OnBoot{"\0\s[0]いっちばーん。\e"} 基本的に""の外にある空白やタブ、改行は無視されるので、 基本上""之外的空白或[Tab]、換行會被無視、 OnBoot { "\0\s[0]いっちばーん。\e" } こんなんでもよし。~ 要するに 寫成這樣也沒問題。~ 總之 【ここ】OnBoot【ここ】{【ここ】"\0\s[0]いっちばーん。\e"【ここ】}【ここ】 上の【ここ】の所に空白(半角空白、全角空白、タブ)や改行をいくらでも入れられるっていう訳です。~ 上面的【ここ】的位置中的空白(半形空白、全形空白、[Tab])或換行填多少個沒關係。~ ~ YAYAはこの仕組みを使って辞書を自由に整える事ができます。~ これが里々より辞書の見通しが良いと言われる理由の一つです。 YAYA中使用這個結構能自由整理辭書。~ 這就是比里々的辭書更容易看的說法的其中一個理由。 **改行する [#yc594c97] **換行 [#yc594c97] -里々 *OnBoot :改行 します。 里々では辞書の中の改行がそのままトークの改行になりましたが、''YAYAではさくらスクリプトを使って改行しないとバルーンに表示された時改行になりません''。~ 改行したい部分に「\n」をいれてください。 -YAYA OnBoot { "\0\s[0]改行\nします。\e" } 「これじゃあ辞書の中で改行になってなくてわかりづらい!」…と思う方は OnBoot { "\0\s[0]改行\n/ します。\e" } こうやって行末に「/」を入れれば改行できます。~ 好きな位置に入れてつかいましょう。 OnBoot { "\0\s[0]/ 改行\n/ します。/ \e" } -わるい例 OnBoot { "\0\s[0]改行\n します。\e" } ''" "や' 'でくくってあるところを末尾に「/」を入れないで改行してしまうとエラーになってしまうので気を付けてください''。 **単語や文章をランダムで選ぶ [#i74d4072] 里々では同じイベントをたくさん書くとその中からランダムで選ばれました。 *OnBoot :こんにちはー。 *OnBoot :おっすー。 *OnBoot :やっほー。 が、YAYAでこれをやるとエラーが出て起動しなくなります。~ ''YAYAは同じイベント名のイベントを二つ以上書けません。''~ ~ 代わりにこんな風に、{ }の中で" "を改行区切りで並べましょう。 OnBoot { "\0\s[0]こんにちはー。\e" "\0\s[0]おっすー。\e" "\0\s[0]やっほー。\e" } ''YAYAは{ }の中に" "や' 'でくくった文字列が複数あると、その中のどれか一コだけランダムで選びます''。~ ~ 改行の代わりに「;」区切りにすると一行にまとめることもできます。 OnBoot { "\0\s[0]こんにちはー。\e" ; "\0\s[0]おっすー。\e" ; "\0\s[0]やっほー。\e" } ~ ~ \0\s[0]や\eを何度も書くのが面倒という人は~ OnBoot { "\0\s[0]" -- "こんにちはー。" "おっすー。" "やっほー。" -- \e } こう書いてしまう事もできます。~ ''「--」で区切ると、その区切った中からそれぞれ" "や' 'でくくった文字列がランダムで1コ選ばれ、くっつけて表示されます''。~ ~ ちょっとわかりづらいので例を出して説明。~ てんき { "きょうは"//←<1>この2つのどっちかが選ばれる "明日は"//←<2> -- "晴れ"//←(1)この4つの中のどれかが選ばれる "雨"//←(2) "曇り"//←(3) "雷"//←(4) -- "です。"//←1コしかないので必ずコレが選ばれる } こう書くと~ 「きょうは雨です。」~ 「明日は曇りです。」~ 「きょうは晴れです。」~ 「明日は雷です。」~ 「明日は晴れです。」~ …といった文章が呼び出すたびランダムで作られるわけです。~ ~ ランダムなので同じ単語が連続して選ばれる事もあります。~ ここで「あれ?里々みたいに重複回避ってできないの?」と疑問にお思いの方も出てくるかもしれませんが、できます。 OnBoot : nonoverlap { "\0\s[0]" -- "こんにちはー。" "おっすー。" "やっほー。" -- \e } イベント名の後ろに「 : nonoverlap」をつけてください。同じ文が連続して選ばれなくなります。~ 上から順番に選ばせたい時は「 : sequential」です。 ちなみに、里々ではこんな風に書くことにより別な場所に書いてある単語群をトークに呼び出す事ができますが~ * :(季節)はいいね~ :どの季節でも言ってるジャン @季節 春 夏 秋 冬 同じ事をYAYAでやるとこんな感じです。 Talk { "\0\s[0]%(季節)はいいね~\w9\1\s[10]どの季節でも言ってるジャン\e" } 季節 { "春" "夏" "秋" "冬" } トーク中で%(季節)または%季節と書くと、「季節」という名前の関数を呼び出すことができます。~ ~ 里々だと単語のひとまとまりは「@季節」、改行が入るような文章は「*季節」と書くルールがありましたが~ ''YAYAは単語と文章を区別しないので単語でも文章でも「季節{ }」''です。~ OnBootなどのSHIORIイベントも単語群もどちらも「関数」として書くので書き方も全く同じ。~ ~ もちろん上で書いた天気トークみたいに Talk { "\0\s[0]" -- "春" "夏" "秋" "冬" -- "はいいね~\w9\1\s[10]どの季節でも言ってるジャン\e" } こー書いてもよいです。~ 別なトークでも季節の単語群を使いたかったら「季節」の関数を作ってそれを別な関数から呼び出す方式ですね。~ **変数 [#d9cc0463] 使う人は使いまくり、使わない人は全然使わなかったかもしれない変数。~ ユーザー名や起動回数・起動時間・好感度で使う人は多かったかも。~ 里々では変数は1種類しかありませんでしたが、YAYAはいろいろとあります。~ まずはそのへんの説明。 ***文字列と数値 [#v9f96732] YAYAの変数は文字列と数値の二種類があります。(正確には整数、実数、文字列の3種類)~ 変数 = 1 こー代入すると変数の中身は数値の「1」 変数 = "1" こー" "か' 'でくくって代入すると変数の中身は文字列の「1」となります。~ ~ 里々と違い全角の「1」「2」「3」…は数値になることはできません。~ ''文字列変数だと数値として比較や計算ができません。''~ 例えば数字の数値「1」と「2」で足し算すると結果は「3」になりますが、文字列の「1」と「2」を足すと1と2がくっついて「12」になってしまいます。~ 他にも色々違いがあります。注意してください。~ ~ ちなみに変数はいつでも好きな時に文字列←→数値に変更できるので安心。~ 用途によって変更してください。 -変数を文字列にする 変数 = TOSTR(変数) -変数を数値にする 変数 = TOINT(変数) ***グローバルとローカル [#gd41ca5e] _変数名 名前の頭に「_」をつけるとローカル変数 変数名 つけないとグローバル変数になります。~ ~ おおざっぱに言うと「すぐ消えてしまう」のがローカル変数、「削除しない限りずっと残る」のがグローバル変数です。~ 里々の変数は全部グローバル変数ですね。~ ユーザー名や好感度などずっと残しておかないといけない変数以外はローカル変数を使うのが基本です。~ ~ で、ローカル変数がどれぐらいの期間使えるのかというと、~ 「現在の{ }内、およびそれより深い入れ子階層のみで使用できる。寿命は該当する{ }を抜けるところまで。」~ です。(マニュアルより引用)~ ~ 言葉では説明しづらいので一例をだしてみると ローカル変数テスト { { _変数 = 1 } 結果 = _変数 } こう書くと「_変数」が深い階層から浅い階層に移った時に消えてしまうので「結果」の中身も空になってしまいますが ローカル変数テスト { _変数 = "" { _変数 = 1 } 結果 = _変数 } こうすれば「_変数」は浅い階層→深い階層→浅い階層…と、最初に浅い階層にいた経験があるので深い階層から浅い階層に移動しても消えずに残り、「結果」の中身は1です。~ 最初に「_変数」が生まれたところが「結果=_変数」と同じ(またはもっと浅い)階層かどうかがポイント。 ~ つまりローカル変数を長生きさせたい時は最初に一番浅い階層で「_○○=""」などの一行を書いておけばOK。 ***変数の代入 [#a87ba410] プレゼントをあげてフラグを立てた例。~ プレゼントフラグを数値の1にします。 -里々 *プレゼントした $プレゼントフラグ=1 :わーいありがとう! -YAYA プレゼントした { プレゼントフラグ = 1 "\0\s[0]わーいありがとう!\e" } これだけ。シンプル。~ 里々との違いは~ -頭に「$」はつけない。 -{ }の中に書く({ }の外に書くとエラーになります) -「=」などの計算用の記号、「1」などの数値は全て''半角で書く''。 里々でも計算式や数値を半角で書く癖があった人は楽かもしれません。~ ~ 【ここ】プレゼントフラグ【ここ】=【ここ】1【ここ】 【ここ】の部分には空白を入れても構いません。~ 見やすくするため演算記号の右と左に半角空白を入れる人が多いようです。~ ~ 文字列を代入する場合はこんなかんじ。~ 「プレゼント」という変数に「花束」という文字を入れます。~ -里々 *プレゼントした $プレゼント【タブ】花束 :わーいありがとう! -YAYA プレゼントした { プレゼント = "花束" "\0\s[0]わーいありがとう!\e" } 数値じゃない時は必ず" "か' 'でくくりましょう。~ トークを書くときと同じですね。 里々みたいに「プレゼント【タブ】"花束"」とは書けません。必ず「=」で代入します。 プレゼントした { プレゼント = 花束 "\0\s[0]わーいありがとう!\e" } うっかりこう書いてしまうと「プレゼント」の中身はからっぽになってしまいます。~ なぜかというと、''YAYAでは「"花束"」ではなく「花束」だけだと「『花束』という名前の変数」になってしまうからです''。~ そのため「プレゼント」という変数に「花束」という変数の中身を入れましたよ、という意味に理解され、~ 「花束」という変数は存在してないため中身は空になってしまう、という訳です。~ ~ 里々でいうとこんな風に書いちゃった、ということです。 *プレゼントした $プレゼント【タブ】(花束) :わーいありがとう! このへん里々とは逆なので最初はちょっと混乱するかも。 ***変数の計算 [#a61ce42f] -里々 *好感度アップ $好感度=(好感度)+1 :ユーザーさんだいすき! -YAYA プレゼントした { 好感度=好感度+1 "\0\s[0]ユーザーさんだいすき!\e" } こっちもシンプル。~ 里々だと「好感度=(好感度)+1」のように右側の変数は()つきで書く必要がありましたが、YAYAは何もつけなくてOK。~ これは前述したように" "や' 'でくくってない文字列は変数、関数名(半角数字だけの場合は数値)として見られるからです。~ ~ ちなみにYAYAはこう省略して書く事もできます。 プレゼントした { 好感度++ "\0\s[0]ユーザーさんだいすき!\e" } 「好感度++」は「好感度を1増やしますよ」という意味で「好感度=好感度+1」と意味は同じです。~ 「好感度--(半角マイナス2コ)」だと1減ります。~ 「好感度+=2」だと「好感度=好感度+2」と同じ、「好感度-=2」は「好感度=好感度-2」と同じです。~ そのほかYAYAで使える計算用の記号の説明はこのあたりに書いてあります。(専門用語多くてちょっとわかりにくいですが)~ -[[old/AYA/ドキュメント/V5/マニュアル>http://emily.shillest.net/ayaya/index.php?old%2FAYA%2F%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%2FV5%2F%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB#v84b1e7f]] 里々と同じく、文字同士の足し算もできます。 プレゼント = "花" + "束" と書くと変数「プレゼント」の中身は「"花束"」となります。~ ~ 変数はもちろんトーク中でも使えます。 プレゼントした { プレゼント="花束" "\0\s[0]わーい\w6%(プレゼント)だー!\w9\w9ありがとう!\e" } バルーンに「わーい花束だー!ありがとう!」と表示されます。~ 書き方は上で説明した単語群をトークに使う時と全く同じですね。~ このあたりは里々もYAYAも変わりません。~ ~ 変数がちゃんと保存されているかどうか確認したい時はゴーストを終了して「yaya_variable.cfg」をテキストエディタで開いてみてください。~ 上の例だったら~ プレゼント,"花束",, という一行があれば、保存成功です。~ ちなみに数値型の変数の場合は~ プレゼント,1,, こんな風に変数の中身の数字が" "で囲まれてません。 **R0とかS0とかA0のYAYAでの書き方 [#rd2a3a4b] 全て半角です。里々と違い、全角では書けません。~ -里々 R0 R1 R2 ... -YAYA reference[0] reference[1] reference[2] ... 古いテンプレートではreference0 reference1 reference2 ..~ 新しいテンプレートでも設定次第でこう書けます。 -里々 S0 S1 S2 ... -YAYA valueex0 valueex1 valueex2 ... SAORIの使い方はこのページの「SAORI」項目を参照。 -里々 A0 A1 A2 ... -YAYA _argv[0] _argv[1] _argv[2] ... 見ての通りローカル変数。~ **ssuみたいなこと [#fca00fd6] 「条件分岐」「比較」と「計算」はまた違った方法でやりますが、~ それ以外はほぼYAYAのシステム関数で同じ事ができます。~ ~ [[関数用途別一覧]]を覗いてみてください。~ 「これじゃ使いたいの見つけにくい!」って人には[[YAYAシステム関数リファレンス>http://navy.nm.land.to/post/y_sysfn.html]]なんかもあります。~ **SAORI [#vd442bfc] ***つかいかた [#maff9ab3] -里々 (mciaudio,load,鳥の詩.mp3)(mciaudio,play) -YAYA FUNCTIONEX( 'mciaudio.dll' , 'load' , '鳥の詩.mp3' ) FUNCTIONEX( 'mciaudio.dll' , 'play' ) 里々みたいに使うSAORIを事前に設定しておく必要はありません。~ 直接yaya.dllから見たSAORIの相対パスを指定します。~ ~ ちなみに「mciaudio.dll」と「鳥の詩.mp3」が「yaya.dll」と同じディレクトリにあるのではなく、そのひとつ下の「saori」ディレクトリにある場合 FUNCTIONEX( 'saori\mciaudio.dll' , 'load' , '鳥の詩.mp3' ) こう書きます。~ SAORI( 'mciaudio.dll' , 'load' , '鳥の詩.mp3' ) SAORI( 'mciaudio.dll' , 'play' ) 「FUNCTIONEX」ではなく「SAORI」でもOK。~ どっちで書いても構わないのなら「FUNCTIONEX」で書きましょう。~ ~ ***返り値 Result [#oab51c89] SAORI実行関数を使うとそのまま返ってきます。~ 返り値をバルーンにそのまま表示するのならこうやってトーク中に埋めこんで使ってもいいですし~ (ただしSAORI実行関数の引数を" "ではなく' 'で囲まなければいけないので注意。" "の中に" "は書けないからです) "\0\s[0]クリップボードにある文字を取り出します。\n「%(FUNCTIONEX( 'saori\textcopy.dll' , 'コピーする文字' ))」\e" 一旦変数に保存して使ってもよいです。~ 変数 = FUNCTIONEX( 'saori\textpaste.dll' ) Resultがそのままバルーンに表示されると困る時も適当なローカル変数に代入しておきます。 ***返り値 Value[n] [#h55dd7e3] 上でも書きましたが里々で「S0 S1 S2 ..」と書いていたものは「valueex0 valueex1 valueex2 ...」と書きます。 詳しくはこのページを見てください。 -[[Tips/音を鳴らす]] -[[Tips/SAORIの使い方]] **☆現在時刻を表示 [#k1ed6212] [[システム辞書/yaya_shiori3.dic - 時刻系関数>http://emily.shillest.net/ayaya/index.php?%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E8%BE%9E%E6%9B%B8%2Fyaya_shiori3.dic#ta7752a4]]を参照。~ メモリ量、センダーヘッダの変数もここで見れます。 時間をおしえる { "\0\s[0]ただいま%(hour)時%(minute)分%(second)秒で~す。\e" } 「里々みたいに日本語で書けないとやだー」って人はテンプレートを参考にして自分で書いてしまうのもアリです。 年 { GETTIME[0] } 月 { GETTIME[1] } 日 { GETTIME[2] } 分 { GETTIME[5] } 秒 { GETTIME[6] } 時間をおしえる { "\0\s[0]ただいま%(時)時%(分)分%(秒)秒で~す。\e" } 曜日を漢字表記にする方法はこちら。(SimpleYAYAテンプレートには掲載済み) -[[Tips/曜日を判別]] **☆タイマー [#l9a16687] 「$○○タイマ【タブ】秒数」をYAYAで。 5秒待たせるイベント { "\0\s[0]それでは5秒お待ち下さい。\e" SHIORI3FW.SetDelayEvent( '5秒待った' , 5 ) } 5秒待った { "\0\s[0]お待たせしました。\e" } **replace.txt [#g29dd3e7] #defineで同じ事が出来ますが、失敗しないよう注意。~ -[[関数・変数・さくらスクリプトを短縮して書く]] **☆replace_after.txt [#s674ca8a] OnTranslateかOnTranslateInternalイベントでできます。~ 自動ウェイトなどに使うのならOnTranslateInternalの方をおすすめ。~ (OnTranslateだと例えばヘッドラインの中身まで変換されてしまいます) -トークに自動でウェイトをつける例 OnTranslateInternal { _text = _argv[0] _text = REPLACE(_text, "…", "…\w3") _text = REPLACE(_text, "、", "、\w5") _text = REPLACE(_text, "。", "。\w9") _text } **Φのように危険な記号を無効化する [#ta5d62ba] 里々と同様、YAYAでもそのままトークに書けない記号があります。~ 里々では記号の前に「Φ」を入れて無効化してました。~ YAYAではCHRという関数を使って書きます。 -[[[psl]ASCIIコード一覧表>http://www.psl.ne.jp/perl/pdojo00b.html]] -[[キャラクタコード表>http://winofsql.jp/VA003334/CprogBase040109013756.htm]] こういったサイトを参考にし、書きたい記号の上位3ビット(上のサイトでいうと横の軸にある記号)と上位4ビット(縦の軸)を調べ~ CHR(0x(上位3ビット)(上位4ビット)) と書きます。 例えば「1」でしたら CHR(0x31) です。~ 必ず半角で書きます。 -「" "」の中に「"」を書くサンプル 記号表示テスト { "\0\s[0]記号「%(CHR(0x22))」をバルーンに表示\e" } **コメントアウト [#ncce31d5] #を//にするだけです。 -里々 # 起動イベント *OnBoot :こんにちはー。 -YAYA // 起動イベント OnBoot { "\0\s[0]こんにちはー。\e" } こんな位置にも入れられます。~ つまり「//」がついた所から右の部分が全てコメントアウトになります。 OnBoot { "\0\s[0]こんにちはー。\e"// 起動トーク } 「/*」と「*/」でくくってもコメントアウトになります。~ 複数行ごとくくれるので行数が多いならこっちの方が楽。どこからどこまでコメントアウトかちょっとわかりづらいのが難点? /* 起動イベント 一番最初に起動した時呼ばれる */ OnBoot { "\0\s[0]こんにちはー。\e" } YAYAは里々より注釈が入れやすく、気軽に使いやすいです。~ 後で見返した時どこが何なのかすぐ思い返せるようばんばん入れておきましょう。