ウディタでパスワード(暗証番号)コモンイベント。作り方と解説、講座

自作コモンイベント配布
自作コモンイベント配布おすすめのゲーム素材

フリーのゲーム製作ソフト『WOLF RPGエディター』の初心者向けコモンイベント講座です。コモンイベントのコードをひとつひとつ解説していきます。

ウディタでパスワード(暗証番号)コモンイベントを作る方法をご紹介します。

4桁のパスワードを入力して、合っていれば○、間違っていたら×というイベントです。

講座になっているかはわかりませんが、なるべくわかりやすく解説していきます。参考にしていただければ幸いです。

[kanren id=”1482″]

画像の準備については、こちらの記事に書いています。今回、ご紹介するのは、コモンイベントの組み方です。実際のコードと、解説を載せていきます。

パスコード(暗証番号)コモンイベントの作り方

画像の用意ができたら、次はコモンイベントの作成にとりかかります。

▼ 初期設定

まずは初期設定です。変数に必要な数値を入れていきます。コモンセルフ変数に逐一名前を付けていくのがコツです。

■変数操作: CSelf21[パネル総数] = 4 + 0
 ■変数操作: CSelf22[選択中パネル] = 0 + 0
 ■変数操作: CSelf40[ナンバー1]~CSelf43[ナンバー4] = 0 + 0

パネルの総数は4。現在選択しているパネルは0。ちなみにパネルは一番左が0、二番目が1、三番目が2、四番目(一番右)が3、という風に考えます。

コモンセルフ40~コモンセルフ43には、パネルに今、入っている数字を入れておきます。なので、とりあえず最初は全部0です。

■変数操作: CSelf50[フォントサイズ] = 80 + 0
 ■変数操作: CSelf51[フォントカラー] = 20 + 0
 ■変数操作: CSelf60[インターバル] = 10 + 0

フォントサイズとフォントカラーは、よさそうな感じに調整してみてください。フォントカラーについては、システムデータベースで色を設定して、そのデータ番号を指定しています。上の例ですと、システムデータベースの「タイプ番号:12 文字色」の「データ番号:20 パスコード」を指定しているので、20です。色はこげ茶にしてみました。

passcord-systemdb-color

色の設定

↑この画像の数値に設定しますと、こげ茶色になります。

■変数操作: CSelf80[中心X座標] = 400 + 0
■変数操作: CSelf81[中心Y座標] = 300 + 0

画面の中心のX座標、中心のY座標を設定しておきます。設定しておくと、使い勝手がよくなります。この場合、画面サイズが800×600なので、中心は(400,300)です。画面サイズが640×480の場合、(320,240)になります。

■変数操作: CSelf82[パネルサイズX] = 99 + 0
■変数操作: CSelf83[パネルサイズY] = 100 + 0
■変数操作: CSelf84[パネルサイズX1/2] = CSelf82[パネルサイズX] / 2
■変数操作: CSelf85[パネルサイズY1/2] = CSelf83[パネルサイズY] / 2
■変数操作: CSelf86[パネル間隔X] = 16 + 0
■変数操作: CSelf87[パネル間隔Y] = CSelf85[パネルサイズY1/2] + 34
■変数操作: CSelf88[1つ目パネルX] = CSelf80[中心X座標] + 0
■変数操作: CSelf88[1つ目パネルX] -= CSelf86[パネル間隔X] / 2
■変数操作: CSelf88[1つ目パネルX] -= CSelf82[パネルサイズX] + CSelf84[パネルサイズX1/2]
■変数操作: CSelf88[1つ目パネルX] -= CSelf86[パネル間隔X] + 0
■変数操作: CSelf89[次パネルまでのX] = CSelf82[パネルサイズX] + CSelf86[パネル間隔X]

加工した画像のサイズを入力していきます。

パネルサイズXは、数字を表示する場所(パネルと呼んでいます)の横幅。パネルサイズYは縦幅です。それぞれ、半分のサイズも求めておきます。

そして、表示するにあたり、パネルとパネルの間隔を設定しておきます。さらには、1つ目のパネルの座標と、パネルとパネルの間の距離(縦は変わらないので横だけ)を求めます。

ここで必要なものをできるだけ詳しく設定しておくと、後でいちいち計算しなくて済むので楽ですね。

■DB読込(ユーザ): CSelf11[開始ピクチャ番号] = ユーザDB[ピクチャ管理:パスワード入力:開始ピクチャ番号]
■変数操作: CSelf10[現在ピクチャ番号] = CSelf11[開始ピクチャ番号] + 0

このコモンを始めるピクチャ番号を設定します。

この場合、使用するピクチャ番号を一覧管理するため、ユーザーデータベースに一括で入れています。そうでない場合は、直に数値を設定して大丈夫です。

▼ ■下地

■ピクチャ表示:CSelf10[現在ピクチャ番号] [中心]ファイル「SystemGraphic/パスコード_ボード下地 .png」 X:CSelf80[中心X座標] Y:CSelf81[中心Y座標] / 0(0)フレーム  / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]

