【サイトについて】
* RPGツクールMVを使った、ゲームを一層楽しくするためのアイディアや、豆知識、プラグインなどを紹介していきます。あくまで個人の考えに基づく記事ですので、参考程度にお読みいただければ幸いです。
スポンサーサイト
0

    一定期間更新がないため広告を表示しています

    | - | |- |
    私的・邪道バトルの作り方
    0

      RPGといえばボスとの熱いバトル。

      主人公達の行く手に立ちふさがる数々のボスモンスター達。

      ある時はライバルキャラ、

      ある時は憎めない敵軍の中堅キャラ、

      そしてある時は絶対討伐不可能な不死身の強敵キャラ。

      剣と魔法が入り乱れ、毒や呪い、石化の魔法などが飛び交う……、

      まさに「王道の戦い」ですよね。

       

      ツクールやウディタなどで個人でも簡単にRPGが作れてしまう時代ですから、王道バトルものというのは非常に数多く存在します。そんな中で私はいつも自分のゲームだけにしか無い要素とか、珍しい要素を取り入れたりしてみて、「単にゴリ押して戦うだけじゃ無いRPG」を作りたいなと常々思っています。

       

      たまには変わったバトルを作ってみたい

      そんな人々向けの記事です。

       

      ただ、邪道なバトルは非常に好き嫌いが分かれる傾向の様で、「面倒くさい事を考えさせられるならひたすらボタン連打でゴリ押し出来た方がサクサクでいい」とか「そういうのは10あるボス戦の中で1あるぐらいで十分」みたいな意見も少なくない様です。やり過ぎは良くないのかなと思いつつも、どんどん取り入れたいのが私の性分で、、。

       

      具体的なバトルのアイディアについて色々ここで書き並べてしまうと、自分の次回作品に使えなくなってしまいそうなので(笑)、今回は私がいつも実践しているアイディアの出し方について、さらっと綴ってみたいと思います。

       

      さて、画面は何の変哲も無い、いつものツクールMVのコウモリです。

       

       

      とりあえず、この2匹をボスと考えましょう。

       

      プレイヤーさんが最初にこの画面を目にした時、どんな印象を受けますか?

      まず考えます。

       

      Aさん「2匹なら全体魔法で一掃の方が楽かな」

      Bさん「俺は一匹ずつ倒す派だな、全体魔法はコスパが悪い」

      Cさん「コウモリだから光属性の魔法が弱点じゃないかな」

      Dさん「宙を浮いてるから地属性の魔法はまず効かないだろう」

      Eさん「吸血して来そうだよね、HP回復されるの厄介だな」

       

      色々あると思いますが、おそらくAさんからEさんまでの共通認識は、

       

      「どっちのコウモリも同じステータスだろう」

       

      という事ではないでしょうか?

       

      「常にプレイヤーの裏をかく」、というのが底意地の汚い私のやり方です。

       

      この二匹が全く同じ敵だと、いつから錯覚していた?

       

      データベースではこの二匹のステータスは以下の様になっています。

       

       

      左側のコウモリは魔法攻撃のみ。魔法力が強く、魔法防御力に優れています。

      そのかわり物理には柔らかいという弱点が存在します。

      右側のコウモリは物理系の攻撃のみ。物理攻撃力が強く、防御力に優れています。

      そのかわり魔法に柔らかく、体力が低いという弱点が存在します。

       

      ヒントがあってもいいとは思います。村人に「森に棲む二匹のコウモリは、魔法が得意な兄コウモリと、物理が得意な弟コウモリだそうじゃ」とでも言わせておけば良いでしょう。

      しかしあえて言わないというのも選択の一つで、実際戦ってみて、プレイヤーがこの法則に気付いた時、そこにある種の爽快感が生まれると思いませんか。私なんて難しいボスの攻略法に気付くとドヤァッ!ってしたくなるタチなので。

      物理の敵からやった方が楽か、それとも魔法の敵からやった方が楽か。プレイヤーに「考える」「選ばせる」「悩ませる」という行動を与えることが出来ますし、単なるゴリ押しで終わってしまうだけの戦闘ではなくなります。

       

      そこまで変わったバトルではないかも知れませんし、ものすごく簡単な例で紹介しましたが、時にプレイヤー心理の裏をかいたボス戦があっても、良い刺激になって面白いと思います。

       

      コウモリ二匹だと思ったら重なって表示されてるだけで実は四匹居るとか、

      ただのコウモリだと思ったら突然ドラゴンに変身して炎を吐くとか、

      一匹倒したらもう一匹のコウモリが逃げてしまう様な群れ習性のコウモリとか、

      ダメージを与えるごとにコウモリが増えていくとか、etc..

      ただコウモリを目の前にどかんと出すだけではなく、いろんなアイディアで戦闘を彩ってみるのも楽しいでしょう。

      | 戦闘 | 14:00 |- |
      分かりやすい戦闘づくり
      0

        サイドビューバトルで敵が複数居る場合、「今どいつが攻撃してきたの!?」かが分かりにくい事があります。

        これは敵の行動時にピカッと光る演出が速い&薄いからだと思います。

         

        行動時に敵が一歩前に動くプラグインはありますが、個人的には敵はその場から動かない方が好きなので、今回は「光る演出」を分かりやすくする方法をとりたいと思います。私がサイドビュー作りのお手本にしているFF6では、敵の行動時に濃いフラッシュが二回ピカピカッと光るので、とても分かりやすいです。

         

         

        ではどこを変えればこのエフェクトを変更出来るのか。

        「敵の行動時の光る演出」について、ツクールデフォルトのソース(v1.3.1)ではこの様になっていました。

         

        rpg_objects.js 4395行目

        Game_Enemy.prototype.performActionStart = function(action) {
            Game_Battler.prototype.performActionStart.call(this, action);
            this.requestEffect('whiten');
        };

         

        敵行動開始時に「whitenしろ」って感じですね。

        whitenとは何ぞやというと「グラフィックの色調を白くしろ」という命令です。

         

        rpg_sprites.js 1057行目

        Sprite_Enemy.prototype.startWhiten = function() {
            this._effectDuration = 16;
        };

         

        16フレーム分の時間で敵を白くしています。

        この値を少し大きくしてやる事で、行動開始時の敵のフラッシュが緩やかになり、

        「あ、こいつが攻撃して来たんだな」という事が分かりやすくなります。

         

        大きくし過ぎると↓次の敵行動開始時にも白いままなので、24〜32ぐらいが最適値ではないでしょうか。

         

         

        敵の行動時は白じゃなく黒にしたいんだという場合は、

         

        rpg_sprites.js 1124行目

        Sprite_Enemy.prototype.updateWhiten = function() {
            var alpha = 128 - (16 - this._effectDuration) * 10;
            this.setBlendColor([255, 255, 255, alpha]);
        };

         

        このsetBlendColorの255の数値をいじってみてください。

        0,0,0にすれば黒く光ります。

         

        FF6の様に「敵の行動時に敵を点滅させたい!」という場合は、

        こんな感じで書いてやると、チカチカッ!バシッ!って感じになります。

         

        rpg_sprites.js 1057行目

        Sprite_Enemy.prototype.startWhiten = function() {
            this._effectDuration = 20;
        };

         

        同じくrpg_sprites.js 1124行目

        Sprite_Enemy.prototype.updateWhiten = function() {
            var alpha = 128 - (16 - this._effectDuration) * 10;
            this.setBlendColor([255, 255, 255, alpha]);
            this.opacity = (this._effectDuration % 10 < 5) ? 255 : 0;
        };

         

        敵にダメージを与えた時の点滅と同じものを、行動開始時演出に加えたものです。

        いかがでしょうか。結構分かりやすくなったと思います。

         

        | 戦闘 | 11:07 |- |
        プラグイン「MOG_BattleHud」を使う際の小ネタ
        0

          Moghunterさんの戦闘インターフェイス一新プラグイン「MOG_BattleHud 」を使う際の小ネタです。

          プラグインを適用した後、戦闘画面はこういうインターフェイスになってますよね。

           

           

          注目する点はこのHP・MP・TPのゲージ表示です。

           

           

          HPがブルー、MPがグリーン、TPがオレンジになってますよね。

           

          しかしデフォルトのメニュー画面やステータス画面では、

           

           

          HPがオレンジ、MPがブルー、TPがグリーンになっているんです。

           

          すっかり忘れていましたが、この点について

          「統一性がない」とレビューで指摘された事がありまして、

          今回、戦闘画面と同じ色に統一する事にしました。

           

           

          どうでしょう。

           

          書き換え方ですが、

          場所はrpg_windows.jsの199行目あたりからのhpGaugeColor1〜tpGaugeColor2までです。

           

          独自プラグインでは以下のコードを足してください。

          HPが23番色、MPが3番色、TPが20番色です。

           

              Window_Base.prototype.hpGaugeColor1 = function() {
                  return this.textColor(23);
              };
              Window_Base.prototype.hpGaugeColor2 = function() {
                  return this.textColor(23);
              };
              Window_Base.prototype.mpGaugeColor1 = function() {
                  return this.textColor(3);
              };
              Window_Base.prototype.mpGaugeColor2 = function() {
                  return this.textColor(3);
              };
              Window_Base.prototype.tpGaugeColor1 = function() {
                  return this.textColor(20);
              };
              Window_Base.prototype.tpGaugeColor2 = function() {
                  return this.textColor(20);
              };

           

          些細な点ですが、こういう小さな補正が意外と大事だったりしますよね。

          BattleHudプラグインをご利用の方は一度チェックしてみてください!

          | RPGツクールMVプラグイン | 13:13 |- |
          私式ゲームの作り方
          0

            今朝メールで「どうやったらそんなに早くゲームを作れるのか」という質問を頂きました。

            製作スピードを自慢したい訳では無いのですが、他作者さまからも自分が1本作っている間に2本もリリースしている、という様な感じで、よく驚かれます。

            しかし夢現さんに掲載されていたレビューで「製作日数が足りない。急ぎすぎるあまり雑になっている」というものがあって、速い事が必ずしも良いことに繋がらないというのは事実だと思います。

             

            思うに、私の作り方って他作者さまの作り方と全然違うのかな、と思いました。

            ブログを最初から読んでくださった方々にはご存知の通り、私はゲーム製作暦自体まだ8ヶ月とかです。「どういうプロセスでゲーム製作を進めるか」などという基本的ルールも分からないまま、ツクール本体をゲットし、色々と出来ることを試しながら、思いつくままにキーボードとマウスを動かしている、といった具合です。

             

            今回「実際私がどうやって今までゲームを作ってきたのか」、

            私的ゲームの作り方について説明したいと思います。

             

             

            工程1 面白いアイディア、意外な結末を用意する

             

            「こんなゲームを作りたい」「こういう最後にすれば皆驚くんじゃないか」といったアイディアをとにかくメモします。

            「実は勇者達4人は、全部勇者が作り出した妄想キャラだった。4人で戦ってると思っていたのは1人だけで戦っていた。だから村人全員はパーティーメンバーの事をスルーしていた」といった様な事を、EMEditorにひたすらメモします。

            とりあえずはそれだけです。

            ここまでなら1日もあれば考えられると思います。

             

             

            工程2 登場人物を考える

             

            そのアイディア・その結末にするための登場人物を考えます。

            人物設定を考える時は、絵が描ける人は顔を描きながら、描けない人はキャラクター生成ツールで作ったり、好きなアニメキャラの性格を参考にしたり、声をあてたい声優さんを思い浮かべたりして、キャラを創造します。

            ちなみに「ラハと魔法の園」構想当初のメモが残っていました。

             

             

            もちろん、完成版とは設定が多少違っています。

            作っていくうちに「そっちの方が面白いんじゃないか」と思った事は、シナリオを作っていく上で修正します。

             

             

             

            工程3 登場人物をとりあえず全員入力する

             

            ここでツクール本体を開いて、登場人物を入れていきます。名前のあるキャラ全員分です。

            仲間に入る入らないは関係無いです。

            とりあえず何人居て、どういう立場の人間なのかを本体上で整理しておくためです。

             

             

             

            工程4 シナリオを作る、ただし簡易

             

            ここが他の作者さまと大きく違っている点なのかも知れません。

            私は簡易チャートだけをメモに書き起こして、

            実際キャラクターを立たせたり細かい台詞は、その場で考えて本体に直接入力していきます。(後述)

             

            「ラハと魔法の園」製作当初のチャートはこんな感じです。

             

             

            OPから第一章までの原案は、たったこれだけです。

            これだけあれば私には十分です。

             

             

            工程5 マップを作る

             

            一気に全マップを作るのではなくて、シナリオに沿って一個ずつ作っています

            つまりシナリオ上医務室が必要になったら医務室マップを作り、購買が必要になったら購買マップを作ります

             

             

            色々配置し過ぎると重くなるかなぁとか、私自身「色々配置しすぎるとどこを歩いていいのか分からない」事が多いので、シンプルさ・分かりやすさ重視です。

            空間把握能力がなくてマップデザインが上手くないため、マップの作り方の点ではMV作品の中でワーストに入るのはまず間違いないと思います。

             

             

            工程6 リアルタイムにイベントを作っていく

             

            工程5でマップが出来たら、すぐにイベントを配置します

            戦闘もこの時に作ります。

             

            工程4の簡易チャート、ヒロインとの出会いのシーンは

             

            「戦闘 魔法生A B

             サリィにポカルとベカという魔法を教わる」

             

            この2行だけでしたよね。

             

            まずデータベースの敵キャラ作成画面で「魔法生A」「魔法生B」を作ります。

            ここでは主人公が一撃で倒せるバランスでいいので、パラメータは弱くセット。

             

            続いて敵グループの設定で魔法生A・Bを配置し、ターン0にバトルイベントを作成。

             

            「まったく、ダッサイわね」

            「言っとくけど、この程度の魔法も使えない様じゃ魔法界じゃ生きていけないから」

             

            といったセリフは、この時初めて考えて入力していきました。

            工程2と工程3の段階で既にヒロインのキャラクターは固まりつつあったので、実際こういう場面に出くわしたら彼女はどう動くか、何を喋るか、私の手はキャラクターの思考とシンクロしてキーボードに打ち出したに過ぎません。

             

             

            あとはマップ画面に戻り、中庭にイベントを配置。

            戦闘シーンのイベントを作るだけです。

             

             

            基本的には、あとはこの繰り返しです。

             

            まとめますと、

             

            A. アイデアを考えて、

            B. 簡易チャートを作って、

            C. それに沿ってマップを作り、

            D. 考えながらセリフを入力する

            (以降CとDの繰り返し)

             

            こうなります。

            このまま一気に最後までズバっと駆け抜けます。

             

            というのが私式の作り方なのですが、如何でしたでしょうか。

            速さだけを追求するなら、考えながら打ち込んでいくのが一番速いと思います。

            (だから誤字脱字が多かったり、結構雑な点があったりするわけですが…)

             

            | ストーリー | 21:01 |- |
            ゲームに実装しておくべき3つのこと
            0

              自作品のゲーム実況・配信、レビュー、メールなどで多数レスポンスを頂いたのですが、その中でもゲーム内に実装しておいて良かったと思ったものを幾つか書き出してみました。それが一つあるのと無いのとではかなりゲームに対する見方が変わってくる可能性もありますので、ご参考までに。

               

               

              その1 DirectInputコントローラへの対応

               

              地味にこれが一番多かったかも知れません。

              基本私はMacでゲームをするので対応コントローラが少なくキーボードでプレイするしか無いのですが、大多数のプレイヤーさんWindowsでプレイし、コントローラで操作される例が少なくない様です。

              ツクールMVではデフォルトでXInput方式のコントローラしか対応していないため、DirectInputコントローラに対応するには別途プラグインを入れる必要があります。

               

              ■DirectInput方式のジョイパッドが使えるようになるプラグイン

              http://tm.lucky-duet.com/viewtopic.php?t=705

              Trbさんが作られたプラグインです。

              入れてONにするだけでDirectInputのコントローラに対応出来るのですから、お手軽ですし、是非おすすめです。

              ※YanflyさんのBattleEngineなど幾つかのプラグインで競合を起こしますが、対応版が出ています。基本的には「F5を押してリロードする」という行為をしなければ大丈夫の様です。

               

               

              その2 どこでもセーブ

               

              主に実況者さんに定評のある(?)機能ですね。

              ツクールの大体の作品が元々そうなっているとは思いますが、セーブ出来る場所を制限し過ぎず、出来るだけどこでもセーブ出来る様な状況にしておくと、「やめたい時にやめられる」ので親切です。

              ただし、どこでもセーブ出来るという設計は「詰む可能性がある」事は考慮に入れた方が良いとは思います。以前ラハ二章のボスで詰んだ方がいらっしゃいましたので、「セーブを分けてください」というメッセージをセーブポイントに挟む様にしました。

               

               

              他にもこういう状況が考えられますよね。

              1) 回復手段がなく瀕死の状態でセーブしてしまう

              2) キーとなるアイテムを取り逃して洞窟に入り、洞窟から出られない、でもセーブは出来てしまう

              3) 不具合が発生して進行不能なマップの上でセーブしてしまう

              etc..

               

              特に2)はラストダンジョン等では多く考え得るケースですので、ご注意を。

               

              それにしても昔のRPGでは考えられなかった機能ですよね。頻繁にセーブにアクセスする事がバッテリーバックアップの寿命を短くする事に繋がるとか、すぐ再戦出来てしまう事がゲーム性を損ね作業性を増してしまうとか、その様な理由だったのかも知れませんが、このご時世にわざわざ昔のゲームの様なセーブ仕様にする必然性も無いので、普通にどこでもセーブ出来る様にしておいて良いとは思っています。

              (この画像、実況動画より拝借しました。すみませんっ)

               

               

              その3 ゲームクリア後のお楽しみ要素

               

              面白いゲームをクリアした後、何となく「まだ続きがあるんじゃないか」とか「どこかにお楽しみ要素が!」とか思って、タイトル画面を探してしまうことってありません? で、見つけたら嬉しいですよね。

               

               

              トリアコンタンさん作の「AnotherNewGame」というプラグインを使うことで、クリア後、あるいは好きなタイミングで、お楽しみ要素を追加することが可能です。(紹介サイト

              後日談でもいいですし、スタッフ開発室の様な所に飛ばすことも出来ます。CGギャラリー、NG集、名シーン集……などなど、色んなことに利用できるプラグインなので、もしそういった要素を追加したいという方はぜひチェックしてみてください。

               

              基本的には、この3つです。

              難易度選択や用語辞典なども入れようと思ったのですが、「必須」「推奨」ってわけでもありませんから書きませんでした。

              | RPGツクールMVプラグイン | 10:46 |- |
              テンポのいい戦闘を目指す
              0

                サイドビューバトルのお話です。

                 

                時に皆さん、「RPGツクールMVのデフォルトの戦闘のテンポはどう思いますか?」

                早すぎず、遅すぎず、絶妙なリズム感といいますか、私はなかなか気に入っています。

                 

                 

                今回も、私が個人的に感じている事です。

                特定の作品について言っている訳ではなく、また実装しているゲームの作者さまやプラグインの作者さまを悪く言っている訳でもありませんので、あくまで「初心者の私如きがこんな事を言ってやがるぞ」的な意見として、読み飛ばしていただけると幸いです。

                 

                最近アニメーションの再生レートをMAXにしたり、高速化のプラグイン等を入れて戦闘が早送り出来る作品があるのですが、何となくそれに不自然さを感じてしまいまして、自分の作品では取り入れていません。取り入れるつもりもありません。

                 

                短編では数十回、数百回、長編では数千回の戦闘を要しますよね。

                その戦闘をプレイヤーに「単調」だと感じさせてしまうのは作者の責任です。

                飽きない様にうまく作るのが作者の腕の見せどころといえます。

                 

                しかし

                 

                「途中のレベル上げや、ボスマップまでの雑魚戦は

                 プレイヤーにとって作業だから、早送り出来る様にしよう」

                 

                という発想について、私は「あれ??」と思ってしまうのです。

                 

                「プレイヤーにレベル上げさせる事を単調作業」と思っているのであれば、そもそも雑魚やボスの経験値を増やすとか、いっそレベルの概念を外してしまうという解決策があり、「雑魚戦ってもしかして邪魔なんじゃないか」と思うのであれば、弱い敵はシンボルに触れた途端倒した事にしてしまったり(MOTHERの様な)、ボスのみのRPGにしてみたりと、色々考えられるわけですが、そんな中でキャラやアニメの動きを速くするという解決策は不自然というか中途半端に思えてしまうんですよね。

                戦闘が目まぐるしい勢いで展開され「戦う戦う戦う!ドドーーン!ズガーン!はい終わり!次〜!」。果たしてこれで戦闘を、そのゲームを、楽しめているのかどうかが私には甚だ疑問です。

                 

                キャラの動きが速すぎず、遅すぎず、適度に間があるデフォルトの戦闘テンポ。

                (早回しで不自然な動きをさせるぐらいならいっそそれでいいんじゃないかなぁ、、)

                というのが私の考えです。

                 

                ですが。

                 

                「でもさぁ、高速化しないと、何かもっさりしてて、イライラするんだよね」

                と感じられる作者さんの大多数は、Yanflyさんのプラグイン「Battle Engine Core」を入れている事が多いのでは無いでしょうか?

                戦闘に華やぎを与える素晴らしいプラグインだと思いますが、プラグインをある程度カスタマイズしなければ、イライラする戦闘テンポだと思います。ツクールMVデフォルトの方がはるかにテンポいいです。

                 

                その理由ですが、

                 

                (1) 攻撃の時に敵が一歩前に出る

                (2) スキル発動の時にアニメーション「放射線」がいちいち表示され、それが長い

                (3) 攻撃、スキル使用時に何となくウェイトがかかる様な気がする

                 

                これらが味方・敵の人数分繰り返されるせいで、何となくもっさりしてるのだと思います。

                 

                まず(1)の問題。

                これ、切ってしまっていいと思っています。

                ダメージを受けた時にちょっと下がるのもついでに消してみていいと思います。

                しかしパラメータのStep Distanceを0にすると、敵の前進だけでなく味方の前進まで無くなってしまいますので、Step Distanceは48のままで、敵キャラのノートタグに <Sprite Cannot Move> と書き込むと、敵が動かなくなる様です。

                 

                つづいて(2)の問題。

                あれこそBattle Engine Coreデフォルトの最大のです。

                あのキラーーーン……っていうアニメーション、なにげに2〜3秒ぐらいありますよね。

                魔法を使うために前進(〜1秒)→発動アニメーション(2〜3秒)→魔法アニメーション(1秒〜)→敵にダメージ(〜1秒)と、軽く5秒以上はかかってしまいます。

                味方4キャラが全員一斉に魔法を使うと、それだけで20秒以上。その上敵4匹も一斉に魔法を使おうものならさらに倍。サクサク感を演出するためには発動アニメーションを「放射線」から別の短いものに変更するというのが良いかも知れません。

                 

                (3)の問題ですが、

                以下の行をプラグイン内に加えてみてください。

                 

                Window_BattleLog.prototype.messageSpeed = function() {
                    return 0;
                };

                 

                速すぎる場合はreturn 0の数値を少しずつ上げて調整。

                この(1)〜(3)の実行だけでも、かなりテンポは良くなると思います。

                 

                私はファイナルファンタジー6の戦闘テンポが最も理想的だと考えています。

                人気の市販ゲームのクオリティを参考にして近づける、というのはとても勉強になります。

                キャラの移動速度、アニメーションの表示速度、ダメージポップアップの表示時間、行動間隔……、とても参考になります。

                ぜひ一度チェックしてみてください。

                 

                (ゲーム総合チャンネル様のFF6動画より)

                 

                | 戦闘 | 11:49 |- |
                RPGツクールMVで作品のPVを作る
                0

                  今回はRPGツクールMVで作品紹介のビデオ・・いわゆるPVを作っていこうの回です。

                  つまり「RPGツクールPV」というわけですね。いや、うまくも何とも無いですけど。

                   

                  私は一番最初の公開作品ではiMovieというソフトを使ってPVを作っていたのですが、これがまたとんでもなく面倒でした。適当に良いシーンを録画して、トリミングして、繋いで、途中にフェードイン・フェードアウト効果を入れつつ、後ろにBGMを・・やる事多すぎです。おまけに沢山のシーンをプロジェクト上に置くと重くなりますし、途中で強制終了落ちしようものなら大変です。

                  これが、「ツクールMVの作品ならツクール上でPVを作ってしまえばいいのでは」と思い至った流れです。

                   

                  手順

                   

                  (1) 完成品のプロジェクトを必ずコピーし、そのコピー先のプロジェクトで進めてください。ゲームタイトルも【PV用】とでも付け足しておくといいと思います。PV用にマップだけをコピーしてしまうと、「コピー元のマップ間違えていじっちゃったーー」みたいなトラブルになりかねないので、いっそファイルごとコピーしちゃいましょう。

                   

                  (2) あとは自由に編集してください。

                  PVの一番最初に見せたいシーンをプレイヤーの初期位置にし、自動実行でイベントが実行される様にしてください。

                  場面と場面の間は「場所移動」で繋ぎ、基本的には自動実行イベントだけの状態にします。会話はウェイトを入れて自動でウィンドウが閉じる様にします(ウェイトは¥|もしくは¥. 自動的に閉じるのは¥^を文章の表示内に入れます)。こうすると会話の表示時間が均等になりますので、最終的に録画時間を計りやすいですね。会話送りが手動操作だと時間に誤差が出ますからね。

                   

                  戦闘シーンだけは自分で操作する必要がありますが、これもすぐ終わる様に[戦闘を中断する]コマンドを1ターン終わりや敵のHPが90%になった時など、確実に任意のタイミングでストップ出来るイベントを仕込んでおくと良いでしょう。

                  戦闘中も常にPV用のBGMを流しっぱなしにしたい場合は戦闘BGMをPV用のBGMと同じものにして、戦闘開始時のSEも消しておきましょう。これでずっと流れっぱなしになります。

                   

                  (3) 最後にデスクトップをキャプチャ出来る録画ソフトを使って、ツクールのプレイをそのまま録るだけです。MacならQuickTimeの画面録画機能、Windowsならカハマルカの瞳などでしょうか。

                   

                  手順は以上、この3工程となります。

                  見せたい部分に場所移動してその会話イベントだけ残して残りは削除すればいいので、場面ごとにムービー録画してわざわざ切ったり貼ったりする必要が無いわけです。動画編集ソフトの使い勝手が今一つという場合には是非ご利用ください。

                   

                   

                  PV作りのコツ

                   

                  ここからはあくまで個人的な演出アイディアです。あくまでご参考程度に。

                  ちなみに私はいつもPV作りにはお金をかけています。

                  ここにあるコツをやろうとすると、人によっては手元に数千円〜程度必要になって来ると思います。

                   

                  (1) ボイスを入れる

                   

                   

                  これは作る人・見る人によって好き嫌いはありますが、私はPVには必ずボイスを入れたい派です。

                  目から入る情報だけじゃなく、耳から入る情報でも期待感を煽るためです。

                  たとえ作品内に一切ボイス入っていなくても、PVに入れる事には罪はありません。

                  「PVにもゲームにもボイス要らねえよ」という人は少なくないと思いますが、"多くもない"というのが私の考えです。

                   

                  声優さんは「ココナラ」というサイトを中心に探しています。ちょっとした台詞ならお試しで無料で吹き込んでくれたり、2000円以内でお願い出来たりするので、是非PVでただ映像を流すだけじゃ物足りないなと感じている作者さんは試してみてください。本格的なボイスが入っているとPVを見るだけで一気に商業感が出ますよね。でも蓋を開けてみればフリー。PVを見た人にはお得感満載じゃないですか。

                  しかしここで重視すべきなのは読み方よりもまず音質です。いきなりノイズ交じりのボイスが入ると開始早々閉じられる可能性があります。いかにゲームが良くてもボイスが酷くこもっていたり、携帯電話から聞こえてくる様な音質ですと、ちょっと残念に感じます。学生時代は音について専攻していたので、ある程度の音加工は対応出来ますが、やはりマイクの質・収録環境が全てを左右する事もあり、その辺りは声優さんに要相談でしょう。

                   

                   

                  (2) BGMは一曲もしくは二曲にする

                   

                  劇場で映画が始まる前の「予告編」などを思い出してみてください。

                  そこで流れているBGMは、

                   

                  ・印象の強いBGMが一曲だけ

                  ・最初は明るくテンポのいいBGM、しかし途中から場面が切り替わり盛り上がるドラマチックなBGMに

                   

                  この2パターンが多いのではないでしょうか。

                  わずか3〜5分程度のPVにおいて沢山のBGMを流す事は見ている側のストレスに繋がります。

                  殆どのPVについて既にBGMは絞り込まれていると思いますが、ゲーム内に使われていなくてもPV専用の音楽でいいです。期待感を煽るBGMを一つ、もしくは二つ、入れてみてください。ツクール内でPVを作る場合「BGMの再生」で一曲再生したまま、マップ上のBGMの設定をオフにするだけで流れっぱなしになるので楽ですよね。

                  与太話ですが、劇場の予告編、あれほどPV作りの参考になるPVは無いと思います。だって映画本編より予告の方が面白かったって経験ありません?(ゲーム本編よりPVの方が面白いと言われそうな作品ばかり作っている私です)

                   

                   

                  (3) 大きな文字はピクチャとして表示する

                   

                  重要なシーンに字幕を入れる場合。

                  たとえば、「君だけの物語が始まる……」とか「人類滅亡まであと、7日——」とか「今度の主人公はなんと、オタク!?」とか、映像に重ねて入れたいとしますよね。

                   

                   

                  この手の煽り文は、ツクールの文章表示じゃなく画像で、インパクトのあるフォントを作って、ピクチャの表示でPVに入れてみましょう。透過PNGと呼ばれるフォーマットを使うことで、シーンの上にそのまま文字を重ねることが出来ます。

                  イラストを描いておられる作者さんならこの手の作業は得意だとは思いますが、苦手な場合はこちらもココナラでロゴを作っておられるイラストレーターさんが沢山おられます。相談してみると良いでしょう。お金をかけたくないという場合でも、この手のキャッチをフォントで画像化してくれるソフトは沢山ありますので、ぜひ探してみてください。

                   

                   

                  (4) PVには本編に無いシーンを入れてもいい

                   

                  俗に言う「予告詐欺」と言われるものです。予告と本編が全く同じでなくちゃいけないなんて法律はありません。特に映画にはよくある手法ですよね。予告で主人公が格好良く喋っていたシーンが丸々カットされてるじゃないか!みたいなのが。

                   

                   

                  そもそもラハと魔法の園にはこんなシーン無いですからね。

                  チャタが上級生に炎魔法をぶつけるシーンも無いですし、

                  フーバルト先生が「明日までに魔法覚えてこい」なんてシーンもありません。

                   

                  雰囲気が掴めて、話の本筋さえ違わなければ、PVでは何をしてもいいと思っています。

                  「主人公がPVでは剣を持ってるのに本編ではピストルに変わってるじゃん!」みたいな全然違うのは流石にやめた方がいいと思いますが、「ヒロインとの出会いをPVに載せたいけど、本編を楽しみにして欲しいな〜」という場合は、PV用の出会いのシーンを作ってしまえばいいわけです。

                  一応PVの説明文には「※PVの内容は実際のゲームと一部異なる場合があります」これを載せておけば良いでしょう。でないと、あまりに内容が違いすぎて本当に「PVの方が良かった・・」って思わせてしまいますからね。

                  ゲームとPVを賞に応募する際などは念のため応募事項を確かめておいてくださいね。PVと内容が異なる場合は失格ですなんて書かれていると即落とされてしまいますので、、

                   

                   

                  (5) PVの基本的な流れ

                   

                  これはどんな作品かにもよりますが、ストーリーもののRPGの場合は、

                  大体こういった形でPVが進行すると良いと思います。ご参考までに。

                   

                  シーン1 印象的な言葉、モノローグ、ナレーションで始まる

                    例)「10年前、兄は死んだ。私の目の前で」

                      「かつて魔法が栄えた時代があった」

                      「貴方は最近、泣いていますか?」など

                   

                  シーン2 世界観の説明

                    例) 主人公が大勢の敵軍に囲まれているシーン、

                      船に乗って大航海しているシーン、変わってしまった世界の景色など

                      これは「目で見て伝わる」ことを意識してください。

                      長いあらすじがスクロールで流れる、みたいなのは避けた方が良いと思います。

                   

                  シーン3 主人公達の紹介

                    例)「心優しき少年アムス——」

                      「謎の覆面男マスク——」

                      といった感じで、先ほど(3)で書いたピクチャを使って、主人公達の台詞や動きにあわせて

                      表示してみて下さい。ピクチャ表示のいい所は会話シーンの途中でも

                      ふわっと出せることですね。

                   

                  シーン4 その主人公達のイベントシーン、会話シーンなど

                    例)これはシーン3に混ぜてしまっても良いと思います。

                      「お前がお尋ね者のマスクって奴なんだろ?」みたいな感じです。

                   

                  シーン5 システムの解説や戦闘シーン

                    例)独自で採用しているシステムや、実際に戦っているシーンを入れましょう。

                      見て欲しい機能、グラフィックや特技、魔法などを見せると良いと思います。

                      ラハ園のPVでは本編を楽しみにして欲しかったのでカットしています。

                   

                  シーン6 インパクトのあるシーンを幾つか

                    例)仲間と口喧嘩になって主人公が一人ぼっちになるシーン、

                      魔王を追い詰めるが返り討ちにされトドメを刺されかけるシーン、

                      洞窟探索中に落とし穴にはまるシーン、

                      あるいはド派手なバトルが繰り広げられるシーンから、

                      ドバーーン!とゲームタイトルを表示する、なんてのもカッコイイと思います。

                   

                  シーン7 タイトル

                    例)最初に入れてる人はもう一度ここにも入れていいです。

                      なんとなくタイトルはPVの終わりの方に入れると映画っぽくなりますよね。

                   

                  シーン8 インパクトのある〆の台詞、キャッチ

                    例)PVの最後です。期待感を最大限に煽る台詞やキャッチでPVを締めましょう。

                     「果たしてこの世界は、悪か、正義か」

                     「その先にあるのは、ただ、絶望のみ」

                     「魔法使い達の物語が、いま始まる」

                     「僕たちは誰でも、ヒーローになれる」etc

                     こういうのを声つきで言われると「うおぉぉっ!」ってなりません?(笑)

                   

                   

                  いかがだったでしょうか?

                  参考になるものもあれば、「いやそのやり方は」というものも、もちろん沢山あると思います。

                  ツクールでPVを作る回というよりは、完全にPVそのもののアイディア集みたいになってしまいましたが、これらが作者さまの作品を彩るためのお役に立てれば甚だ幸いです。

                   

                   

                  (参考までに私のPVの制作環境)

                  ツール RPGツクールMV

                  画像編集 Adobe Fireworks CS5

                  音声編集 Audacity

                  収録 QuickTime

                  (※PC内の音声の取り込みにSoundflowerというツールを使用)

                   

                  | RPGツクールMV技術情報 | 16:56 |- |
                  セーブデータにマップ名などを表示する
                  0
                    RPGツクールMVでゲームをセーブした時、
                    データリスト上にはゲームタイトルが表示されますよね。



                    しかしこれは何となく違和感が。
                    タイトルじゃなくて章とか場所とかを表示させたいって方は沢山居るはず。

                    というわけで今回は、セーブした「場所」をリスト上に表示するプラグインを作ってみましょう。
                    表示させたいのは、これです。



                    セーブデータの掲載情報を処理しているのはrpg_manager.jsの413行目〜422行目、DataManager.makeSavefileinfoの中です。
                    表示名を司る変数は $gameMap.displayName(); なので、
                    下記の場所にinfo.mapname = $gameMap.displayName();を書き足してください。
                     
                        DataManager.makeSavefileInfo = function() {
                            var info = {};
                            info.globalId   = this._globalId;
                            info.title      = $dataSystem.gameTitle;
                            info.mapname    = $gameMap.displayName();
                            info.characters = $gameParty.charactersForSavefile();
                            info.faces      = $gameParty.facesForSavefile();
                            info.playtime   = $gameSystem.playtimeText();
                            info.timestamp  = Date.now();
                            return info;
                        };

                    ただし、ここではあくまで「マップ名の表示を定義」しているだけなので、
                    実際にリスト上に「配置」させるための処理は別の場所です。
                    rpg_windows.jsの2837行目〜2850行目、Window_SavefileList.prototype.drawContentsの中です。
                     
                    Window_SavefileList.prototype.drawContents = function(info, rect, valid) {
                        var bottom = rect.y + rect.height;
                        if (rect.width >= 420) {
                            this.drawGameTitle(info, rect.x + 192, rect.y, rect.width - 192);
                            if (valid) {
                                this.drawPartyCharacters(info, rect.x + 220, bottom - 4);
                            }
                        }
                        var lineHeight = this.lineHeight();
                        var y2 = bottom - lineHeight;
                        if (y2 >= lineHeight) {
                            this.drawPlaytime(info, rect.x, y2, rect.width);
                        }
                    };

                    this.drawGameTitleってありますよね。
                    これがデータリストにゲームタイトルを表示させている処理なのです。
                    つまりこの部分を上で定義したものに書き換えれば良いわけです。

                    this.drawGameTitle を this.drawTextに、info を info.mapnameに書き換えます。
                     
                        Window_SavefileList.prototype.drawContents = function(info, rect, valid) {
                            var bottom = rect.y + rect.height;
                            if (rect.width >= 420) {
                                this.drawText(info.mapname, rect.x + 192, rect.y, rect.width - 192);
                                if (valid) {
                                    this.drawPartyCharacters(info, rect.x + 220, bottom - 4);
                                }
                            }
                            var lineHeight = this.lineHeight();
                            var y2 = bottom - lineHeight;
                            if (y2 >= lineHeight) {
                                this.drawPlaytime(info, rect.x + 190, rect.y, rect.width - 192);
                            }
                        };

                    工程は以上です。
                    これで保存して、セーブしてみましょう。



                    うまくいきましたね。
                    これでどの場所でセーブしたのか、分かりやすくなったはずです。

                    カスタマイズ次第では変数と組み合わせて章を表示させたり、選択されている難易度や、ゲームの進行率なんかを表示させたりする事もできますので、この記事を参考に色々試してみると独自のリストが作れるので楽しいでしょう。

                    今回もタイトルを場所に変更するためのプラグインを置いておきます。

                    プラグインをダウンロードする
                    (MapNameinSaveData.js / MITライセンス)

                    ※セーブファイル変更関連は結構デリケートなので、既存のセーブデータや、他セーブデータのレイアウト書き換え等のプラグインとの競合に注意。
                    ※プラグインを入れただけでは反映されません。入れた後にセーブしたデータにのみマップ名が反映されます。
                    | RPGツクールMVプラグイン | 12:13 |- |
                    色んな値を変数に入れよう!
                    0
                      「変数の操作」をする際、「ゲームデータ」を選択すると、各アイテムの所持数やキャラクターのレベル、所持金、座標、歩数、戦闘回数など非常に色んな値を代入する事が出来ますよね。

                      しかしここに無い項目を扱いたい、というケースがしばしばあります。

                      ゲームデータのチェックの下に、「スクリプト」という項目があるのはお気づきでしょうか? これをうまく使うことで、本来は代入出来ない項目を変数に入れることが出来るんです。
                      その一例を幾つかご紹介したいと思います。

                      ■キャラクターのTP
                      むしろ何でデフォルトで無いんだ、って思うんですが、本体機能では代入する事は出来ません。
                      戦闘イベントなどでTPが一定数以上になったらTPを使った必殺技のチュートリアルをコモンイベントで発生させたい、なんて事もあるでしょう。そういう場合は、「変数の操作」で「スクリプト」を選び、以下のスクリプトを書いてください。
                      $gameActors.actor(アクターID).tp

                      これでTPを変数に入れることが出来ます。
                      標準では代入出来ない項目は、スクリプトで代入が出来るのです。


                      ■キャラクターの最大レベル
                      特殊な例かも知れませんが、経験値をもらうイベントなどで「あら、貴方のレベルは20までのはずよ。それ以上は上がらないけどいい?」みたいな事を言わせたいとしますよね。ゲームデータでは最大レベルを取得できないので、これもスクリプトを用います。

                      $dataActors[アクターID].maxLevel

                      ( )ではなく[ ] の中にIDを入れてください。これでアクターの最大レベルを変数に入れる事が出来ます。
                      ちなみに初期レベルを取得したい場合はmaxLevelをinitialLevelに変更してください。


                      ■キャラクターの二つ名やプロフィール、メモ欄の内容
                      ところで「変数」に入れられるのは数値だけ・・なんて思っていませんでした?
                      「変数」は「数」って言うぐらいだから日本語や英語を入れる事は出来ないだろ?なんて思っている方それは間違いです。

                      はーい日本語も問題なく入れられちゃいます!

                      キャラクターの二つ名が「輝きの剣士」だったとして、スクリプトに
                      $dataActors[アクターID].nickname
                      と入れましょう。



                      戦闘の文章表示でこの変数を表示させてみましょうか。



                      敵さんに称号を喋らせることが出来ました。



                      プロフィールの文章の取得は
                      $dataActors[アクターID].profile
                      です。



                      えらく説明口調なコウモリですが、人物紹介などでは使えますよね。
                      ちなみに $dataActors[アクターID].note でメモ欄の内容もそのまんま取得できますよ。
                      「変数に日本語が入る」という事に気付けば創作の幅がぐんと広がりますよね。そもそも「加算」や「減算」なんていう単語が目に飛び込むから数字しか入れちゃダメなのかな?とか思ってしまうんですよね。

                      さて、ちょっと難しくなります。
                      応用編です。

                      ■敵のドロップアイテム情報を表示させる
                      $dataActorsが味方の情報だとすると、モンスターの情報を取得するには??
                      そう、$dataEnemies[モンスターID] を使います。
                      色んな情報が取得出来て、色んな例を書きたい所ではありますが、そろそろ応用させていきましょうか。

                      例えば「モンスターのドロップアイテム名を表示させたい」としますよね。
                      「コウモリはポーションを1/3の確率で落とすらしいですよ!」なんて言わせてみても面白いかも知れません。

                      $dataEnemies[モンスターID].dropItem[0].dataId
                      これでその敵キャラリストの1番目にセットされているドロップアイテムのアイテムIDが取得できます。

                      $dataEnemies[モンスターID].dropItem[0].denominator
                      これが確率が格納されている変数です。1/xのxですね。
                      普通に設定していると1/xの1は固定なので、以上2つの値さえ取れればドロップアイテム情報は表示させられます。

                      「よし、これで表示できるんだな」と言いたい所なのですが、このままだとドロップアイテムIDが表示されるだけです。「1/3の確率で3を落とします!」なんて言われても「は?」ってなっちゃいますよね。
                      そこで、アイテムIDをアイテム名に変える、という処理を加えなければなりません。

                      $dataItems[アイテムID].name

                      で、そのアイテムIDのアイテム名が取得できますので、アイテムIDの部分に上の構文を丸ごとカッコで入れます。

                      $dataItems[$dataEnemies[モンスターID].dropItems[0].dataId].name

                      変数の中に変数を入れるメージですね。

                      ちなみに取得した情報を使い回さない場合は、変数を使う必要は全くありません。
                      変数を使えば、文章の表示の制御文字 ¥V[変数ID] で取得できるというだけの話ですので。

                      キャライベントを作成し、イベントコマンド「スクリプト」を使ってそのまま入れてもOKです。

                      $gameMessage.add($dataEnemies[1].name+"は");
                      $gameMessage.add($dataItems[$dataEnemies[1].dropItems[0].dataId].name+"を");
                      $gameMessage.add("1/"+$dataEnemies[1].dropItems[0].denominator+"の確率で落とすわ。");

                      こう書くと、



                      てな感じで、情報屋さんの出来上がりです。
                      モンスターの名前が変わったり、落とすアイテムや確率が変わった時には、わざわざ「文章の表示」から固定値を書くより便利ですよね。

                      いかがでしょうか。変数に日本語が代入できたり、データベースの情報が取得できると分かれば、かなり面倒な処理が半減されると思います。ぜひ色々お試しください。

                      | RPGツクールMV技術情報 | 09:47 |- |
                      シンボルエンカウントに挑戦
                      0
                        現在、中編作品を1本製作中です。
                        諸事情によりタイトルも内容もキャラ名も立ち絵も明かせず語れる事は殆ど無いのですが、今回試みた戦闘システムについてのみ、少し綴ってみようと思います。

                        従来の作品と違って、今回「シンボルエンカウント方式」の戦闘に挑戦してみました。



                        ランダムエンカウント方式の戦闘が出現率によってプレイヤーにストレスを与えるシステムだとすると、シンボルエンカウント方式の戦闘は「作者にストレスを与えるシステム」といっても過言では無いかも知れません。
                        ツクールMVではプラグインが使えるおかげでストレスは半分に抑えられていますが、考える内容は倍以上です。配置する数、配置場所、複数匹に囲まれた時の対応、イベントの修正の手間、一定時間などで敵を復活させる処理etc.. 
                        「そんなの適当にすりゃいいじゃん?」なんて感じであちこちに配置しようものなら、四方を敵シンボルに囲まれて、倒した瞬間にすぐ戦闘、倒した瞬間にすぐまた戦闘…などというランダムエンカウント以上にプレイヤーにストレスを与えてしまう結果に繋がるので、いい加減な配置には出来ません。

                        そしてもう1つの問題がシンボルのグラフィックです。
                        きちんと合った素材を用意しないと「おいおい普通のスライムに当たったはずなのに、出て来たのキングスライムじゃないかよ!」「おいおい、終盤なのに最初の洞窟のコウモリがまだ飛んでるのかよ」てな事になるので、なるべく合わせる工夫をしたいです。モンスターのキャラ素材と戦闘グラフィック素材がセットになっている物って本当に少ないんですよね。

                        とにかく大変で大変で、ストレスを「作る楽しみ」に変えられる作者さんになりたいものです。
                        | 戦闘 | 13:33 |- |
                        PR