読者です 読者をやめる 読者になる 読者になる

ぼんさいゲーム

RPGツクールMVでゲームを作ったりするブログ

(変数)番のピクチャを色調変更・移動する

会話中に立ち絵をシェイクさせたいと思って。
「ピクチャの移動」とかでやってみたけど、ウエイト入れるとセリフが止まるし、ウエイト入れないと上手く動かない。

セリフのキー待ちとは関係なしに、ピクチャをフラッシュさせたい!
と、いろいろ試したら「並列処理」で実装できた。

「マップ上のイベントページで、変数にピクチャ番号を入れる⇒コモンイベントでフラッシュさせる」という形になりました。

マップイベント側

◆ピクチャの表示=#1
◆変数の操作:変数1 動かすピクチャ番号=1
◆スイッチの操作:スイッチ1

コモンイベント側

トリガー:並列処理
スイッチ:スイッチ1
スクリプト:
$gameScreen.tintPicture($gameVariables.value(1),[50,50,50,0],3)
※[赤,緑,青,グレー],フレーム数
スクリプト:
$gameScreen.movePicture($gameVariables.value(1),0,-5,-5,100,100,255,0,3)
※原点,x座標,y座標,x拡大率,y拡大率,不透明度,合成方法,フレーム数

数値を保持して移動だけする

ピクチャの拡大率や不透明度を変えずに、移動だけさせたい場合は下記の方法でできました。(変えたいところだけ数値入れる)

スクリプト:
pic = $gameScreen._pictures[$gameVariables.value(1)];
if(pic){
pic.move(pic._origin, pic._targetX, pic._targetY, pic._targetScaleX,
pic._targetScaleY, pic._targetOpacity, pic._blendMode, 3);
}
※原点,x座標,y座標,x拡大率,y拡大率,不透明度,合成方法,フレーム数

こちらのサイト様を参照させていただきました。
likilia.blog57.fc2.com

ピクチャを全て消去

表示中のピクチャを一度に全て消すときは、スクリプトで以下の一行を書けばOKです。
(100番までのピクチャを消す)

スクリプト:
for(var i = 0; i <= 100; i++){$gameScreen.erasePicture(i)}


ループとかfor文とかホントわからんね・・・!

サイドビュー戦闘中のメッセージ(バトルログ)を消す

「SimpleMsgSideView」

サイドビュー戦闘で、画面上部に「〇〇の攻撃!」とかごちゃごちゃメッセージが出るのを非表示にできます。
「SimpleMsgSideView」というプラグインが、最初からツクールMV本体に入っています。

プラグイン管理から、「SimpleMsgSideView」を追加してON状態にしましょう。
これだけで、バトルログが非表示になります。

f:id:ao385:20170416035318p:plain
こんな感じで使いました。

戦闘中の名前表示を二つ名にする

プラグインを作ってもらいました。

BattleManager._phase という値で戦闘の進行を管理しているそうなのですが、「nullじゃなければ(戦闘中であれば)二つ名を表示」みたいな処理をしているそうです。

こちらに詳しく説明がありますね。まったく分かりませんけど。
qiita.com

最低限リリースを目指す

ちょっとイメージが膨大になってきたので。
現状では実装がむずかしい機能や演出を削った、仮バージョンのリリースに進路変更。

まず最低限の機能でバランスをみてから、少しずつ機能を足していくイメージ。
絵のクオリティなども、いったん考えるのやめる。

トーリーはいま考えている本編の「前日譚」。
主人公と親友が、ヒロインと出会う前の話にする。
二人がこれまでどんな日常を過ごしていたかを描けば、キャラに愛着もわくかも?

主人公イメージ

イメージは菅田将暉さん。
独特の主人公感ありますよね。

あの2.7枚目くらいの雰囲気を絵にするの難しい。
誰か絵描いてくれないかな。

ジェネレーターで軽くイメージをツクってみたら、コレジャナイ感がすごい。
熱血だけど育ちが良さそうな感じを出したい。

親友のイメージ

f:id:ao385:20170423221916j:plain
栗原類さんとピース又吉さんを足した感じ。
こいつはかなりイメージ固まってる。

基本的に覇気がなく、ゆっくり喋る。
でも主人公より色々考えてはいる。

天才肌だけど、主人公としかまともにコミュニケーション取れないからツルんでる感じ。

ヒロインのイメージ