加工しておいた下地の画像を表示します。画面の真ん中に、どんと表示!

▼ ここから数字を表示していきます

■変数操作: CSelf10[現在ピクチャ番号] += 1 + 0
■変数操作: CSelf30[現在X座標] = CSelf88[1つ目パネルX] + 0
■変数操作: CSelf31[現在Y座標] = CSelf81[中心Y座標] + 0
■変数操作: CSelf13[数字開始ピクチャ番号] = CSelf10[現在ピクチャ番号] + 0
■変数操作: CSelf22[選択中パネル] = 0 + 0
■回数付きループ [ CSelf21[パネル総数] ]回
|■変数操作: CSelf23[選択中アドレス] = CSelf22[選択中パネル] + 1600040
|■変数操作: CSelf24[ループ用変数] = 0 + 0
|■回数付きループ [ 10 ]回
| |■変数操作: CSelf25[ループ用判定] = CSelf24[ループ用変数] - V[CSelf23[選択中アドレス]]
| |■条件分岐(変数): 【1】CSelf25[ループ用判定] が 5以上 【2】CSelf25[ループ用判定] が -5未満
| |-◇分岐: 【1】 [ CSelf25[ループ用判定] が 5以上 ]の場合↓
| | |■変数操作: CSelf25[ループ用判定] -= 10 + 0
| | |■
| |-◇分岐: 【2】 [ CSelf25[ループ用判定] が -5未満 ]の場合↓
| | |■変数操作: CSelf25[ループ用判定] += 10 + 0
| | |■
| |◇分岐終了◇
| |■変数操作: CSelf26[ループ用判定絶対値] 絶対値= CSelf25[ループ用判定] + 0
| |■条件分岐(変数): 【1】CSelf26[ループ用判定絶対値] が 2以上
| |-◇分岐: 【1】 [ CSelf26[ループ用判定絶対値] が 2以上 ]の場合↓
| | |■変数操作: CSelf52[不透明度] = 0 + 0
| | |■
| |-◇上記以外
| | |■変数操作: CSelf52[不透明度] = 255 + 0
| | |■
| |◇分岐終了◇
| |■条件分岐(変数): 【1】CSelf24[ループ用変数] が 1と同じ 【2】CSelf24[ループ用変数] が 9と同じ
| |-◇分岐: 【1】 [ CSelf24[ループ用変数] が 1と同じ ]の場合↓
| | |■変数操作: CSelf25[ループ用判定] = -1 + 0
| | |■
| |-◇分岐: 【2】 [ CSelf24[ループ用変数] が 9と同じ ]の場合↓
| | |■変数操作: CSelf25[ループ用判定] = 1 + 0
| | |■
| |◇分岐終了◇
| |■変数操作: CSelf25[ループ用判定] 下限= -1 + 0
| |■変数操作: CSelf25[ループ用判定] 上限= 1 + 0
| |■変数操作: CSelf30[現在X座標] = CSelf89[次パネルまでのX] * CSelf22[選択中パネル]
| |■変数操作: CSelf30[現在X座標] += CSelf88[1つ目パネルX] + 0
| |■変数操作: CSelf31[現在Y座標] = CSelf83[パネルサイズY] * CSelf25[ループ用判定]
| |■変数操作: CSelf31[現在Y座標] += CSelf81[中心Y座標] + 0
| |■ピクチャ表示:CSelf10[現在ピクチャ番号] [中心]文字列[\f[\cself[50]]\c[] X:CSelf30[現在X座標] Y:CSelf31[現在Y座標] / 0(0)フレーム  / パターン 1 / 透 CSelf52[不透明度] / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| |■変数操作: CSelf10[現在ピクチャ番号] += 1 + 0
| |■変数操作: CSelf24[ループ用変数] += 1 + 0
| |■
|◇ループここまで◇◇
|▼ 次のパネルへ
|■変数操作: CSelf22[選択中パネル] += 1 + 0
|■
◇ループここまで◇◇
■変数操作: CSelf15[数字終了ピクチャ番号] = CSelf10[現在ピクチャ番号] + 0

数字を表示します。0~9まで10個の数字を表示するので、10回ループ。さらに、4パネルあるので4回ループしています。

「ダイヤル錠」コモン様をかなり参考にさせていただいています。

▼ ここから影を表示

■変数操作: CSelf24[ループ用変数] = 0 + 0
■回数付きループ [ CSelf21[パネル総数] ]回
|■変数操作: CSelf30[現在X座標] = CSelf89[次パネルまでのX] * CSelf24[ループ用変数]
|■変数操作: CSelf30[現在X座標] += CSelf88[1つ目パネルX] + 0
|■変数操作: CSelf31[現在Y座標] = CSelf81[中心Y座標] + 0
|■ピクチャ表示:CSelf10[現在ピクチャ番号] [中心]ファイル「SystemGraphic/パスコード_影.png」 X:CSelf30[現在X座標] Y:CSelf31[現在Y座標] / 0(0)フレーム  / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■変数操作: CSelf10[現在ピクチャ番号] += 1 + 0
|■変数操作: CSelf24[ループ用変数] += 1 + 0
|■
◇ループここまで◇◇

一番左のパネルから順々に、数字にほんのりかかっている影のグラフィックを表示していきます。X座標とY座標を定めて表示。ピクチャ番号を一つ足して、画像を表示。それをパネルの数(4回)繰り返します。

▼ パスコードのボードを表示します

■変数操作: CSelf30[現在X座標] = CSelf80[中心X座標] + 0
■変数操作: CSelf31[現在Y座標] = CSelf81[中心Y座標] + 0
■ピクチャ表示:CSelf10[現在ピクチャ番号] [中心]ファイル「SystemGraphic/パスコード_ボード.png」 X:CSelf30[現在X座標] Y:CSelf31[現在Y座標] / 0(0)フレーム  / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■変数操作: CSelf10[現在ピクチャ番号] += 1 + 0

数字を表示できたら、枠の画像を上にかぶせておきます。

▼ 上の段の矢印を表示します

■変数操作: CSelf24[ループ用変数] = 0 + 0
■変数操作: CSelf18[上矢印開始ピクチャ番号] = CSelf10[現在ピクチャ番号] + 0
■回数付きループ [ CSelf21[パネル総数] ]回
|■変数操作: CSelf30[現在X座標] = CSelf89[次パネルまでのX] * CSelf24[ループ用変数]
|■変数操作: CSelf30[現在X座標] += CSelf88[1つ目パネルX] + 0
|■変数操作: CSelf31[現在Y座標] = CSelf81[中心Y座標] - CSelf87[パネル間隔Y]
|■ピクチャ表示:CSelf10[現在ピクチャ番号] [中心]ファイル「SystemGraphic/パスコード_↑ボタン.png」 X:CSelf30[現在X座標] Y:CSelf31[現在Y座標] / 0(0)フレーム  / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■変数操作: CSelf10[現在ピクチャ番号] += 1 + 0
|■変数操作: CSelf24[ループ用変数] += 1 + 0
|■
◇ループここまで◇◇

上の段の矢印ボタン、4つを表示していきます。

『コモンセルフ18:上矢印開始ピクチャ番号』で、↑矢印をスタートするピクチャ番号を記録しています。こうしておくと、アニメーションをつけるときに便利です。

▼ 下の段の矢印を表示します

■変数操作: CSelf24[ループ用変数] = 0 + 0
■変数操作: CSelf19[下矢印開始ピクチャ番号] = CSelf10[現在ピクチャ番号] + 0
■回数付きループ [ CSelf21[パネル総数] ]回
|■変数操作: CSelf30[現在X座標] = CSelf89[次パネルまでのX] * CSelf24[ループ用変数]
|■変数操作: CSelf30[現在X座標] += CSelf88[1つ目パネルX] + 0
|■変数操作: CSelf31[現在Y座標] = CSelf81[中心Y座標] + CSelf87[パネル間隔Y]
|■ピクチャ表示:CSelf10[現在ピクチャ番号] [中心]ファイル「SystemGraphic/パスコード_↓ボタン.png」 X:CSelf30[現在X座標] Y:CSelf31[現在Y座標] / 0(0)フレーム  / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■変数操作: CSelf10[現在ピクチャ番号] += 1 + 0
|■変数操作: CSelf24[ループ用変数] += 1 + 0
|■
◇ループここまで◇◇

上矢印を表示するコードをコピペして、Y座標の部分と画像を指定している部分を書きかえれば完成です。

▼ パネルの枠を表示します

■変数操作: CSelf30[現在X座標] = CSelf88[1つ目パネルX] + 0
■変数操作: CSelf31[現在Y座標] = CSelf81[中心Y座標] + 0
■ピクチャ表示:CSelf10[現在ピクチャ番号] [中心]ファイル「SystemGraphic/パスコード_選択中.png」 X:CSelf30[現在X座標] Y:CSelf31[現在Y座標] / 0(0)フレーム  / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■変数操作: CSelf14[枠ピクチャ番号] = CSelf10[現在ピクチャ番号] + 0

枠(水色に光っているもの)を、現在表示している枠の周りに表示します。最初なので、一番左の枠に表示です。

▼ 表示し終えたので、終了ピクチャを取得しておきます
■変数操作: CSelf12[終了ピクチャ番号] = CSelf10[現在ピクチャ番号] + 0

画像をあらかた表示し終えたので、「終了ピクチャ番号」を取得しておきます。

「開始ピクチャ番号」と「終了ピクチャ番号」を取得しておき、消去のときに「開始」から「終了」までを一気に消します。

長くなってきたので、このへんでいったん区切ります。

次は、数字の操作部分です。

コメント

タイトルとURLをコピーしました