忍者ブログ
はじかきれんしゅうちょう いろいろ
Admin  +   Write
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

割りと実践的な(?)話。
変数について&選択肢ジャンプです。

■変数

変数は
数字を入れるやつと文字列を入れるやつがあり、
さらに中身をどこまで保つかという性質の差があります
(ざっくり)
性質って日本語がどーもうまくないけどゆるせ……

<中身>
・数値 →数を入れる。0か1でフラグにしたり、数値を保存 //@
・文字列  →言葉を入れる。名前変換とかに使うであろー //$

<性質>
・「ローカル変数」   → セーブデータ毎に(数値/文字列)を保持 //L
・「グローバル変数」 → ゲーム共通の(数値/文字列)を保持 //G
性質:L……普通の。G……LMでいうステータス変数。
中身:@が数字、$が文字列

↓性質 / 中身→ 数字 文字列
ローカル @L $L
グローバル @G $G

こんなかんじ?
『あっと(@)驚く売上げ(数字)にアイドル($)もじもじ(文字)』と覚えよう。
ローカルグローカルは……スケールが広いほうが持続性もあるって雰囲気で。
(今更だけどこんなこと言ってて怒られないだろうか)

例を見てみる。
@G(1)=1         //←1番目のグローバル数値変数を1にする
$G(1)="ABC"     //←1番目のグローバル文字列変数を「ABC」にする
@L(5)=100       //←5番目のローカル数値変数を100にする
$L(6)="小夜子"  //←6番目のローカル文字列変数を「小夜子」にする

一番目のってなんやねん。思わず一部改変
「ここに変数を設定する――」っていう宣言はいらないのかなもしかして。

で、よくよく見たらマニュアルにこんな文章が。
この LET 命令が代入の正式な命令になります。
できればこの命令を使用して変数に代入してください。
「このLET命令」とはこれ。
\LET(@L(1)=5)   //変数 @L(1) に 5 を代入(格納)します。
\LET($L(1)="ABC")  //変数 $L(1) に ABC という文字列を代入(格納)します。

以下のようにすればランダムにもなるそう。
\RND(@L(1),100,150) //100~150の中からランダムな値を、変数 @L(1) に格納します。



で、お次はLET IFなるものについて。
条件付きを満たすとまたは満たさないと?あれやそれやが起こるやつです。

さっそく文字解説にムリを感じたので画像にまとめてみました。




例題はマニュアルより引用してお借りしました。
カッコがダブってついてきました。かっこつけやがってー……ってことで
見やすくするために色つけてみました。
色分けしたらちっとは何が起きているのかわかりやすくなった気がします。
内容はご覧のとおりで……へえ。


■選択肢と進行について。

\GO(ラベル名) // #ラベル名 にジャンプ

GOという命令でラベル間をじゃんぷっぷできます。ラベルについては第一回参照。
そいつに選択肢を組み合わてみます。
仮に、選択肢を「みそ」or「しょうゆ」or「しお」として作ってみましょう。
選択肢の命令はこんな↓。

\SEL.GO(LABEL1,LABEL2,LABEL3)//これと
\SEL(みそ,しょうゆ,しお)//これ をセットで使いますとのこと。





ひとまずシンプルに。
これをいじって、選択肢によって変数を操作してその結果でジャンプ!とか
複合技ができるようになると……いいですね……躓きそう……
PR


追記……ココ(ライン以下)に書いてあることはだいたいあきらめました。

普通に書けばいいんです。↓シナリオ抜粋

\FACE(n015)//顔
ニバ「ところで、ここは」
\FACE(n017)//顔
ニバ「悩みながら歩いているうちに、特に意味もなくなんとなく来てしまった馴染みの場所です」
//aにこっ
ニバ「一見ゴミ捨て場みたいだけど……そうでなく。奥に小さな社があるんです。あるんですよ。あるんで、よろしくね」
\FACE(n015)//顔
ニバ「社というと、なんだか何かお供えをしないといけないような気持ちになってきてしまうもの」


なんか勝手に改行した部分までダーーーっと出てくれます。
長過ぎるようなら分割しましょう。
文中でクリックさせたいときだけコマンドを置けばいいと思いま~~す。
私はあんまクリック回数多くないほうが好みなので句点「。」ごとに改行はせずボックスに収まりきる範囲でやってます。ひとりで何回も喋るとなんかテンポ感が妙ですな。