前日譚には出てこないヒロイン。
トリンドルさんのイメージ。

エルフみたいな美少女だけど、人間ぽい性格と表情がある子にしたい。
ハーフエルフ感が出せるといいな。

戦闘おわりに戦績を表示する

戦闘おわりに、その戦闘での戦績を表示させたいと思いまして。

戦闘画面が切り替わってからイベントを呼ぶプラグインはあったけど、戦闘画面のままイベントを呼べるものがなかったのでアレクさんに作ってもらいました。
(戦闘おわりのタイミングは色んな処理があって、思ったより大変だったそう。感謝)

メッセージを4行以上にするプラグインも作って(改変)もらいました。
f:id:ao385:20170412221611p:plain
(メモ)敵HP超える与ダメージは、与ダメージの値がそのまま取得される。

スクリプトでウィンドウ変更・メッセージ位置変更・メッセージ表示をしています。
こちらのサイト様を参考にさせていただきました。

・メッセージウィンドウ変更(1=透過黒)
$gameMessage.setBackground(1);

・メッセージ位置変更(1=中)
$gameMessage.setPositionType(1);

・メッセージテキスト表示
$gameMessage.add("戦闘に勝利!")
$gameMessage.add("合計"+$gameVariables.value(変数)+"のダメージを与えた!")

エフェクトはみんなでツクるプラグインコマンド集の、「指定位置にアニメーション表示」を使っています。
通常バトルエフェクトは敵IDで位置指定するので、敵がいないと表示できないんですね。
このプラグインを使うと、座標指定でエフェクトを表示できます。

戦績プラグイン

数値はトリアコンタンさんの「戦績プラグイン」で取得しています。
これは累計の数値をとるものなので、戦闘ごとの数値をとるためには毎回べつの変数に格納してリセット(0代入)する処理が必要ですね。
アクターごとの与えたダメージを変数に代入 - ツクマテ

このプラグインプラグインコマンドはありません。
イベントコマンド(変数の操作)で、値をとり出して使います。

・使い方
戦闘中の様々な情報を記録していつでも取得可能にします。
戦績として記録に残せるほか、特殊なスキルのダメージ計算式に
組み込んだりすることもできます。

アクターごとに以下の要素を記録できます。

・スキルごとの使用回数(戦闘中のみカウント。他項目も同様)
・全スキルの使用回数合計
・アイテムごとの使用回数
・全アイテムの使用回数合計
・敵キャラごとの撃破回数
・全敵キャラの撃破回数合計
・与えたダメージの合計
・与えたダメージの最大
・受けたダメージの合計
・受けたダメージの最大
・回復したダメージの合計
・消費したMP合計
・消費したTP合計
・戦闘不能回数

値はイベントコマンド「変数の操作」から「スクリプト」で
対応するスクリプトを呼び出して取得してください。

・データベースのアクターIDから取得する場合
$gameActors.actor(1).getSkillUseCounter(2); # アクター[1]のスキル[2]使用回数
$gameActors.actor(1).getAllSkillUseCounter(); # アクター[1]の全スキル使用回数
$gameActors.actor(1).getItemUseCounter(3); # アクター[1]のアイテム[3]使用回数
$gameActors.actor(1).getAllItemUseCounter(); # アクター[1]の全アイテム使用回数
$gameActors.actor(1).getKillEnemyCounter(4); # アクター[1]の敵キャラ[4]撃破数
$gameActors.actor(1).getAllKillEnemyCounter();# アクター[1]の全敵キャラ撃破数
$gameActors.actor(1).attackDamageMax; # アクター[1]の最大与ダメージ
$gameActors.actor(1).attackDamageSum; # アクター[1]の合計与ダメージ
$gameActors.actor(1).acceptDamageMax; # アクター[1]の最大被ダメージ
$gameActors.actor(1).acceptDamageSum; # アクター[1]の合計被ダメージ
$gameActors.actor(1).recoverDamageSum; # アクター[1]の合計回復ダメージ
$gameActors.actor(1).payCostMpSum; # アクター[1]の消費MP合計
$gameActors.actor(1).payCostTpSum; # アクター[1]の消費TP合計
$gameActors.actor(1).deadCounter; # アクター[1]の戦闘不能回数

・パーティの並び順(先頭は0)から取得する場合
$gameActors.actor(n)を$gameParty.members()[n]に置き換えて実行する。
(例)
$gameParty.members()[0].attackDamageMax # 先頭メンバーの最大与ダメージ

