投稿記事

シュガーアイランド 2024/06/27 01:19

#RPGBakin 初心者向け?講座 配列変数をつかってみる

初心者向けかと聞かれると?マークを付けたくなる。
使わなくても何とかなるような…使えると便利って感じ?

変数関連使いこなせたらステップアップって感じですかね。
自分の備忘録的に書き記したいと思います。

余りに長いのでインポート用のテキストも用意しました。
下の方。中身見たい人はダウンロードしてみてください

今回つくるもの

長くなるかもですが実用的な物を

こんな感じで
5人の届け先、5つの物をランダムに
2つの選択肢を提示して
リクエストどおりの物を届け先に物を届けたら依頼達成+1
といった物を作りたいと思います。

其の1

そもそも配列変数とは何ぞ?って話ですが

複数の変数をまとめて管理できる変数です。
配列変数を使うことで複数の変数をまとめて一つの変数内で管理することができます。
この変数は1ゲーム内のどこからでも参照することができます。

ウィキのコピペです。

個人的なたとえになりますが


3年A組 1 佐藤
     2 田中
みたいな感じで大きなグループの中に管理するための番号があって
その番号は何かを表しているみたいなイメージでしょうか…

其の2


↑発注側の工程

まずは
届け先を5人
届ける物5つ
という部分の変数を割り当てていきます。
変数の作り方ですが
とりあえず今回は文字列(人の名前とかを使いたいので)
変数ボックス>文字列変数への代入>↓矢印を押して


で配列変数名「誰に」ポインタ「1」を作り

ポインタ1に「Bakin」※届け先の名前を文字として入力します。

なんで1からなのかというと変数の初期値がゼロなので
イベントが発生してなくてもゼロだと反応してしまう可能性があるので
危険を回避するためです。

「誰に」ポインタ「2」○○さん
「誰に」ポインタ「3」○○さん
といった感じでとりあえずポインタ1~6に宛先(届ける先の人の名前とか)
を用意してください

更に届ける物の方も
配列変数名「何を」という名でポインタ「1」に毒消しハーブとか薬草とかお金○○Gとか
図鑑とかにある物から5個作ってください


自分はこんな感じです。

其の3

ランダムにしたいので乱数を用意します。
この乱数ですがアイテムやら届け先の人などを特定するために必要な数字になりますので
4つ用意します。

プレイヤーが2択のうちどちらの選択肢を選ぶか分からないので
4つ作る感じです。

とりあえず通常の変数を4つ作ります。
自分は
ランダム化1
ランダム化2
ランダム化3
ランダム化4
としました。
で、その変数が1~6のどれかを表して欲しいので(届け先と届ける物が各5個なので)


複雑な変数ボックスの操作で
ランダム化1を1~6になる様にします。
それを4つとも同じ処理します。

次の工程ですが
選択肢の中の割り当て準備です。

依頼[1]に依頼[2]を届ける
依頼[3]に依頼[4]を届ける

という感じにします。
更に詳しく書きますと

依頼[誰に[ランダム化1]]に依頼[何を[ランダム化2]]を届ける
依頼[誰に[ランダム化3]]に依頼[何を[ランダム化4]]を届ける

厳密にはこういう感じです。
「選択肢から選んで結果を確認」というコマンドに
2重カッコ(カッコの中に変数をあてる)が使えないので割り当てるしかないって感じの工程になります。


新たに配列変数を足します。
「依頼」という配列変数を追加して


ポインタ1に
誰か[ランダム化1]
を割り当てます。
ポインタ2に
何を[ランダム化2]
ポインタ3に
誰か[ランダム化3]
を割り当てます。
ポインタ4に
何を[ランダム化4]
と割り当てます。
ポインタに変数を割り当てるという
だんだん何をしてるか分からなくなってきそうですw

其の4


準備が終わったので選択肢に入れます

「選択肢から選んで結果を確認」の中に

\$[依頼][1]に\$[依頼][2]を届ける
\$[依頼][3]に\$[依頼][4]を届ける
選び直す
今はやめとく

と選択肢を用意します。
で決定した選択肢ごとに何をして行くか決めていきます。
決めた内容がランダムなので届ける相手と届ける物を記憶させるための
変数を用意します。
・相手の変数
・荷物の変数
一番上の選択肢を選んだら
[依頼][1]→相手の変数
[依頼][2]→荷物の変数
となる様に組みます。
中身は
依頼[誰に[ランダム化1]]→相手の変数
依頼[何を[ランダム化2]]→荷物の変数
という感じです。
次の選択肢は
[依頼][3]→相手の変数
[依頼][4]→荷物の変数
となる様に組みます。
中身は
依頼[誰に[ランダム化3]]→相手の変数
依頼[何を[ランダム化4]]→荷物の変数
という感じで最終的に「相手の変数」「荷物の変数」に集約されます。