二行目の頭に空白入れたい思いやフキダシ方式に区切りのいいところで改行をしたい思いはあったのですが、それやると名前変換でズレが生じる場合があるし、メッセージボックスの文字表示は列×行数指定とかじゃなくて文字の大きさとメッセージボックスの大きさで判断されるっぽいし、なんか向いてないのかなあと。

ボク、コダワラナイ。ムズカシイ、ならツールにアワセル……ジガ、ナイ。
みたいな。





#SCENARIO_START
おっぽれ
おっぽれ
おっぽれ


にしたら、おっぽれ一回に付きいちいちページが変わる。
三行くらいいっぺんに出したい。というわけで


テストプレー時の再起動はF5ボタンです。
シナリオテキスト書き換え→上書き保存→ゆーりすのういんどーでF5
開きっぱでリビルドできます。

【#SCENARIO_START
おっぽれ\Cおっぽれ\Cおっぽれ


こうすると、改ページされず横につなげることができました。
でもLMと違って、クリック待ち中にアイコンらしきものが出ない。(あのちいさい白い矢印みたいのね)
そこで……

【#SCENARIO_START
\TX.ICON.XYAUTO(1)
おっぽれ\Cおっぽれ\Cおっぽれ


こんなのを足してみます。そうするとクルっとした矢印アイコンが文字のうしろにくっついて出るようになります。
クリック待ちアイコンは初期設定だと非表示なんだそうで。


で、デフォのメッセージボックスでは
よこ27文字×たて3行 入るのですが、

改行は?って話。
たとえばこれ↓を見た目通りに表示するのに
[こんにちは
いい
おてんきね]

シナリオテキストでこのまま
【#SCENARIO_START
\TX.ICON.XYAUTO(1)
こんにちは
いい
おてんきね
と書いてしまうと、ゲームを動かした時
「こんにちは」(クリック)「いい」(クリック)「おてんきね」
みたく、いちいち別のページになって出てきちゃう。
【】の中でエンターキーを押すと改ページになっちゃってだめなんですね。

こういうふうに

「【名前】
『眠い!!!』

って表示させたいときは

【#SCENARIO_START
\TX.ICON.XYAUTO(1)
【名前】\R『眠い!!!』

というふうにしないといかんのじゃ。
これだと文字が続いた時、どこまで収まってくれるかわからなくないですか?
なんとかtxt上で見たままゲームに出力されないかな。そんなときどうしたら……


\AC(0)//自動クリック待ち無効・有効@デフォ1
\AR(0)//自動改行無効・有効@デフォ1
\AP(0)//自動改ページ待ち無効・有効@デフォ1

このあたりをいじってみたものの、ムリでした!!
なにか何をいじって何が起きるのかわからない!あたまわるい!
とりあえずいまんとこはムリ。
ということはシナリオを書くときにいっぺんにどのくらい文字を出せるかというのはどうやってアバウトに考えてたらいいのか……?
シナリオ→スクリプトにするときに改行してる部分に\Rを代入すればいいのかな?

ここでテキストエディタのMeryを登場させました。

【レオナ】
「ドロシーが
 そう言うなら……」

↓文中で使わない記号を改行前につけといて、

【レオナ】$
「ドロシーが$
 そう言うなら……」$

↓ この三行を選択した上で、
    編集>選択範囲の変換>行の結合
【レオナ】$ 「ドロシーが$  そう言うなら……」$ 



検索>置換>
検索する文字列に $
置換後の文字列に \R
>すべて置換、すると

【レオナ】\R 「ドロシーが\R  そう言うなら……」\R

これをyu-risのシナリオtxtにはっつければ、見たまんま改行でゲームが作れる?
フツーにテキストボックスにおさまりそうな分量のテキストぶちこんで改行は自動改行でやってもらうスタイルに慣れたほうがいいのかもだけど、漫画のセリフみたくキリのいいところで改行しちゃいたい場合なんかは見たまんま改行のほうが便利なので……
とはいえ作る方はそれでいいけど、読むほうが文字の大きさ変更した時に改行がおかしなことになるよね。どうしたらいいんだ。カギカッコの二行目頭にスペースを入れたいんだよわたしゃ(会話例参照)