・計算式で使用する場合
$gameActors.actor(n)をa(実行者)もしくはb(対象者)に置き換えて実行する。
(例)
a.getSkillUseCounter(5) # 実行者のスキル[5]使用回数
b.getKillEnemyCounter(6) # 対象者の敵キャラ[6]撃破数

・すべてのアクターの合計値を取得する場合
$gameActors.actor(n)を$gameActorsに置き換えて実行する。
(例)
$gameActors.getKillEnemyCounter(4); # 全アクターの敵キャラ[4]撃破数合計

・パーティごとに管理される戦績を取得する場合
$gameParty.gainGoldSum; # 入手ゴールド合計
$gameParty.loseGoldSum; # 消費ゴールド合計
$gameParty.getGainItemSum(1); # アイテム[1]の入手合計
$gameParty.getGainWeaponSum(1); # 武器[1]の入手合計(初期装備以外)
$gameParty.getGainArmorSum(1); # 防具[1]の入手合計(初期装備以外)

「戦闘終了後にコモンイベントを呼び出す」プラグインを使ってみた。

Post Battle Common Events

戦闘修了後にコモンイベントを呼び出せる「Arty_PostBattleCommonEvent.js」というプラグインを試してみました。
イベントが呼び出されるタイミングは、戦闘が終わりマップに戻ったときです。

プラグインの取得