選び直す という選択肢ですが
ここに進んだらラベルジャンプで乱数化する前にジャンプさせます。
そうする事によりまた再抽選されます。

一部割愛しましたが


このスクショかインポートで次のテキストを読み込んで下さい。

依頼主の姉ちゃん.txt (5.34kB)

ダウンロード

其の5


まずシート条件で相手の変数を確認します。
届け先に該当してるならアイテムを持っているかの確認をスタートしていきます。
ラベルジャンプで「荷物の変数」へ各荷物の変数ラベルに飛ばします。
で物を持っていたらアイテム減らして
依頼達成!みたいに組みます。

相手の変数1.txt (14.66kB)

ダウンロード

相手の変数1を出力しました。
これをコピペして5人分用意して
シート条件の相手の変数を変更すれば5人分作れます。

イベントのお店を流用して品物をお店で売れば動画と同じ事が出来るようになると思います。

長かった…最後の方はもう疲れてやっつけですw
質問あれば加筆しますw

覚えると便利ですが
普通のRPG作るとき使うか?って疑問もありますがまぁ
応用は色々と出来そうなので使ってみます?w

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

シュガーアイランド 2024/06/20 23:51

#RPGBakin デカールで道路

アプデきましたねBakin♪
デカールが楽しくて作った道(ブラシでかなり適当ですが)
デカールが重い?…とかその辺は未調査ですが
参考用にPSDとPNGです。

道.zip (542.09kB)

ダウンロード

改変、色替え、描き直し、再配布、何されても問題ないデータです。
(※ただしトラブルや不具合が発生した場合でも一切の責任を負いません)

PNGの4と5は半分サイズなのでデカールのスケールを半分で使う感じで

多用すると処理が重いのかな…
ただテクスチャだけで済ませられるので圧倒的に楽w

※6/21追記


投影させたいモデルのマテリアルの「デカール対象」にチェックを入れないと
デカール貼れないです。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

シュガーアイランド 2024/06/17 03:21

#RPGBakin 初心者向け講座 ボタン取得&スキルツリーMAPへ遷移と元の場所へ帰還 ※追記

自分はツクールとか触ったことがなかったので
広大な海にぽいっと投げ出された感じで、
最初はイマイチ何をどうすれば分からなかったので
分かったことを可能な限り書き記したいと思います。
(未だに分からない事が多く最適解ではない
 &アプデで色々と変わったらスミマセン)

今回つくるもの

既存のボタン配置関連はそのまま温存した状態で
新規に
Uボタンでスキルツリー画面(MAP移動)
Iボタンで元に居たMAPに戻る
というシステムを作りたいと思います。

其の1


スクショの様に
アクション4にUボタンを割り当て
アクション5にIボタンを割り当てます。
何ボタンにするかは任意ですが現状
アクション4(U)スキルツリー画面に移動
アクション5(I)元いた場所に戻るボタンにしていきます。

其の2

まずは移動先のMAPを追加してください。
(分かりやすく黒で塗りつぶしました。)

次にいくつか変数を用意します。


アクション4ボタン取得
アクション5ボタン取得
元いたMAPID
元いた場所X
元いた場所Y
元いた場所Z
MAP移動
という変数を用意します。

其の3


共通イベントにボタンの入力感知を常に確認する設定をします。
常になのでイベント開始は「並列して繰り返し実行」
そしてプレイヤーがアクション4を押したら
変数「アクション4ボタン取得」に値を代入という設定をします。
値に関しては
押されている間は「1」が、押した瞬間は「2」が、離した瞬間は「-1」の値
らしいです。
詳しくはこちら→バキンWiki


同じところに更に追加していきます。
変数「アクション4ボタン取得」が2と等しい時に
変数「MAP移動」に「1」を代入

アクション5はその逆で(ボタンへの反応は同じですが…)
変数「アクション5ボタン取得」が2と等しい時に
変数「MAP移動」に「2」を代入

移動のコモンにかんしましては後で説明しますが
変数「MAP移動」が1の時、スキルツリー画面
変数「MAP移動」が2の時、元のMAPに戻す
というイメージです。

※6/21追記■■■■■■■■■■■■■■