※追記
のちのち「$」って記号はスクリプト書くときにどう考えても必要な文字だったことがわかりました。置換したら偉いことになってしまう。もー。今回は一例として。使うなら全角の記号とかがいいんですかね。
yu-ris4.5(yu-ris_0466_019)

とりあえずこれだけ解凍してくる。
ERISなる雛形?補助ツール?は同梱?

yu-ris_0466_019>システム
目立つアイコンのyu-risでテストゲームが始まる。
この時、dataフォルダの中身を読み込んでいる。
data=プロジェクトフォルダで
ここに各プロジェクトのフォルダを作っていくことになるっぽい。

■どのプロジェクトフォルダを読み込ませるかということ
yu-ris_0466_019>システム>system>ysconfig-メモ帳を開き、

PROJECTFOLDER[PROJECTFOLDER="./data"]


PROJECTFOLDER[PROJECTFOLDER="./●●●"]

に変えて保存(●●●に新規プロジェクトフォルダ名を代入)


■中身の編集は
yu-ris_0466_019>システム>●●●(プロジェクトフォルダ名)>script
>UserScript>SCENARIO_START(メモ帳)

遠い……ショートカット作っとくとかなんかするか?
シナリオスタートのコピーというかもどきというかちょっと弄くったverをこのフォルダ内に置いといて平気なもんなのかなあ。ビビる


@「#SCENARIO_START」これがシナリオやねん!って表明であって、
重要な部分なので消すの厳禁みたいです。

@「#SCENARIO_MAIN」が<body></body>みたいないわゆる中身にあたる記述を始めるよ~ってサインらしい
って解説を読んだけどverが違うのかサンプルデフォルトに見当たらないぞ。

↑「いわゆる中身」は
#SCENARIO_STARTでいいみたいでした。_STARTの下に「おっぽれ」って書いてビルド(う~んこういった用語はどのくらいまで用いるべきか?)したらちゃんと出ました「おっぽれ」。
_MAINは_STARTに名前が変わったってことかしら?

バージョンが違うと仕様が違うのね。今後もこういうことがあるかもなので、webで使い方解説を見る場合そこのところを心構えておいたほうがいいのかもと思いました。(初歩的感)

で、STARTの下になんかいっぱいあるんだけど……OPムービーとか
さくっと消していいの?コワイ! コピーとっとけば安心だ


#がなんかリストマークというかなんか大事っぽいやつで(日本語不自由)
ラベルというらしい。


#シナリオ1(見出し=ラベル)
起きた~身支度(内容)
#シナリオ2
通学~学校到着

みたいなのをSCENARIO_START(メモ帳)に書くとき


#◯
(内容、まだ表記方法は知らない……)
#◯△
(内容、スクリプトというやつを書くのかな……)


※◯△記号に任意な半角英数を代入


こうなって、GO命令というやつでジャンプ
#GO(◯)

で#◯のところに飛んでくれるんですって。
()の中に#はいらないそうです。
まだ怖くていじってないから伝聞口調。


で、この「命令」というのでまあつまり命令するんだよ!動かすということですが
なんかいっぱいあってさっぱりなのであった!
必要そうなものだけ抽出してくるというか、
自分用に命令辞典をつくってちょいちょい理解しながら足してこうと思った。

#GO(◯)
//#◯のとこにジャンプする。

が一個目ですかね。

あとサンプルにあったウェイトらしきもの。
\WA(500,,,1)//0.5秒待ち。クリックスキップ、CTRLスキップ禁止
\WA(1200,,1,1)//1.2秒待ち。クリックスキップ、CTRLスキップ禁止

とあります。頭は「お金マーク」、何円……ってやつなんだけどコピペっても機種依存文字デースていわれてブログ上に出ない。どうしよう。今すぐ依存をやめましょうよ。というかこのマークどこ押せば出せるんだ?(PC何年目だよ)→バックスペースのとなりだよ