配布ページはこちら。
Post battle Common Events by Arty | RPG Maker Forums
商用利用も可能みたいです。(クレジット表記は必要

リンク先DLページの「download」ボタンを押すと、ファイルがダウンロードできます。
ファイル名が「arty's_post_battle_common_events.js;」になっていたので、「Arty_PostBattleCommonEvent.js」になおして使います。
※「.js.js」にならないように注意。
プラグイン設定でヘルプやパラメータの項目が表示されなかったら、しくじってます。

Common Event Victory

勝利時に呼び出すコモンイベントのIDを指定。

Common Event Defeat

敗北時に呼び出すコモンイベントのIDを指定。

Common Event Abort

バトルが中断された時に呼び出すコモンイベントのIDを指定。

Common Event Always

すべての場合に呼び出されるコモンイベントのIDを指定。
先の3つに共通する処理でしょうか?
どちらが先に実行されるのかは分かりません。

戦闘の仕様を考える

戦闘を評価するゲームを作りたいなと思いまして。
スーパーファミコンの「スレイヤーズ!」のバトルみたいな感じでしょうか。
イメージがふわっとしてるので、要件を整理してみたいと思います。

[イメージ]
・ターン数が少ないと評価される
・ファンができ、ファン好みの技を出すと評価される
会心の一撃を出すと評価される
・痛恨の一撃で死なないと評価される(GJ)
・仲間を守ると評価される(GJ)
・スポンサーアイテムを使うとお金がもらえる
投げ銭とかもある

[必要な作業]
・戦闘にかかったターン数をとる
・ファン数の値を設定する(男性、女性、子供など?)
・アピールするだけの技もつくる(カットイン演出など)
・技には攻撃力などのほかに、それぞれのファンにどれだけアピールできるかの値を持たせる
(アピール技はその戦闘中のみ、特定のファン数を増やす)
・技に派手(華麗)、熱血、ポップ、ダーク、クール、セクシーなどの値をもたせる?
(ファンの属性によりどの層にどれだけ評価されるかが違う)

[メモ]
ターン数とるのはこちら様の⑫でいけそう。
http://ch.nicovideo.jp/terunon/blomaga/ar973025

戦闘の各種数値とれるプラグインは、安定のトリアコンタンさん。
アクターごとの与えたダメージを変数に代入 - ツクマテ

戦闘終了時にイベントをいれる
戦闘勝利直後にバトル画面でイベントを実行したい - ツクマテ

タイトル画面のメニューをボタン(ピクチャ)にする

「MOG_TitlePictureCom」

久々にツクールMVを触り始めまして。
とりあえずタイトル画面を変えたい!と思ったので、試しています。

今回使わせていただくのは「MOG_TitlePictureCom」。
タイトル画面のメニューを画像(ボタン)に変更できるプラグインです。

下記のサイト様からプラグインをお借りしました。
https://atelierrgss.wordpress.com/rmv-custom-title-screen/
利用規約を見たかんじ、商用利用もできそうですね。

他のプラグインと組み合わせれば、下記のようなタイトル画面にできるようです。

※(Animated) Background from Puella Magi Madoka Magica (Anime).
https://atelierrgss.files.wordpress.com/2015/11/titlegif.gif?w=660
https://atelierrgss.wordpress.com/rmv-custom-title-screen/

すごいですね。

プラグインを適用

ダウンロードしたプラグインファイル(MOG_TitlePictureCom.js)を、プロジェクトのフォルダに突っ込みます。
(C:\Users\ユーザー名\Documents\Games\ゲーム名\js\plugins の中)

プロジェクトを開き、上部ツールバーから「プラグイン管理(パズルマークのボタン)」をクリック。
プラグイン管理が開いたらWクリックまたは右クリック→編集で、プラグインウィンドウを開きます。
ウィンドウが開いたら「名前:▼」から先ほど入れたプラグインの名前(MOG_TitlePictureCom.js)を選択。
状態:ONのまま、適用→OKをクリックすると適用されます。

画像を用意する

使う画像は下記のとおりです。(img/titles2/ の中)
太字は必要最低限(ないとエラーになる)

Title.png…タイトルロゴ。816×624px、背景透過。(非表示にもできる)
Cursor.png…カーソル画像。(非表示にもできる)
Command_0.png…「はじめから」のメニュー画像。選択/非選択時、背景透過。
Command_1.png…「つづきから」のメニュー画像。選択/非選択時、背景透過。
Command_2.png…「オプション」のメニュー画像。選択/非選択時、背景透過。
Command_3.png…「クレジット」のメニュー画像。選択/非選択時、背景透過。

ボタンはひとつの画像に「選択時」「非選択時」の絵を縦に並べて入れます。
↓デモで使われている画像はこんな感じ。
f:id:ao385:20170409202318p:plain

プラグイン設定

プラグインウィンドウの「パラメータ」から、表示の設定などができます。

Command pos 1

「はじめから」メニュー画像の位置を指定できます。
画面左上が0,0になります。
※画像の左上が指定した座標になる感じ。
(画面サイズ816×624pxなので、どセンターは408,312から-画像の半分px)

Command pos 2

「つづきから」メニュー画像の位置を指定できます。

Command pos 3

「オプション」メニュー画像の位置を指定できます。

Command pos 4

「クレジット」メニュー画像の位置を指定できます。(たぶん)

Command pos 5~10

追加メニュー画像の位置を指定できます。(たぶん)
普通にやってたら使わないと思う。

Title Sprite

trueにすると、タイトルロゴ(Title.png)がちょっとずらした二重表示になりました。
ずらす位置は「Title Sprite x-Axis」「Title Sprite y-Axis」で指定できます。

falseにするとタイトルロゴは二重表示にならずに、テキストでタイトル表示がでます。

Cursor Visible

falseでカーソル非表示。

true(デフォルト)でカーソル画像表示。
カーソルは画面左上から飛んできます。

飛んできたカーソルの着地位置は「Cursor x-Axis」「Cursor y-Axis」で指定できます。
どちらも0,0にすると、「はじめから」ボタン画像の左下あたりに表示されます。

表示結果

f:id:ao385:20170409211948p:plain
Title Sprite:true
itle Sprite x-Axis:10
Title Sprite y-Axis:10
Cursor Visible:true
Cursor x-Axis:0,0
Cursor y-Axis:0,0
Command pos 1:400,300
Command pos 2:400,400
Command pos 3:400,500

f:id:ao385:20170409212632p:plain
Title Sprite:false
Cursor Visible:false
Command pos 1:400,300
Command pos 2:400,400
Command pos 3:400,500

RPGツクールMV「敵が仲間を呼ぶ」プラグインを使ってみた

HIME_EnemyReinforcements

海外のツクールユーザー、HimeWorksさんが配布しているプラグインを使ってみました。
「敵が敵を呼ぶ」という戦闘の拡張ができます。
himeworks.com

ダウンロード

まずは「DownloadPlugin: download here (right-click and save as)」と書かれているところのリンクを右クリック→保存。
保存したjsファイルを、制作中のゲームのプラグインフォルダに入れましょう。

スクリプトの設定については下記ページをご参照ください。
www.rpgame.xyz

敵グループIDで呼ぶ

基本の使い方は、敵グループIDで敵グループを呼ぶ方法。

まずは親となる(呼び出し元)敵グループを作成します。
親敵グループのバトルイベント内に「プラグインコマンド」で下記のように記入。
(※スクリプトじゃなくてプラグインコマンドです!)

add_enemy_troop 【TROOP_ID】

【TROOP_ID】の部分は、子となる敵グループ(呼び出される)のIDを記入。
子グループに含まれる敵を一度に呼びます。

(例:ID:0001の敵グループを呼ぶ)
add_enemy_troop 1

「条件:ターン0」「スパン:バトル」にすると開幕呼びできます。

グループ内の敵IDで呼ぶ

指定した敵グループ内の、特定の敵だけを呼ぶこともできます。

add_enemy 【TROOP_MEMBER_ID】 from troop 【TROOP_ID】

【TROOP_MEMBER_ID】の部分は、敵キャラのIDを記入。
グループ内での敵キャラIDは、敵グループに追加した順に割り振られます。
(データベース上の敵キャラIDとは異なる)

(例:ID:0001の敵グループ内にいる、ID:2の敵を呼ぶ)
add_enemy 2 from troop 1

敵が死んだら呼ぶ

敵グループの生存をチェックすることもでき、「敵が死んだら補充する」という動作も可能です。
条件分岐のスクリプトに下記のように記入。

$gameTroop.isTroopReinforcementAdded(【TROOP_ID】, true)

(例:ID:0001の敵グループが生存しているかチェック)
$gameTroop.isTroopReinforcementAdded(1, true)

敵キャラごとにチェック

指定した敵グループ内の、特定の敵だけを生存チェックすることもできます。

$gameTroop.isEnemyReinforcementAdded(【TROOP_ID】, 【MEMBER_ID】, true)

(例:ID:0001の敵グループ内の、ID:2の敵が生存しているかチェック)
$gameTroop.isEnemyReinforcementAdded(1, 2, true)

RPGツクールMV「プラグインの追加」のやり方。初心者級

プラグインの導入

RPGツクールMVから復帰した組としては、プラグインとかめっちゃ意味不明です。
それでもだんだん分かってくると、使ってみたいプラグインも出てきました。

というわけで、はじめての「プラグイン追加」のやり方を追ってみましょう。

まずはjsファイルを入手

プラグイン職人さんのサイト等から、プラグインファイルをダウンロードしましょう。
「.js」という拡張子がついているテキストファイル(?)です。

フォルダにぶっこむ

ダウンロードしたプラグインファイルを、制作中のゲームのプラグインフォルダに入れます。
場所は「C:\Users\(ユーザー名)\Documents\Games\(ゲーム名)\js\plugins」の中です。

ツクールで設定

次に、ツクールMVを起動して制作中のゲームプロジェクトを開きます。
上のツールバーからプラグイン管理(パズルマークのボタン)をクリック。

プラグイン管理が開いたらWクリックまたは右クリック→編集で、ウィンドウを開きます。
基本設定の名前:▼から、先ほど入れたjsの名前を選択。
状態:ONのまま、適用→OKをクリックするとプラグインが適用されます。

愛されるより逃れたい

愛されるより逃れたい

RPGツクールMV「敗北可」「逃走可」って何?戦闘の処理

イベント戦闘を作る

久々にツクールMVを起動しました。
みごとにエターナってるんですけどね。

RPGツクールRPGを作らない会会員の私にしては珍しく、戦闘まわりをいじっています。
色々カスタマイズしたいけどサッパリ分からない…。
ひとつずつ潰していきたいと思います。

戦闘の処理

任意のタイミングでイベント戦闘を開始したいときは「戦闘の処理」を使います。
戦闘の処理の設定項目に「逃走可」「敗北可」というチェックボックスがありますね。

これらは一体どういう意味なんでしょうか?

逃走可

「逃走可」にチェックした場合、その戦闘で「逃げる」コマンドが選択できます。
通常の戦闘と同じですね。

逆にチェックをつけないと「逃げる」コマンドがグレー文字になって選択できなくなります。
主人公に逃げられると困る戦闘は、この項目にチェックを入れておきましょう。

敗北可

「逃走可」にチェックした場合、その戦闘で負けてもゲームオーバーになりません。
勝ったときの処理、負けたときの処理をそれぞれ設定できるようになります。

ゲームオーバーになると困るイベント戦闘は、この項目にチェックを入れておきましょう。