「並列して繰り返し実行」の最後は”指定した時間待つ「0秒」”を最後に追加してください。
延々と繰り返すと重くなるのでゼロ秒=1フレーム挟むことでリセットされるみたいなので
今回に限らず「並列して繰り返し実行」の様な繰り返しの際は
”指定した時間待つ「0秒」”を挟みましょう!
(これツクールの方も同じみたいですねw)
■■■■■■■■■■■■■■■■■■■■

其の4


新たに共通イベントを足します。
で、まずはスキルツリーへ移動する際のコモンを作ります。
変数「MAP移動」が1の時という条件つけて
自動的に開始(一回だけ実行)で
移動する前に今いるMapIDとプレイヤーのXYZの座標を
先程用意した変数に代入して記憶させておく感じです。
最後にスキルツリーのMapを選んでこのシートは終わり。


シートを足して
変数「MAP移動」が2の時という条件つけて
自動的に開始(一回だけ実行)で
取得しておいた座標関連を移動の場所指定を
変数にして「元いた場所X」とかYとか
移動先のマップも変数ボタンで「元いたMAPID」にします
で、初期化もかねて変数「MAP移動」が0を代入で
元に戻しておいて一回動作確認してみましょう。

高低差や場所などきちんと戻っていますでしょうか?

おまけ スキルツリーらしき何か

この後は見た目とか好みやら色々とあると思うし
覚える条件とか人それぞれなので
近づいたら覚えられるスキルを文字表示して
話しかけたら覚えるかはい、いいえで
覚えるって感じの物を作ろうとおもいます。
この辺は自由なのでサラッとスクショですませちゃいます。
どうしてもわからない場合は質問下さい


宝箱を改造しますw

生成されたローカル変数がオフの時
プレイヤーが触れているとき
ファイアを習得できるアナウンスをします。
接触してない時はアナウンスをけします。


宝箱あけた=覚えたって事なので、その旨をコメントするかんじでしょうか。


「はい」か「いいえ」で覚える分岐で
「はい」なら効果音とかならして覚えた!って演出と
実際プレイヤーにスキルを付与する感じ。

あとはお好みで頑張ってください。

※R6 6/17 10:11
一部、誤字ってたり文章の誤りがあったので文章を修正しました。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

シュガーアイランド 2024/03/25 02:42

#RPGBakin メニュー画面からファストトラベル(出来は微妙)

長い&出来が微妙ですが現状報告というか
誰かの参考までに書きます。
ファストトラベルやスキルツリーをメニューに組み込む際の参考までに。

うーんオクトラみたいにいきなり地図の上にメニュー画面ってのが結構、厄介です。
(最初が普通のメニュー画面、そのあと選択肢を選んで地図の上
 って感じなら安定しそうなので今後そういう風に舵を切るかもしれません。)

あとそもそもなんでレイアウトで作らずMapで作るの?
って点ですが下の動画を見てください。

板に地図を貼り付けその上にRayや雲のエフェクトを乗せたりすると
多重スクロールしてカッコいいから!
それだけですw

何かと力技です。みたくるみさんから頂いたスクリプトも使います。
かなりゴリ押し感あります。

■■■まずはMAPに地図を用意します■■■


全Mapで同じ位置に地図を置くことになります(笑)
じゃないとですね

メニューを押すたびにMapをロードする待ち時間が
凄いストレス(プレイヤーが)が発生するからです。

板ポリにMapを貼るなどの素材関連は割愛します
要望が多ければ…別記事で書こうかと。

■■■キーコンフィグ関連■■■


ゲーム定義>ルールと操作>キーボタンの割り当て>キーボード
で、とりあえずMENUに割り当てられている項目を無くします。
メニューを開く前に地図上の上に移動したり
カメラを変えたりするしかないので
普通にメニューを開かれると困るのですw
メニューボタンの代わりにACTION3をメニューボタンと同じ効果を持たせます。

■■■共通イベント■■■

其の①常時 いろいろな値を観測するイベント達


↑プレイヤーの座標を確認&ボタン入力を定義


↑ここ微妙ですが地図以外の項目を選んでるときに色々とメニューをすすめられるので
その辺をザックリ検知


↑長い。メニューの状態によって更にその時押されたボタンで
メニューの状態を進める場所
メニューを開いた際のボタンの制御だけをここで管理してます。
内容は次のイベント達で各シート毎に実行する感じ。

其の②
メニューの状態の定義というか状態にあわせた内容を
各シートで実行する感じです。
こっちでは入力関連の監視はしないので自動的に一回実行する感じ。


〇メニュー状態 1


〇メニュー状態 2


