忍者ブログ
windowsやFlash のゲーム作ったりとか。
RPGツクールMVのイベントコマンドで使える便利なスクリプトの備忘録です。

プラグインを使わずにちょこちょこっとイベントを拡張できるので
とっても便利です。

教えてくださった皆様、ありがとうございます。

・各種メニュー画面の呼び出し(参考/ツクマテ投稿記事

 セーブ画面呼び出し SceneManager.push(Scene_Save);
 ロード画面呼び出し SceneManager.push(Scene_Load);
 ステータス画面呼び出し SceneManager.push(Scene_Status);
 スキル画面呼び出し SceneManager.push(Scene_Skill);
 アイテム画面呼び出し SceneManager.push(Scene_Item);
 装備画面呼び出し SceneManager.push(Scene_Equip);
 オプション画面呼び出し SceneManager.push(Scene_Option);

・アイテムの大事なもののページを開く(参考/ツクマテ投稿記事
SceneManager.push(Scene_Item);
SceneManager.update();
SceneManager._scene._categoryWindow.select(3);
SceneManager._scene.onCategoryOk();
SceneManager._scene._categoryWindow.deactivate();

・オートイベントでメッセージをスキップしても移動が終わるまで待つ(参考/シロップ様)

 this.setWaitMode('route')
 会話直後に記述。

・イベントの位置をリセット(参考/ツクマテ投稿記事

 $gamePlayer.requestMapReload();

・画面のフェードイン・アウトを黒以外で(参考/ツクマテ投稿記事

 SceneManager._scene._spriteset._fadeSprite.setColor(255, 255, 255);
 フェードイン・アウトの直前に記述。
 255, 255, 255はRGB値で、数字を変更することで色を変えることができ
 変更した色は、メニューを開いたり、マップ移動したり
 戦闘に入ったりするなど、シーンが変わるまで維持される。

・乗り物の「向き」を変更(参考/ツクマテ投稿記事

 小型船 $gameMap.boat().setDirection(2);
 大型船 $gameMap.ship().setDirection(2);
 飛行船 $gameMap.airship().setDirection(2);
 下に向けるなら2、上なら8、左なら4、右なら6

・「このイベント」に当たるイベントを途中で別イベントに差し替え(参考/卑弥呼テクニック

 this._eventId = 別イベントのID

・移動ルートの設定でアニメーション再生(参考/卑弥呼テクニック
 this.requestAnimation(アニメーションID);

・移動ルートの設定で指定したIDのイベントに近づく(参考:くらむぼん様)

 1番のイベントに一歩近づく this.moveTowardCharacter($gameMap.event(1))
 1番のイベントから一歩遠ざかる this.moveAwayFromCharacter($gameMap.event(1))
 1番のイベントの方を向く this.turnTowardCharacter($gameMap.event(1))
 1番のイベントの逆を向く this.turnAwayFromCharacter($gameMap.event(1))
 座標(変数1番,変数2番)に向かって歩く
  this.moveTowardCharacter({x: $gameVariables.value(1), y: $gameVariables.value(2)})

・移動ルートの設定で最短ルートで指定の場所へ移動する(参考/ツクマテ投稿記事

 this.moveStraight(this.findDirectionTo(x,y))

・移動ルートの設定で、指定した座標にジャンプ(参考/ツクマテ投稿記事

 this.jump(10 - this.x, 20 - this.y)

・スクリプトでSEの音量を調節(参考/ツクマテ投稿記事
◆変数の操作:#0001 SE音量 = AudioManager.seVolume(変更前の音量を取得)
◆スクリプト:ConfigManager['seVolume'] = 100;//音量を変更
◆SEの演奏:Absorb2 (90, 100, 0)
◆スクリプト:ConfigManager['seVolume'] = $gameVariables.value(1);//音量を戻す

・プレイヤーが直接入力することなく決定、キャンセルキーを入力(参考/ツクマテ投稿記事
  ◆キャンセルキーを押して離した
  スクリプト「Input._currentState['escape'] = true;」
  イベントコマンド「ウェイト(1)」
  スクリプト「Input._currentState['escape'] = false;」

 イベント例
 プレイヤーの左にこの作成したイベントがいたとして、決定ボタンを押すと
 プレイヤーは下を向き正面にいるイベントに話しかける。
 ◆移動ルートの設定:プレイヤー (ウェイト)
 :        :◇下を向く
 ◆スクリプト:Input._currentState['ok'] = true;
 ◆ウェイト:1フレーム
 ◆スクリプト:Input._currentState['ok'] = false;

 使用できるキーは、rpg_core.jsにある
 2996行目キーボードと3030行目ゲームパッドの定義

・スマホを振動させる(参考/ツクマテ投稿記事

 navigator.vibrate(2000);
 ※単位はミリ秒

・マップ名の変更(参考/ツクマテ投稿記事

 変更 $dataMap.displayName = 'マップ名'
 表示 SceneManager._scene._mapNameWindow.open();
 ※情報はセーブされない、マップを移動する度リセットされる。

・ダッシュの許可と禁止(参考/ツクマテ投稿記事

 許可 $dataMap.disableDashing = true;
 禁止 $dataMap.disableDashing = false;
 ※情報はセーブされない、マップを移動する度リセットされる。

・戦闘イベント中にステータスウインドウを更新(参考/ツクマテ投稿記事

 SceneManager._scene.refreshStatus

・フォロワーにアニメ表示(参考/ツクマテ投稿記事

 $gamePlayer.followers().follower(index).requestAnimation(id);
 indexには「フォロワーのindex」を、idにはアニメーションIDを記入

・フォロワーに噴出し表示(参考/ツクマテ投稿記事
 $gamePlayer.followers().follower(n).requestBalloon(m);
 n:フォロワー番号(パーティの2番目が0、3番目が1...)、m:バルーンID

・連続する変数に連番をランダムに代入(参考/ツクマテ投稿記事

var i1 = 1;     // 変数番号の最初
var i2 = 10;    // 変数番号の最後
var v1 = 1;     // 連番の開始値
var v2 = 10;    // 連番の終了値
var value = Array.apply(null,Array(v2-v1+1)).map(function(v,i){return i+v1});
for(var i=i1;i<=i2;i++){
  var v = value.splice(Math.randomInt(value.length),1)[0];
  $gameVariables.setValue(i,v);
}

イベントコマンド「条件分岐」で使える条件スクリプト


 決定キーが押された瞬間 Input.isTriggered('ok')
 (okの部分をcancel,up, down, left, right, pageup, pagedownなどに置き換え可)
・マウス入力の判定(参考/ツクマテ投稿記事

 左クリック TouchInput.isTriggered();
 右クリック TouchInput.isCancelled();

・今戦闘中かどうか(尾島様)

 $gameParty.inBattle()

・キャラクターが移動中かどうかを判定(参考/ツクマテ投稿記事

 this.character(id).isMoving()

 移動中ならtrue、停止中ならfalse。
 idに-1でプレイヤー、0でイベント自身、1以上で対応するイベントID。
 停止中かどうかを判定する場合は、以下。

 this.character(id).isStopping()

・イベントのメモ欄の文章を判定(参考/ツクマテ投稿記事

 ■イベント3番のメモ欄に あいうえお と書かれてあるかどうかを判定
 $gameMap.event(3).event().note === 'あいうえお'

 ■イベント3番のメモ欄に書かれている文章の中に あいうえお が含まれているかどうかを判定
 $gameMap.event(3).event().note.match(/あいうえお/)

 ■イベント3番のメモ欄に <ABCD> と書かれているかどうかを判定
 $gameMap.event(3).event().meta['ABCD']

 ■イベント3番のメモ欄に <ABCD:1> と書かれているかどうかを判定
 $gameMap.event(3).event().meta['ABCD'] === '1'

・複数の変数を比べる(参考/ツクマテ投稿記事

◆変数#0001~#0004のいずれかが0より大きかったらOK
[1,2,3,4].some(function(id){return $gameVariables.value(id) > 0});

◆変数#0001~#0004のすべてが0より大きかったらOK
[1,2,3,4].every(function(id){return $gameVariables.value(id) > 0});

◆スイッチ#0001~#0004の全てがONならOK
[1,2,3,4].every(function(id){return $gameSwitches.value(id) > 0});

・変数1が3から44の間の値のとき(参考/ツクマテ投稿記事

 3 <=$game_variables[1] &&  $game_variables[1] <=44

イベントコマンド「変数の操作」で使える情報取得スクリプト

・日時の取得(尾島様)

 年   new Date().getFullYear()
 月  new Date().getMonth() + 1
 日   new Date().getDate()
 曜日   new Date().getDay()
 時   new Date().getHours()
 分   new Date().getMinutes()
 秒   new Date().getSeconds()

 曜日も数値で取得されるので、数字から文字列に変更して下さい。
 0なら日、1なら月、3なら火・・・

・マウスの位置を取得(ニナと鍵守の勇者ミニゲームより)

 画面X座標 TouchInput.x
 画面Y座標 TouchInput.y
 指定位置の情報を取得するために
 マス目を割り出すには、取得した数値を48で除算。

・パーティのアクターIDの取得(参考/ツクマテ投稿記事

 $gameParty.members()[i].actorId();

 「i」並び順(0~)
 エネミーのIDを取得する場合は、以下。

 $gameTroop.members()[i]._enemyId

・敵グループに勝利した時の合計金額(参考/ツクマテ投稿記事

 $gameTroop.goldTotal();
 敵グループに勝利した後イベントで代入

・パーティ先頭キャラの武器タイプ1にセットされている装備名を取得(参考/ツクマテ投稿記事

 $gameParty.members()[0].equips()[0].name

・パーティ先頭キャラの1番目のステート名を取得(参考/ツクマテ投稿記事

 $gameParty.members()[0].states()[0].name

・パーティ先頭キャラの職業を取得(参考/フォーラム投稿記事

 $gameParty.members()[0].currentClass().name

・BGMを取得(参考/ツクマテ投稿記事

 AudioManager.saveBgm();

 保存したBGMを再生(コマンド「スクリプト」)
 AudioManager.replayBgm($gameVariables.value(n));
 n:保存した変数番号

・セーブデータがあるか(参考/ツクマテ投稿記事

 DataManager.isAnySavefileExists();

ダメージ計算式基礎知識

・最低でも1のダメージを与える(参考/初心者講座

 Math.max(m,1)

 mにダメージ計算式を入れる

・1から a.atk * 4 までの間でランダムにダメージを与える(参考/初心者講座
 (a.atk * 4) * Math.random() + 1

・動ける仲間の数を基本ダメージに(参考/初心者講座

 100 * $gameParty.movableMembers().length

・残りHPが20%以下になると、威力が2倍になる(参考/ツクマテ投稿記事

 a.atk * 4 *(a.hp <= a.mhp / 5 ? 2 : 1) - b.def * 2

・防御している敵には通常の2倍の威力のダメージを与え、それ以外の敵には通常のダメージを与える
 (参考/ツクマテ投稿記事

 a.atk * (b.isGuard() ? 4 * b.grd : 1)

・敵が12番(眠り)ステートの場合ダメージが100、それ以外は1(参考/ツクマテ投稿記事

 b.isStateAffected(12) ? 100 : 1

・敵が3番目のステートにかかってたら威力が2倍に、それ以外は通常の威力(参考/ツクマテ投稿記事

 a.mat * (b.isStateAffected(3) ? 2 : 1)

・毒、暗闇、沈黙の場合ダメージが10000加算(参考/ツクマテ投稿記事

 a.atk * 4 - b.def * 2 + (b.isStateAffected(4) || b.isStateAffected(5) || b.isStateAffected(6) ? 10000 : 0)

・毒、暗闇、沈黙の場合ダメージが2倍(参考/ツクマテ投稿記事

 (a.atk * 4 - b.def * 2) * (b.isStateAffected(4) || b.isStateAffected(5) || b.isStateAffected(6) ? 2 : 1)

・敵が4番(毒)のステートでなければ毒を付加、それ以外は14番(猛毒)のステートに変更(参考/ツクマテ投稿記事

 b.isStateAffected(4) ? b.removeState(4)||b.addState(14)||0 : b.addState(4)||0

・敵を決して倒すことが出来ない「みねうち」(参考/ツクマテ投稿記事

 Math.min(元々の計算式 , b.hp - 1)

・相手のHPを1にする(参考/ツクマテ投稿記事

 b.hp - 1

・攻撃系スキル使用時、使用者にステートを付与(参考/RPGツクールMVwiki

 a.addState(ステート番号);攻撃系スキルの計算式

 例)防御しながら通常攻撃 a.addState(2);a.atk * 4 - b.def * 2

・指定IDのアクターがいれば対象に40ダメージ(参考/ツクマテ投稿記事

 $gameParty.members().contains($gameActors.actor(id)) ? 40 : 10

・敵HPの下一桁が0か偶数か奇数かによってダメージをそれぞれ、0、100、5000に(参考/ツクマテ投稿記事

 if(a.hp % 10 == 0){0} else if(a.hp % 2 == 0){100} else {5000}

・indexの大きいバトラーほどダメージが大きい(参考/ツクマテ投稿記事

 10 * (b.index() + 1)

・クリティカル時のダメージを変更する(参考/ツクマテ投稿記事

 b.result().critical ? クリティカル時の計算式 : 通常の計算式

 ※クリティカル時の3倍ダメージ効果は適用されてしまうので、それを考えた上で式を作る

拍手[0回]

PR
RPGツクールMV プラグイン備忘録5

目次その1その2その3その4その5チョイ技/情報/講座

NEW!
Ritzさま(github
・簡単な紙芝居が作れる


ツクールフォーラム(公式フォーラムの投稿より)
 ---投稿プラグインまとめ【2017年6月版】(みなみよつばさま)
 ---投稿プラグインまとめ【2017年9月版】(みなみよつばさま)

戦闘/スキル/ステート/アイテム
スリップダメージやHP自動回復の量をターン毎に増減させる
能力値弱体/強化を3段階以上可能に
カウンター行動(反撃時にスキルを使用)
簡易設定(最低ダメージ等、いつくかの項目を設定)
攻撃対象選択時に弱点や耐性を表示
戦闘終了時に戦闘結果を表示
HP再生率による結果をバトルログに表示
バトルイベントを拡張/戦闘終了時にコモンイベント
サイドビュー時のアクターを一直線に並べる
スキルに反応して反撃/連鎖で更にスキルを発動
「戦闘行動の強制」の際、残りの行動をリセットしない
消費MPを現在の最大MPの比率で変動させる
いわゆるメガ○テとマダ○テ
YEPActionPack拡張・矢弾飛ばし
戦闘中、アイテムを所持数以上使えなくする
戦闘開始時の出現メッセージを複数形に対応させる
職業ごとに、武器タイプごとに、威力を増減させる
戦闘時に行動回数表示
所持金消費スキル
怪しい影(正体不明の敵)
戦闘時におけるウィンドウの行数を変更
味方の一番高い能力を吸収する
状態異常のとき戦闘キャラをフラッシュさせ続ける
装備やアイテムなどのパラメータを分離する
レベル差がある敵グループに強制勝利
敵、味方のダメージ倍率を変数制御する
戦闘行動の強制による、直前の中断された行動を再開する
ステートを重複可能に
弱点・耐性に応じてメッセージを追加表示
オートバトル
バトル中に立ち絵を表示(残HPで変更可)

システム
足音をかなり詳細に設定可
イベントの上下反転やクロスフェードなどを実現
美容院システム(アクターの画像を一括して変更)
勝利アクション禁止
移動ルートの設定などの対象者を変更
立ち絵マネージャー(複数の画像を統合して一枚に合成して表示)
時間制限付選択肢
心の声ウインドウ(既存プラグインの組合わせて使うシステムグラフィックと小技)
戦闘不能のアクターを隊列の最後尾に回し、棺桶などの形で表示
オリジナルシーンやウィンドウを表示
同行者を隊列歩行にも表示
アクターのステータス欄の表示を変更
メッセージウィンドウを複数表示
イベント起動中は自律移動をストップ
ショップの装備画面で、全パラメータの変化を表示
起動中のイベントを強制中断、接触してきたイベントが強引に割り込む
アイテムボックスのカテゴリー選択を無くす
移動ルートのコモンイベント化
ゲームオーバー画面を表示してからリスポーン
アイテム等を入手したときに吹き出しを表示させる
カードゲーム(ババ抜き)
エンカウント歩数の計算式を変更する
MPが一定値以下の場合に顔グラフィックをマップ上へ表示
移動ルートの設定で『右に5歩』や『9時方向に蟹歩き』が可能に
アクターごとにアイテムを個別で所持する
歩くたびに経験値が増える装備
タイトル画面の背景をスクロール
セーブの最大数を変更
タイトル画面を拡張
あらすじ機能を追加
フォロワーを操作
イベントの位置情報を復元
1ボタンでコモンイベントを呼び出す
イベントの中断と再開をサポート
所持アイテムの合計数を取得
宝箱の残り個数を表示
スイッチで戦闘終了時のフェードインを制御
メニュー画面改造
見た目変更装備
残像表示
「移動ルートの設定」で任意のイベントコマンドを実行可能
「場所移動」時のフェードインを制御
パラムフッリワーケシステム(能力値振り分け
シンプルなセーブ画面
シンプルなメニュー画面
アクターを選ぶための選択肢
スプラッシュスクリーンとしてメッセージを表示
カレンダー機能
セーブ内容を反映させてから閉じる
遊泳・ダイビングシステム (人魚等)
簡易長文表示
ピクチャーやイベントに残像
イベントに立体的な影
文章のスクロール表示をマスク
自動斜め移動(坂、横向き階段上の移動など)
タッチ後の目的地を表す軌跡を非表示
ピクチャのドラッグ移動
BGM逆再生
メッセージウインドウの行数を変更
任意のメッセージを画面上にポップアップ
一人称等をスイッチと制御文字で変更
ショップで右に表示される装備した時の数値が一番効果のあるステータスで表示
豪華画面エフェクトの詰め合わせ
メッセージウィンドウ拡張

その他
プラグインまとめ読み込み
タッチ移動で『通常キャラの下』イベントを通り抜け可能に
セーブファイルの軽量化
よりばらけたランダムな変数を取得
メタ手抜き
半透明テキストの透明度を変える
セーブデータのインポートとエクスポート
プラグインの一覧を取得
片手操作向けキー設定
ver1-5-0以降のロード時の遠景のちらつき対策
ゲームパッドの切断を報告
デバッグ支援
プラグイン40枚入りデッキ~タケノコ王国の野望編~
クロスゲートで作ったプラグイン集1
クロスゲートで作ったプラグイン集2

目次その1その2その3その4その5チョイ技/情報/講座

拍手[0回]

RPGツクールMV ミニゲーム作成講座
「タイミングよく決定キーを押す」の時間です。

簡易的なゲージの作り方になります。
上下または左右に往復し、特定の範囲にある時決定キーを押すと入力成功!
という簡単なゲームが作れます。

例えば
・釣りゲーム
・ゴルフゲーム
・野球ゲーム
えとせとら

サンプルプロジェクトには「だるまおとし」っぽいのが入ってます。

サンプルプロジェクトのダウンロード

細かいことは、プロジェクトファイルを見てもらうことにして
ここでは、考え方を書いてきます。

だるま落としゲームの仕様書を作ります。

--------------------------------
・決定キーを押すと、ハロルドがコマを蹴飛ばしだるまを落とします。
・決定キーを押すタイミングによって、成功と失敗に分かれます。
・タイミングは上下に動くバー(飛行船)の位置によって取得されます。
--------------------------------

終わり。
仕様書ができました。

どこから作っていくかを考えます。

--------------------------------
①上下に動くバーを作る
②決定キーを押すとバーの位置を取得するイベントを作る
③ハロルドを動かし、コマを動かし、だるまを落とすイベントを作る
--------------------------------

この順番で作ることにします。

バーの見た目は、好きなように彩るとよろしいでしょう。
ここでは、飛行船の画像と、マップチップの適当なもので作りました。
バーを動かすイベントは、飛行船の自立移動の項目で制御します。
するとあら不思議! ほっといても勝手に上下に動いてくれます!
状況に応じてとめたい場合は、スイッチでイベントページを切り替えます。

というわけでバーができました。
次に、決定キーを押すと、バーの位置を取得するイベントを作ります。

決定キーの入力を取得する方法は、大きく分けて二つ考えられます。
一つは、プレイヤーを動かして、スイッチになるイベントを調べさせること。
もう一つは、並列処理イベントを使って、プレイヤーの入力を監視する方法です。

サンプルのプロジェクトには、それぞれのやり方が書いてあるので
参考にしてください。

さて次の問題は、どうやってバーの位置を取得するかです。

まず、イベントの現在位置を取得します。
今回のように、1マスだけの判定なら
取得した位置をそのまま、判定に使ってもいいのですが
範囲が広い場合は、条件分岐が複雑になるので
リージョンの力を借りることにします。

リージョンは、マップパレットの「R」タブから選択して
マップに描画できるチップです。
通常、マップの設定からランダムエンカウント用の出現範囲に使用されます。
これを活用して、イベントがある位置のリージョン番号が
特定の番号なら、OKとします。

判定ができたら、後は「移動ルートの設定」コマンドを使って
それぞれのイベントにそれぞれの行動を入力するだけ!
簡単ですね!

詳しいやり方は、サンプルプロジェクトを見てください。

この技法は覚えておくと色んなところで活用できると思います。
今回はタイミングよくキーを押すためのバーでしたが
応用すれば、タイマーイベントなんかも作れますね。
(ワンコが画面を一周してくる間に何かを集めるとか)

ワンボタンでちょこっと遊べるミニゲーム。
あなたも作ってみませんか?

拍手[4回]

前回に引き続き、今度は屋根のオートタイルを作ります。

①四角4つのキャンバスを開き、屋根の4つの角を
 それぞれ配置していきます。


②「AUTOTILE(オートタイル)」と書かれたキャンバスを開き
 今作ったタイルを下4マスに配置します。
 (最初からオートタイルのキャンバスに配置していってもいいです)
 下4マスがメインのパーツです。
 正方形や長方形を描く場合は、このパーツだけで描けます。
 左上の1マスは、パレットにどんなパーツかを表示するダメのもので
 わかりやすければどんな絵を入れていても大丈夫です。
 右上の1マスは、正方形や長方形以外の形を描くときに使われる補助パーツです。
 まずは、この状態でタイルセットに保存してみましょう。

③はい、また問題が浮き彫りになりましたね。
 レンガの部分はまた、影が悪さをしているようなので
 影のない部分を貼り付けることにしましょう。

 そして四角以外の形にしたときの足りないパーツも
 なんとなくどういうものが必要か、ピンときたでしょうか?
④では、一番左上を埋めてみましょう。
 今回は、一番左端の1マス用キャンバンスを開いてください。
 パレットから一番右下のパーツを選択し
 一番左上のグリッドに合わせて配置します。


 これを、オートタイルに貼り付けて、どうなったか見てみましょう。


⑤はい、角が一つ埋まりました!
 こんなに簡単にできるなんて、今回はとてもラッキーです!

⑥若干色合いの違う線は、後でペンツールで調整するとして
 他の角も同じ要領で作っていきます。
  

⑦はい、ぴったり埋まりました!

 補助パーツの上2つ分の色の違う部分を
 ペンツールで調整すれば完成です!
 今回は、茶色い横線を1本引くだけで調整できました。
 非常にラッキーです。

というわけで、壁・天井共に完成です!
今回作ったオートタイルは、素材のページで配布中!


いきなりオリジナルのオートタイルを作るのは難しいけど
素材を改変することで、なんとなくやり方がわかってもらえたでしょうか?


他のサイトさんのオートタイル作成講座もご紹介しておきますね。

・RPGツクールMVのヘルプ内
 資料集→素材企画に、タイルセット詳細があるのでチェック!
 ほぼ同じ内容ですが、公式サイトの活用講座にも掲載されています。
BB ENTERTAINMENT BLOGさんの「オートタイル研究

拍手[0回]

RPGツクールMV向け、補助ツール
タイルセットビルダーSAKAN」を活用して
オートタイルを作ってみる講座です。
SAKAN以外の一般の画像編集ソフトでも
大体同じような流れで作れると思います。

今回は、デフォルトのタイルセット005番「近未来外観」の
Cタイルに入っている、壁用のタイルをオートタイルにしてみるよ。

①SAKANで編集できるパレットは、RPGツクールMVのプロジェクトファイルに
 設定されているものと、SAKANにもともと収録されている素材と
 ユーザーパレットに登録したパーツのみです。
 ツクールのプロジェクトファイルで、タイルセット設定する方法は
 ツクールのヘルプを確認してください。

 RPGツクールMVを起動し
 編集したタイルセットの入ったプロジェクトファイルを開きます。
 編集する前に、プロジェクトファイルのバックアップを取るか
 編集中に間違えて上書きしても困らないプロジェクトを新規作成する
 などして使用してください。
 すでに、メニューアイコンにSAKANが表示されている場合は
 そのままSAKANを起動します。

 そうでない場合、ツクールのメニューバーの「ツール」から
 「RPGツクールMVツール」を選択し
 「見つかったツール」から、「追加済みツール」にSAKANを追加します。
 ツクールと上手く連携がとれず、見つからない場合はサポートに相談してください。

 とりあえずの対処方法としては、プログラムの一覧からSAKANを独自に起動し
 SAKANのメニューバーの「ファイル」から「MVプロジェクトを開く」で
 プロジェクトデータを選択してください。

②SAKANを起動し、プロジェクトファイルが読み込まれたら
 パレットの「MV」タブを開き、タイルセット005番を選択し
 下のタブから「C」タイルを開きます。
 ←クリックで拡大するよ。

③メニューバーの「表示」から「グリッド」にチェックを入れ
 グリッドを表示します。
 グリッドは1マスを4つに区分してくれます。
 メニューバーの「ツール」から「オプション」を選ぶと
 透明色(キャンバスの色)を変更できるので、白っぽいタイルを編集する時は
 変更しておくと便利です。

④天井はややこしいので、まず壁のオートタイルから作ります。
 キャンバンスは、四角4個分を選択してください。

⑤壁の左端の真ん中のチップをクリックして、キャンバスの左端中央に配置します。
 (スタンプを押す要領と言えばわかりやすいのかな?)


⑥同じように右端のチップも、キャンバスの右側中央に配置。


⑦「ユーザー」タブをクリックし、「追加」ボタンを押すと
 今作ったタイルが登録されます。
 追加しないと流用できないので、必ず追加してください。


⑧編集の途中で、SAKANを終了したくなった場合は
 ユーザーパレットを保存しないと、次に起動したときに今作ったタイルが消えてしまいます。
 画面右下のフロッピーディスクのようなアイコンをクリックするか
 メニューバーの「ファイル」から「ユーザーパレットをエクスポート」を選択し
 保存先の「フォルダ」を選択すると今登録したタイルのデータが保存されます。
 これで、いつでもこのユーザーパレットを呼び出せるようになりました。

⑨キャンバスを白紙に戻します。
 消しゴムで消してもいいし、別の大きさのキャンバスを選ぶと
 消しますよって言われるので、はいを選ぶと綺麗に消えます。
 キャンバスを変更した場合は、またさっきと同じキャンバスを選択してください。

⑩さっきと同じ要領で、今度は左端の一番下のチップと右端の一番下のチップを
 それぞれ下の段に配置し、ユーザーパレットに追加します。

⑪キャンバスを白紙に戻さず、そのままの状態で最初に追加したパーツを選択して
 そのまま配置します。
 パーツをユーザーパレットに追加し
 つなぎ目が若干ズレますので、気になる人はペンツールを使って修正を加えます。
 (修正したら、パレットへの追加をお忘れなく)


⑫キャンバスを白紙に戻し、今度は上の左右の端を上の左右に配置しますが
 ここからが問題です。
 オートタイルの規則により、グリッドの真ん中2マスはループに使用されているので
 このまま、さっきのファイルとあわせただけだと、2段以上の高さの壁が描けません。
 試しにタイルセットにはめ込んでみましょう。
 「書き出す」タブをクリックし、書き換えたいタイルセットを選びます。
 今回は「近未来外観」の「A4」のタイルを書き換えてみます。
 ユーザーパレットから作ったパーツを選択し、タイルセットに配置したら
 画面下部にある「名前をつけて保存」ボタンを押して保存します。
 ファイル名は変えてもいいし、タイルセットをセットしなおすのが面倒な場合は
 SF_Outside_A4.pngに上書きしてください。
 ツクールMVを起動していない場合は
 起動してSAKANと同じプロジェクトファイルを開き
 さっきのタイルセットをセットして、マップを描いてみましょう。


⑬実際に配置してみると、別の問題も明らかになりました。
 3段以上の場合の問題はおいといて、先に「縦線が入っちゃうぞ」問題を片付けましょう。

 どうやからこれは、影の部分がループ用のタイルにかぶってしまっているから
 入ってしまうようです。

 線を消すためのパーツを作りましょう。
 まず、パレットから真ん中用のパーツを2つ並べて配置します。

⑭不要な部分を消しゴムで消します。
 基本的には、グリッドの線に沿って消すと良いのですが
 下の方は影の問題があるので、少し残します。


⑮先ほど作ったパーツの上に、今作ったパーツを乗せて
 タイルセットに保存して、線が消えたか確かめてみましょう。
 はい、謎の縦線が見事に消えました!
 (土台に微妙な線が入っているのが気になる人は、ペンツールで調整してください)


⑯3段以上へ対応させる修正を始めます。
 とりあえず、両端の柱の部分から調整します。
 一番初めに作ったパーツの、柱の部分だけを残して、消しゴムで消します。
 グリッド線にそって消すといいです。
 それを、さっき作ったパーツの上にのせれば、柱のループ問題は修正されます。

 → 

⑰いよいよ、上部の模様ですが、上の模様を使うか、下の模様を使うかを決めます。

 上の模様の場合は、比較的簡単です。
 グリッドの線に沿って不要な部分を消しゴムで消したら
 さっきのパーツの上にのせて完成。


⑱下の模様を使う場合は、少し調整が必要です。
 大きな問題は、街灯があるということ。
 これを極力残すために、グリッドを無視して少し内側に削ります。
 さっきのパーツの上に、載せるときに、少し下にずらして配置します。
 もちろん、柄の部分がグリッドの線を越えてはいけません。
 →

これで、壁は完成です。
屋根の部分は、その②へ続きます。

拍手[0回]

オススメGAME
広告枠
アクセス解析

ATOM  
ATOM 
RSS  
RSS 


Flash Game 館

ソフトウェア制作講座






Copyright ©   YUWAKA'S SOFT   All Rights Reserved
Design by MMIT / TemplateB3  Powered by NINJA TOOLS
忍者ブログ [PR]