Top(FrontPage)
トップページへ
[
一覧
|
検索
|
最終更新
] [
差分
|
履歴
]
ツール
ヘルプ
新規
開始行:
*チュートリアル2.トークを書いてみる [#t21435ae]
#contents
**辞書ファイルが入ってるフォルダを開く [#i79d6b47]
テンプレートゴーストを立たせてる状態で、開発パレットの一...
そこから「GHOST」を選ぶとyaya.dllやら何やら色々入ったフォ...
そこにある拡張子が「.dic」のファイルがYAYAの辞書ファイル...
~
この辞書ファイルの中に「ゴーストがどうしゃべってどう動く...
これからそれをちょっとづつ編集してゴーストを作ってみます。~
~
**辞書を覗いてみる [#b98a7f96]
まずはメイン辞書である「dic_main.dic」をテキストエディタ...
~
その150行目ぐらいに~
#code(aya,nonumber,nooutline,nolink){{
//起動
OnBoot
{
"\1\s[10]\0\s[0]こんにちは。\e"
}
}}
と、いう記述があると思います。~
ここが「ゴーストが起動したときしゃべるセリフ」です。~
~
まぁ初めて見たら「こんにちは。」の文字以外なんじゃこりゃ...
以下、一個づつ謎記号を解明してみます。~
~
:OnBoot|関数名というもの。~
この例では「ゴーストが起動したときに呼ばれる」SHIORI Even...
つまり「この後にある{ }に入ってるものはゴースト起動した...
これを「OnClose」にすると「ゴースト終了する時のイベントだ...
~
詳しくは[[CROW・SSPリファレンス>http://crow.aqrs.jp/refer...
基本的にこのリファレンスに書かれてるSHIORI Eventはみんな...
~
:{ }|関数の中身です。関数名を書いたのあと、この二つの記号...
~
:" "|トークやさくらスクリプトは必ずこの記号でくくります。~
これや「' '」でくくってない文字列はトークじゃなく変数名...
~
:\0|「これから0番のメインキャラ(さくら側とも呼ぶ)がしゃ...
この後に書いたテキストは0番のキャラのバルーンに表示されま...
\1の後に書いたテキストは1番の相方キャラ(うにゅう側とも呼...
~
:\s[0]|0番サーフェスを表示するさくらスクリプト。~
サーフェスとは立ち絵の種類のことです。~
\s[1]や\[2]のように番号を変えて書いてみると悲しい顔になっ...
(でもこのテンプレートのデフォルトシェルは残念ながら絵が0...
~
:\e|トークの終了を表すさくらスクリプト。~
入れなくても特に問題はないようですが一応念のためトークの...
~
***さくらスクリプトについて [#z2288282]
YAYA以外のSHIORIでも共通して使うものなので、このWikiでは...
これ以外も色んなものがあるので、リファレンスサイトで「実...
(いきなり全部覚えようとすると頭がパンクします…)~
-[[CROWリファレンス - SakuraScript>http://crow.aqrs.jp/re...
-[[UKADOC Project さくらスクリプトリスト>http://ukadoc.go...
-[[Disc-2 SakuraScriptリスト>http://disc2.s56.xrea.com/ma...
~
開発パレットの「スクリプト入力」からトークを書いて送信す...
#ref(img_tutorial_02_001.png)
送信して何も問題なさそうだったら実際に辞書に書いて、ちゃ...
(OnBootイベントにあるトークは一度ゴーストを終了し、また...
**色んなトークの書き方をしてみる [#w0bd73ff]
***トークをランダムで選ばれるようにする [#o0366c49]
起動するたび毎回同じ挨拶ばかりじゃつまらないので、3種類に...
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]こんにちはー。\e"
"\0\s[0]おっすー。\e"
"\0\s[0]やっほー。\e"
}
}}
''YAYAは{ }の中に" "や' 'でくくった文字列が複数あると...
~
~
一行にまとめたくなったら、改行の代わりに「;」で区切ります...
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]こんにちはー。\e" ; "\0\s[0]おっすー。\e" ; "\...
}
}}
~
~
「\0\s[0]」や「\e」を何度も書くのが面倒?~
それなら…~
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]"
--
"こんにちはー。"
"おっすー。"
"やっほー。"
--
"\e"
}
}}
こう書いてしまう事もできます。~
''「--」で区切ると、その区切った中からそれぞれ" "や' '...
~
これもこうすると一行で書けます(みづらいけど)~
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]" ; -- ; "こんにちはー。" ; "おっすー。" ; "や...
}
}}
~
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"きょうは"//←<1>この2つのどっちかが選ばれる
"明日は"//←<2>
--
"晴れ"//←(1)この4つの中のどれかが選ばれる
"雨"//←(2)
"曇り"//←(3)
"雷"//←(4)
--
"です。"//←1コしかないので必ずコレが選ばれる
}
}}
こう書くと~
「きょうは雨です。」~
「明日は曇りです。」~
「きょうは晴れです。」~
「明日は雷です。」~
「明日は晴れです。」~
…といったトークが毎回ランダムで作られるわけです。~
トークのバリエーションが広がりますね。~
~
でも、これだと本当にランダムなので同じ単語が連続して選ば...
それを回避したい時は…~
#code(aya,nonumber,nooutline,nolink){{
OnBoot : nonoverlap
{
"\0\s[0]"
--
"こんにちはー。"
"おっすー。"
"やっほー。"
--
\e
}
}}
関数名の後ろに「 : nonoverlap」をつけましょう。同じ文が連...
上から順番に選ばせたい時は「 : sequential」です。~
***オリジナル関数を作ってみる [#m355f624]
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]きょうは"
"\0\s[0]明日は"
--
"晴れ"
"雨"
"曇り"
"雷"
--
"です。\e"
}
}}
上でも書いたコレを
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]きょうは"
"\0\s[0]明日は"
--
天気一覧
--
"です。\e"
}
天気一覧
{
"晴れ"
"雨"
"曇り"
"雷"
}
}}
こんな風に、独立したオリジナル関数を作ってそれを呼び出し...
こう書くとどんなイイ事があるかっていうと…~
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]きょうは"
"\0\s[0]明日は"
--
天気一覧
--
"です。\e"
}
OnGhostChanged
{
"\0\s[0]昨日は"
--
天気一覧
--
"だったよ。\e"
}
天気一覧
{
"晴れ"
"雨"
"曇り"
"雷"
}
}}
こんな風に複数の関数から呼び出せるので使いまわしできるっ...
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]きょうは%(天気一覧)です。\e"
}
天気一覧
{
"晴れ"
"雨"
"曇り"
"雷"
}
}}
「" "」の中身から関数を呼び出したいときは、こうやって「%...
***オリジナル関数を作る時の注意 [#x94ac81c]
関数名(上の例でいうと「天気一覧」の文字)は英語でも日本...
-半角数字から始まる関数名はダメ (「5test」はNG、「test5...
-頭に「_」を付けちゃダメ (ローカル変数と間違われます)
-「空白 ! " # $ % & ( ) * + , - / : ; < ...
-など
詳しくは[[マニュアル/文法/2.関数>マニュアル/文法/2.関数#f...
**辞書を見やすくする [#y556722b]
***空白や改行を入れてみる [#k8fbc64c]
最初に関数名を書く、中身を「{}」でくくる、という書き方の...
こんな風に書いても~
#code(aya,nonumber,nooutline,nolink){{
OnBoot {
"\1\s[10]\0\s[0]こんにちは。\e"
}
}}
こんな風に書いちゃっても構いません。
#code(aya,nonumber,nooutline,nolink){{
OnBoot { "\1\s[10]\0\s[0]こんにちは。\e" }
}}
OnBootと{の間などにある空白・改行は、入れても入れなくても...
自分の見やすい、書きやすい書き方に整えてみてください。~
#code(aya,nonumber,nooutline,nolink){{
OnBoot{"\1\s[10]\0\s[0]こんにちは。\e"}
}}
基本的に""の外にある空白やタブ、改行は無視されるので、
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\1\s[10]\0\s[0]こんにちは。\e"
}
}}
こんなんでもよし。~
要するに
#code(aya,nonumber,nooutline,nolink){{
【ここ】OnBoot【ここ】{【ここ】"\0\s[0]いっちばーん。\e"...
}}
上の【ここ】の所に空白(半角空白、全角空白、タブ)や改行を...
~
YAYAの辞書はこの仕組みを使って綺麗に見易く整える事ができ...
***コメントアウト [#lba37c15]
コメントアウトを使うと、その部分だけ辞書として読み込まれ...
「メモや注釈入れたい」「書いた辞書の一部を一時的に隔離し...
~
やり方はコメントアウトしたい行の一番左端に「//」を入れる...
#code(aya,nonumber,nooutline,nolink){{
// 起動イベント
OnBoot
{
"\0\s[0]こんにちはー。\e"
}
}}
↓こんな位置にも入れられます。~
つまり「//」がついた所から一番右端の部分までが全てコメン...
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]こんにちはー。\e"// 起動トーク
}
}}
「/*」と「*/」でくくってもコメントアウトになります。~
複数行一気にコメントアウトできるので、行数が多いならこっ...
どこからどこまでコメントアウト部分かわかりづらいのが難点?~
#code(aya,nonumber,nooutline,nolink){{
/*
起動イベント
一番最初に起動した時呼ばれる
*/
OnBoot
{
"\0\s[0]こんにちはー。\e"
}
}}
後で辞書を見返した時どこが何なのかすぐ思い返せるよう、注...
***やっちゃいけないこと [#f04bac17]
こんなことやるとエラーが出てゴーストがピクリとも動かなく...
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]改行\n
します。\e"
}
}}
" "や' 'でくくってる文字列の途中を改行してしまうとエラ...
そんなときは~
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]改行\n/
します。\e"
}
}}
こうやって行末に「/」を入れれば改行できます。~
それと、YAYA Tc535-1から[[ヒアドキュメント>マニュアル/文...
#code(aya,nonumber,nooutline,nolink){{
//起動
OnBoot
{
"\1\s[10]\0\s[0]こんにちは。\e"
}
OnBoot
{
"\1\s[10]\0\s[0]やっほー!\e"
}
}}
同じ名前の関数を2つ以上書いちゃだめです。必ず1個だけ!~
~
こういったルールをちゃんと守れば、どの辞書ファイルのどこ...
(でもシステム辞書のyaya_shiori3.dicに書くのはなるべくや...
**ゴーストが全然動かない!これってエラー?どうしよう! [#...
落ち着いてエラーの原因を調べてみましょう。~
***自力で調べる [#o287ea49]
以前まではきちんとゴーストが動いてた訳で、当然エラーの原...
辞書の中の自分でいじった所を良く見てみる。~
カッコの閉じ忘れなんかが多いです。~
~
それでもわからない場合はあやしげな部分を一時的にコメント...
***YAYA用デバッグツールを使う [#xb070ee5]
前回用意したアレ。~
詳しくは[[Tips/玉を使った辞書エラーチェック]]ページを。~
***実行ログを見る [#nc77f863]
yaya.dllと同じ階層にあるyaya.txtを開いてみてください。~
//log, ayame.log // ログを指定されたファイルに記録
という項目があるので~
log, ayame.log // ログを指定されたファイルに記録
一番左の「//」を削って上書き保存。~
もう一度ゴーストを起動すると「ayame.log」が出力されるので...
***スクリプトログを見る [#of43a515]
ゴーストに一体どんなさくらスクリプトが送られてるのか知り...
使い方は「SSPでゴーストを右クリック→機能→スクリプトログ」
~
~
-→ [[チュートリアル/3.変数を使ってみよう]]へ進む
-← [[チュートリアル/1.準備]]へ戻る
終了行:
*チュートリアル2.トークを書いてみる [#t21435ae]
#contents
**辞書ファイルが入ってるフォルダを開く [#i79d6b47]
テンプレートゴーストを立たせてる状態で、開発パレットの一...
そこから「GHOST」を選ぶとyaya.dllやら何やら色々入ったフォ...
そこにある拡張子が「.dic」のファイルがYAYAの辞書ファイル...
~
この辞書ファイルの中に「ゴーストがどうしゃべってどう動く...
これからそれをちょっとづつ編集してゴーストを作ってみます。~
~
**辞書を覗いてみる [#b98a7f96]
まずはメイン辞書である「dic_main.dic」をテキストエディタ...
~
その150行目ぐらいに~
#code(aya,nonumber,nooutline,nolink){{
//起動
OnBoot
{
"\1\s[10]\0\s[0]こんにちは。\e"
}
}}
と、いう記述があると思います。~
ここが「ゴーストが起動したときしゃべるセリフ」です。~
~
まぁ初めて見たら「こんにちは。」の文字以外なんじゃこりゃ...
以下、一個づつ謎記号を解明してみます。~
~
:OnBoot|関数名というもの。~
この例では「ゴーストが起動したときに呼ばれる」SHIORI Even...
つまり「この後にある{ }に入ってるものはゴースト起動した...
これを「OnClose」にすると「ゴースト終了する時のイベントだ...
~
詳しくは[[CROW・SSPリファレンス>http://crow.aqrs.jp/refer...
基本的にこのリファレンスに書かれてるSHIORI Eventはみんな...
~
:{ }|関数の中身です。関数名を書いたのあと、この二つの記号...
~
:" "|トークやさくらスクリプトは必ずこの記号でくくります。~
これや「' '」でくくってない文字列はトークじゃなく変数名...
~
:\0|「これから0番のメインキャラ(さくら側とも呼ぶ)がしゃ...
この後に書いたテキストは0番のキャラのバルーンに表示されま...
\1の後に書いたテキストは1番の相方キャラ(うにゅう側とも呼...
~
:\s[0]|0番サーフェスを表示するさくらスクリプト。~
サーフェスとは立ち絵の種類のことです。~
\s[1]や\[2]のように番号を変えて書いてみると悲しい顔になっ...
(でもこのテンプレートのデフォルトシェルは残念ながら絵が0...
~
:\e|トークの終了を表すさくらスクリプト。~
入れなくても特に問題はないようですが一応念のためトークの...
~
***さくらスクリプトについて [#z2288282]
YAYA以外のSHIORIでも共通して使うものなので、このWikiでは...
これ以外も色んなものがあるので、リファレンスサイトで「実...
(いきなり全部覚えようとすると頭がパンクします…)~
-[[CROWリファレンス - SakuraScript>http://crow.aqrs.jp/re...
-[[UKADOC Project さくらスクリプトリスト>http://ukadoc.go...
-[[Disc-2 SakuraScriptリスト>http://disc2.s56.xrea.com/ma...
~
開発パレットの「スクリプト入力」からトークを書いて送信す...
#ref(img_tutorial_02_001.png)
送信して何も問題なさそうだったら実際に辞書に書いて、ちゃ...
(OnBootイベントにあるトークは一度ゴーストを終了し、また...
**色んなトークの書き方をしてみる [#w0bd73ff]
***トークをランダムで選ばれるようにする [#o0366c49]
起動するたび毎回同じ挨拶ばかりじゃつまらないので、3種類に...
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]こんにちはー。\e"
"\0\s[0]おっすー。\e"
"\0\s[0]やっほー。\e"
}
}}
''YAYAは{ }の中に" "や' 'でくくった文字列が複数あると...
~
~
一行にまとめたくなったら、改行の代わりに「;」で区切ります...
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]こんにちはー。\e" ; "\0\s[0]おっすー。\e" ; "\...
}
}}
~
~
「\0\s[0]」や「\e」を何度も書くのが面倒?~
それなら…~
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]"
--
"こんにちはー。"
"おっすー。"
"やっほー。"
--
"\e"
}
}}
こう書いてしまう事もできます。~
''「--」で区切ると、その区切った中からそれぞれ" "や' '...
~
これもこうすると一行で書けます(みづらいけど)~
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]" ; -- ; "こんにちはー。" ; "おっすー。" ; "や...
}
}}
~
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"きょうは"//←<1>この2つのどっちかが選ばれる
"明日は"//←<2>
--
"晴れ"//←(1)この4つの中のどれかが選ばれる
"雨"//←(2)
"曇り"//←(3)
"雷"//←(4)
--
"です。"//←1コしかないので必ずコレが選ばれる
}
}}
こう書くと~
「きょうは雨です。」~
「明日は曇りです。」~
「きょうは晴れです。」~
「明日は雷です。」~
「明日は晴れです。」~
…といったトークが毎回ランダムで作られるわけです。~
トークのバリエーションが広がりますね。~
~
でも、これだと本当にランダムなので同じ単語が連続して選ば...
それを回避したい時は…~
#code(aya,nonumber,nooutline,nolink){{
OnBoot : nonoverlap
{
"\0\s[0]"
--
"こんにちはー。"
"おっすー。"
"やっほー。"
--
\e
}
}}
関数名の後ろに「 : nonoverlap」をつけましょう。同じ文が連...
上から順番に選ばせたい時は「 : sequential」です。~
***オリジナル関数を作ってみる [#m355f624]
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]きょうは"
"\0\s[0]明日は"
--
"晴れ"
"雨"
"曇り"
"雷"
--
"です。\e"
}
}}
上でも書いたコレを
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]きょうは"
"\0\s[0]明日は"
--
天気一覧
--
"です。\e"
}
天気一覧
{
"晴れ"
"雨"
"曇り"
"雷"
}
}}
こんな風に、独立したオリジナル関数を作ってそれを呼び出し...
こう書くとどんなイイ事があるかっていうと…~
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]きょうは"
"\0\s[0]明日は"
--
天気一覧
--
"です。\e"
}
OnGhostChanged
{
"\0\s[0]昨日は"
--
天気一覧
--
"だったよ。\e"
}
天気一覧
{
"晴れ"
"雨"
"曇り"
"雷"
}
}}
こんな風に複数の関数から呼び出せるので使いまわしできるっ...
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]きょうは%(天気一覧)です。\e"
}
天気一覧
{
"晴れ"
"雨"
"曇り"
"雷"
}
}}
「" "」の中身から関数を呼び出したいときは、こうやって「%...
***オリジナル関数を作る時の注意 [#x94ac81c]
関数名(上の例でいうと「天気一覧」の文字)は英語でも日本...
-半角数字から始まる関数名はダメ (「5test」はNG、「test5...
-頭に「_」を付けちゃダメ (ローカル変数と間違われます)
-「空白 ! " # $ % & ( ) * + , - / : ; < ...
-など
詳しくは[[マニュアル/文法/2.関数>マニュアル/文法/2.関数#f...
**辞書を見やすくする [#y556722b]
***空白や改行を入れてみる [#k8fbc64c]
最初に関数名を書く、中身を「{}」でくくる、という書き方の...
こんな風に書いても~
#code(aya,nonumber,nooutline,nolink){{
OnBoot {
"\1\s[10]\0\s[0]こんにちは。\e"
}
}}
こんな風に書いちゃっても構いません。
#code(aya,nonumber,nooutline,nolink){{
OnBoot { "\1\s[10]\0\s[0]こんにちは。\e" }
}}
OnBootと{の間などにある空白・改行は、入れても入れなくても...
自分の見やすい、書きやすい書き方に整えてみてください。~
#code(aya,nonumber,nooutline,nolink){{
OnBoot{"\1\s[10]\0\s[0]こんにちは。\e"}
}}
基本的に""の外にある空白やタブ、改行は無視されるので、
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\1\s[10]\0\s[0]こんにちは。\e"
}
}}
こんなんでもよし。~
要するに
#code(aya,nonumber,nooutline,nolink){{
【ここ】OnBoot【ここ】{【ここ】"\0\s[0]いっちばーん。\e"...
}}
上の【ここ】の所に空白(半角空白、全角空白、タブ)や改行を...
~
YAYAの辞書はこの仕組みを使って綺麗に見易く整える事ができ...
***コメントアウト [#lba37c15]
コメントアウトを使うと、その部分だけ辞書として読み込まれ...
「メモや注釈入れたい」「書いた辞書の一部を一時的に隔離し...
~
やり方はコメントアウトしたい行の一番左端に「//」を入れる...
#code(aya,nonumber,nooutline,nolink){{
// 起動イベント
OnBoot
{
"\0\s[0]こんにちはー。\e"
}
}}
↓こんな位置にも入れられます。~
つまり「//」がついた所から一番右端の部分までが全てコメン...
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]こんにちはー。\e"// 起動トーク
}
}}
「/*」と「*/」でくくってもコメントアウトになります。~
複数行一気にコメントアウトできるので、行数が多いならこっ...
どこからどこまでコメントアウト部分かわかりづらいのが難点?~
#code(aya,nonumber,nooutline,nolink){{
/*
起動イベント
一番最初に起動した時呼ばれる
*/
OnBoot
{
"\0\s[0]こんにちはー。\e"
}
}}
後で辞書を見返した時どこが何なのかすぐ思い返せるよう、注...
***やっちゃいけないこと [#f04bac17]
こんなことやるとエラーが出てゴーストがピクリとも動かなく...
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]改行\n
します。\e"
}
}}
" "や' 'でくくってる文字列の途中を改行してしまうとエラ...
そんなときは~
#code(aya,nonumber,nooutline,nolink){{
OnBoot
{
"\0\s[0]改行\n/
します。\e"
}
}}
こうやって行末に「/」を入れれば改行できます。~
それと、YAYA Tc535-1から[[ヒアドキュメント>マニュアル/文...
#code(aya,nonumber,nooutline,nolink){{
//起動
OnBoot
{
"\1\s[10]\0\s[0]こんにちは。\e"
}
OnBoot
{
"\1\s[10]\0\s[0]やっほー!\e"
}
}}
同じ名前の関数を2つ以上書いちゃだめです。必ず1個だけ!~
~
こういったルールをちゃんと守れば、どの辞書ファイルのどこ...
(でもシステム辞書のyaya_shiori3.dicに書くのはなるべくや...
**ゴーストが全然動かない!これってエラー?どうしよう! [#...
落ち着いてエラーの原因を調べてみましょう。~
***自力で調べる [#o287ea49]
以前まではきちんとゴーストが動いてた訳で、当然エラーの原...
辞書の中の自分でいじった所を良く見てみる。~
カッコの閉じ忘れなんかが多いです。~
~
それでもわからない場合はあやしげな部分を一時的にコメント...
***YAYA用デバッグツールを使う [#xb070ee5]
前回用意したアレ。~
詳しくは[[Tips/玉を使った辞書エラーチェック]]ページを。~
***実行ログを見る [#nc77f863]
yaya.dllと同じ階層にあるyaya.txtを開いてみてください。~
//log, ayame.log // ログを指定されたファイルに記録
という項目があるので~
log, ayame.log // ログを指定されたファイルに記録
一番左の「//」を削って上書き保存。~
もう一度ゴーストを起動すると「ayame.log」が出力されるので...
***スクリプトログを見る [#of43a515]
ゴーストに一体どんなさくらスクリプトが送られてるのか知り...
使い方は「SSPでゴーストを右クリック→機能→スクリプトログ」
~
~
-→ [[チュートリアル/3.変数を使ってみよう]]へ進む
-← [[チュートリアル/1.準備]]へ戻る
ページ名: