フリーのゲーム製作ソフト『WOLF RPGエディター』の初心者向けコモンイベント講座です。コモンイベントのコードをひとつひとつ解説していきます。
ウディタでパスワード(暗証番号)コモンイベントを作る方法をご紹介します。
4桁のパスワードを入力して、合っていれば○、間違っていたら×というイベントです。
講座になっているかはわかりませんが、なるべくわかりやすく解説していきます。参考にしていただければ幸いです。

画像の準備については、こちらの記事に書いています。今回、ご紹介するのは、コモンイベントの組み方です。実際のコードと、解説を載せていきます。
目次
パスコード(暗証番号)コモンイベントの作り方
画像の用意ができたら、次はコモンイベントの作成にとりかかります。
▼ 初期設定
まずは初期設定です。変数に必要な数値を入れていきます。コモンセルフ変数に逐一名前を付けていくのがコツです。
1 2 3 |
■変数操作: CSelf21[パネル総数] = 4 + 0 ■変数操作: CSelf22[選択中パネル] = 0 + 0 ■変数操作: CSelf40[ナンバー1]~CSelf43[ナンバー4] = 0 + 0 |
パネルの総数は4。現在選択しているパネルは0。ちなみにパネルは一番左が0、二番目が1、三番目が2、四番目(一番右)が3、という風に考えます。
コモンセルフ40~コモンセルフ43には、パネルに今、入っている数字を入れておきます。なので、とりあえず最初は全部0です。
1 2 3 |
■変数操作: CSelf50[フォントサイズ] = 80 + 0 ■変数操作: CSelf51[フォントカラー] = 20 + 0 ■変数操作: CSelf60[インターバル] = 10 + 0 |
フォントサイズとフォントカラーは、よさそうな感じに調整してみてください。フォントカラーについては、システムデータベースで色を設定して、そのデータ番号を指定しています。上の例ですと、システムデータベースの「タイプ番号:12 文字色」の「データ番号:20 パスコード」を指定しているので、20です。色はこげ茶にしてみました。
↑この画像の数値に設定しますと、こげ茶色になります。
1 2 |
■変数操作: CSelf80[中心X座標] = 400 + 0 ■変数操作: CSelf81[中心Y座標] = 300 + 0 |
画面の中心のX座標、中心のY座標を設定しておきます。設定しておくと、使い勝手がよくなります。この場合、画面サイズが800×600なので、中心は(400,300)です。画面サイズが640×480の場合、(320,240)になります。
1 2 3 4 5 6 7 8 9 10 11 |
■変数操作: 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つ目のパネルの座標と、パネルとパネルの間の距離(縦は変わらないので横だけ)を求めます。
ここで必要なものをできるだけ詳しく設定しておくと、後でいちいち計算しなくて済むので楽ですね。
1 2 |
■DB読込(ユーザ): CSelf11[開始ピクチャ番号] = ユーザDB[ピクチャ管理:パスワード入力:開始ピクチャ番号] ■変数操作: CSelf10[現在ピクチャ番号] = CSelf11[開始ピクチャ番号] + 0 |
このコモンを始めるピクチャ番号を設定します。
この場合、使用するピクチャ番号を一覧管理するため、ユーザーデータベースに一括で入れています。そうでない場合は、直に数値を設定して大丈夫です。
▼ ■下地
1 |
■ピクチャ表示:CSelf10[現在ピクチャ番号] [中心]ファイル「SystemGraphic/パスコード_ボード下地 .png」 X:CSelf80[中心X座標] Y:CSelf81[中心Y座標] / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100] |
▼ ここから数字を表示していきます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
■変数操作: 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 |
「ダイヤル錠」コモン様をかなり参考にさせていただいています。
▼ ここから影を表示
1 2 3 4 5 6 7 8 9 10 |
■変数操作: 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 |■ ◇ループここまで◇◇ |
▼ パスコードのボードを表示します
1 2 3 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 |
▼ 上の段の矢印を表示します
1 2 3 4 5 6 7 8 9 10 11 |
■変数操作: 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 |■ ◇ループここまで◇◇ |
『コモンセルフ18:上矢印開始ピクチャ番号』で、↑矢印をスタートするピクチャ番号を記録しています。こうしておくと、アニメーションをつけるときに便利です。
▼ 下の段の矢印を表示します
1 2 3 4 5 6 7 8 9 10 11 |
■変数操作: 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 |■ ◇ループここまで◇◇ |
▼ パネルの枠を表示します
1 2 3 4 5 |
■変数操作: 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 |
1 2 |
▼ 表示し終えたので、終了ピクチャを取得しておきます ■変数操作: CSelf12[終了ピクチャ番号] = CSelf10[現在ピクチャ番号] + 0 |
「開始ピクチャ番号」と「終了ピクチャ番号」を取得しておき、消去のときに「開始」から「終了」までを一気に消します。
長くなってきたので、このへんでいったん区切ります。
次は、数字の操作部分です。
コメントを残す