〇メニュー状態 3
このCi-en記事でもっとも書きたいところがここです!
前回背景に隠れた時の色のc#を描いてくださった
みたくるみさんがメニューを閉じるC#を書いてくださりました!
https://twitter.com/mitakurumi_2/status/1761366202251903465
許可をいただきこちらでc#を添付

Close_Menu_new.cs (3.04kB)

ダウンロード

Bakin(今Ver. 1.8あたり)メインメニューを閉じるコマンドが無い?!
と気づき、ツイッターでぼやいたら作って頂きました!
ありがとうございます。

こんな感じで使わせていただいてます。


〇メニュー状態 4


〇メニュー状態 5


〇メニュー状態 6


〇メニュー状態 7

■■■いったんレイアウトの方に説明うつります■■■


レイアウトツール>メインメニュー>メニューで
自分がつかうレイアウト選び
①選択項目を代入する変数に何か変数をあてる
(じゃないと何を選択しているか分からないので)

②「イベントの実行を一時停止します」のチェックを外す。
そうしないとメニューでイベントを実行できないので
外すしかないです。
外すとゲーム中実行している並列処理関連が止まることなく
流れるので各種止めなきゃいけない物など止める処理が出てきます。
本来メニューを開くと止まるようなイベント(ゲーム内時間とか時限式に発動する物)
が止まらなくなるので気を付けてください。


こんどは世界地図上で動くための選択肢を
押した時にメニューを閉じて某イベントを実行する
というのをこの辺の設定で作ります


メニューを閉じて地図の注釈などをフリーレイアウトで表示
とか選んでいる街の名前とかがでると良いなぁという思いのみですが
メニュー閉じて地図&フリーレイアウトが開くかんじです

■■■また共通イベントです■■■

地図ボタンを押した時のイベントを作ります。


ボタンを押すことによるイベントなので
開始条件は他のイベントでフリーレイアウト呼び出して
キャラを操作できるようにして
先程ながながと解説してるメニューの定義方の共通イベントに
飛ばします。(〇メニュー状態 4に戻す感じ)
ここでは本当に押した時の対応のみの処理で済ませてます。

■■■地図の話■■■
光や雲ですが
適当にイベントでアニメつけてます(笑)


これは光のイベント
1~3パターンぐらい適当にタイミングずらしてそれを適当に配置


雲は100すすんで透明化して200歩戻って透明化解除して100進む
みたいな軍団を流してるだけですw
現状、速度が速いのと雲が白すぎるので
UVスクロールとかで作り直す予定です。
速度に関してはSANAさんのスクリプトで遅くなりそうな予感はあります。
(テストが間に合ってませんw)


移動可能な場所に配置する物
本当は街のアイコンとかを用意するべきなのですが
現状かりで花で代用してますが中身は
こんな感じのイベントです。
話しかけられたらはいいいえの2択で
フリーレイアウトをけして羽ペンから主人公に戻したり
操作可能にしたり街の座標へ飛ばしたり
メニューで止めていたイベントを再生したり
諸々ですね。
メニューキャンセルで今までいた場所にもどるシートとやってることはほぼ同じです

■■■ってな感じです■■■
もはややる気を折る為の記事に見えなくもないない様になってしまいましたが
質問などなどあれば具体的に返答したいと思っております。分かる範囲で…
もう何を説明していいのか良く分からない感じですw

個人的にはですねメニューは普通にメニューを開いて
世界地図ボタンを押したら地図に遷移するって流れが
安全だと思います。
メニュー開く前のアレコレ作業をメニューを閉じる際が
凄く厄介です。
なので閉じる前が単なる普通のメニューだと凄く楽というか
キーコンフィグ関連も通常のままでも行ける気がします。
現状キャンセル関連で戻るとシックリこないかんじです。
なので自分はメニューを挟む方に切り替えるかもです…

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

シュガーアイランド 2024/03/09 23:38

#RPGBakin UVステップ64枚までなら対応できる板ポリ

UVSTEP.zip (1.27MB)

ダウンロード

FBXデータと仮置きのテクスチャです。

512×512サイズならを64枚(未満なら平気)並べてステップアニメ出来ます。
解像度足らないよ!
って人はテクスチャのサイズを8192×8192サイズに変更して
1024×1024サイズを64枚に変更してください(セルフでw)
とにかくUVの比率さえ変えなけれ平気な筈

バキンの設定
マテリアルのUVステップアニメをONにしないと始まらないw
分割数はUもVも8
全フレーム数は画像を並べた数です。
インターバル(秒)は1コマ秒にしますかって事です。

真っ黒な背景に字だけ書いただけの動画
(音楽は別枠でYouTube再生してるだけですw)

使い道は人それぞれかなw

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

« 1 2

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索