マークはさておき、WAの命令
この数字はフレーム数とか秒数とかそんなんだと思われました。計算出来ないやつだ!と思ったので詳しいことは調べません(雑)
感覚で覚えて使ってく感じ??じゃない???(雑)
500で0.5秒ということは
1000で1秒?でいいのでしょうか?
1200で1.2秒だから多分あってるよね?
ぼくは算数ができない(マジで)

で、このカンマはなんなんだろう!
時間の数字含めて4つ文字が入るところがあるぞ!
(ひとつめ , ふたつめ ,  みっつめ ,  よっつめ) ←見やすくしてみた
ひとつめ=時間の数字。
ふたつめ=???
みっつめ=わかんないけどサンプルには1って書いてある。
ここに1が入っている=既読スキップ禁 って感じなのか?
クリックスキップとは??
サンプル、日本語解説は同じなのに記述の方は微妙に違うのなんでなんだ??
WAって書かれるとなんとかアームズかよ!って思うッ!(まとめ)

答え合わせ。正解を見てきました。

\WA( 時間, ウィンドウ消しフラグ, クリックスキップフラグ, CTRLスキップフラグ )
ですって。
ふたつめ=ウインドウ消しフラグ=ウインドウを消すかどうか(ウインドウって何?)
みっつめ=クリックスキップフラグ=クリックスキップを許可するかどうか
よっつめ=CTRLスキップフラグ=未読スキップ(便宜上こう呼ぶ)をオンにするか否か

それぞれ0か1でオフ/オン判定。あーゲームっぽい。
変数については別のゲーム制作ツールさわっといてよかったなって感じ。

\WA(200) みたく、各要素を書かないで省略することができるもよう。
で、こう書くと200待って(もう200が何秒くらいに当たるか考えるのはやめている)、
ウインドウは消えるしクリックスキップは禁止。CTRLボタンでのスキップは可能」
になるんだって。(初期設定だと)
省略せず書くと
\WA(時間の数字,0,1,0)
って状態。
ウインドウってメッセージボックスのことか?だったらそんなに頻繁に消すか?まあこのへんは作ってみるまで分からないや。
クリックスキップってつまり何? 後日テストプロジェクトで適当に探ってきます。
CTRLスキップはまあ、ノータッチでいいかな……別に禁止しなくてもいいか。


初期設定から変えるには→マニュアルには「\WA.SKDEF で設定」とあります。
これなんのコマンドでしょう。CSSみたいな感じかな。

以上第一回内容

・さっくり導入(どこをいじればいいのか話)
・\wa
自分にわかる用語だけでyu-ris進めてくメモまとめ

1(導入その他) // 2(シナリオテキスト未解決事件) // 3(変数と選択肢)
4(なにがどこ?) // 5(名前変換実装) // 6(example~よく使う式~) 
7(終わらせ方) //  8(exe化)   //   9(CGモードあれこれ)
10(UIめんどい)  // 11画像拡大縮小(カメラとスプライト) 

12(文字列を画面上に出す) // 13(メッセージボックスの改頁アイコン)
14(文字色) // 15(背景とメッセージの間に枠) // 16(おまけコーナを考える)
17(変数の代入と加算) // 18(立ち絵まとめ)  // 19(画面クエイク

何日坊主かわからないけど毛は生えていたい 

実録!! 私が困ったQ&A

雑談(メッセージボックスとシナリオテキスト他)

※式の¥が半角だと出ないので\スラッシュになってます。

公式BBSで過去ログ検索もおすすめでごんす

製作者さまが有料でサポートをやっていらっしゃるようなので、万一その妨げに
なるようなことがあれば、このブログはインターネットより打ち切られます。
(ネット有志のyu-ris講座が途中で終わってるの多すぎるのそういうことじゃないよね……?)
≪ 前のページ   *HOME*  
ブログ内検索
このブログについて
ゲーム作りたい人のメモ。
講座というほどのものでもないおぼえがきです。
何か参考になるところがあればご自由にどうぞ。
ほぼ自分用なので、日本語いきあたりばったりでごめんなまし。

※ここに書いたことは全体的に
「本当はなんとかする方法があるかもしれないけど、私にはわからない」が多く…
あんまり仕組みを理解していないし誤解もあるかもしれません。
というわけで責任は負いません。ごめんなさい!

リンク:ゲーム作ってる本館
material by bee  /  web*citron
忍者ブログ [PR]