検索
現代SFRPG「重力ルーペ/探求リバーブ」

ドラマティックRPG「バンドワゴン」

ハートフルRPG「地図の時間」

ビジュアルノベル「日向と香水」

ノベル×ADV「ストーリーテラー」 title1_2.png
カテゴリ
リンク集
【スポンサードリンク】

【ツクール新作】




【創作全般】






シナリオ制作


設定作り


最近読んでよかった本五選





創作意欲を掻き立てる本


自己管理術


クリエイター向けノウハウ

2019年03月18日

2019/3/7 制作記

スマブラSPの話

スマブラのストーリーモードをプレイしていて感じたことを書きます。

・スピリットが毎戦手に入る
 スピリットとはゲームのキャラ名がついた補助装備のこと。
 ディシディアファイナルファンタジーの装備のようなものですね(スマブラの方が先か)。
 これが毎回勝つごとに手に入るのですが、戦うことに価値が感じられます。
 平たく言うと、お得感があるのですよね。

・勝ち筋の見える難易度
 私、アクション苦手畑の生まれですが、それでもなんとかストーリーモードの表面をクリアできるところまで進めました。
 負ける時は、前述のスピリットを組み合わせて、力押ししたり、ステージの規則性を活かして、知略で勝ったりできるのですね。

本当に素晴らしい作り込みとファンサービスの嵐で、マザーのステージでは背景にネスとアナの会話グラフィックが映し出されていたり、カエルのために鐘は鳴る」の王子が登場したり。
思い出に触るのですよね。

多くの方に愛されている理由が、良くわかりました。
これからも少しずつ、息抜きにプレイしていきます。



フロー理論の話

先日、フロー理論のnote記事が話題になりましたが、スマブラはまさにこの好例だと思います。

なぜ作ったゲームが面白くならないのか?基礎にして奥義「フロー理論」
https://note.mu/kaerusanu/n/nc80f9523bb8e

フロー理論(フロー状態)=夢中になる状態を学ぶことには作者としての効率性、プレイヤーの気持ちを理解するうえで大変意味があると思います。
仕事を早く終わらせて、創作にとりかかるという応用も利きますもんね。

以下「3倍のパフォーマンスを実現するフロー状態 魔法の集中術」という本から、フローについて学んだこと。

●フローフォームを覚える
フローフォームとはフローに入っているときの心身の状態のこと。
これは人によって違います。
心拍数が聞こえる人もいるし、極端に視界が狭くなる、といったこともあるそうです。
それらを言語化してリストアップすることで再現性を高めるのです。

●フローの前に「リラックス」する
リラックスの定義とは以下。

・呼吸が深い
・呼吸が安定している
・姿勢がまっすぐ
・頭が体の真上にある
・瞬きの間隔と強さが安定している
・顔から力が抜けている
・肩から力が抜けている
・五感が研ぎ澄まされている

このリラックスを土台に先のフローフォームを意識してフローを作るのですね。

●フローの仕上げに必要なのは、強い意志と混乱
何でも言えることですがなぜ自分がいまこれをするのかという目的=強い意志は大切です。
漫然とショッピングサイトを眺めているときと、冠婚葬祭や父の日/母の日といったプレゼントするためにショッピングサイトを見ているときでは、集中の度合いが全く違います。
(プレゼント選びにフローは必要ありません。意志が行動の促進材料になるという説明です)

一方「混乱ってなにさ」って感じます。
同書曰く、相反する要素や普通ではない状態をかけあわせることで、思考を軽い混乱に陥らせ、脳を活性化させるとのこと。
GoogleやAmazonといったオフィスで採用されている一見ヘンテコなレイアウトがその例。

ヘンテコなレイアウト
https://www.businessinsider.jp/post-34932

ここ、スマブラをプレイしていて理解できました。
スマブラはステージやスピリットの効果で「左右が反転」「天地が逆転」「画面を霧や動物が邪魔して見えなくする」「透明化」「重力軽減」「地震が発生する」……といった混乱が発生します。
(スピリットで無力化できます)

この「状況に対応している自分」が面白いと気づいたとき、これがフロー状態に入る「混乱」と結びついたのですね。

FFTA2(ファイナルファンタジータクティクスアライアンス2)というSRPG作品では「ロウ」という概念がありましたがこれも似ている体験のように感じます。
(ロウ=「火属性禁止」といったステージごとのお題を守ると、クリア後にボーナスアイテムが得られるというもの)

https://wikiwiki.jp/ffdic/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0/%E3%80%90%E3%83%AD%E3%82%A6%E3%80%91

ただ、示されているボーナスが手に入らないというのは、ペナルティと紙一重。
もう少し面白くできるんじゃないかな、って思います。

ほかにもSRPGでは、敵軍の増援も混乱の一部と言えそうですね。
ローグライクだとモンスターハウス、ファンブル。
RPGだとエンカウントしたら商人だったとか、パルプンテとかが当てはまりそう。

このように脳の仕組みを利用することで、ゲームは面白くなるのでしょう。
先の記事でも書かれていますが、面白いゲームは学習の仕組みのようなものですね。

●フロー状態は使いどころが大事
パワーポイントの天才曰く、パワーポイントは最後まで開かないとのこと。

どういうことかというと……
・最初にテキストベースで全体の構成を書き出す
・作業の流れをイメージしてからパワポを開く
これにより最短時間で最高の資料が作れるということなのですね。

またゾーンやフロー状態は思考を抑え、判断を高速化している状態。
創造的なアイディアを閃かせたいときはリラックスの状態の方が大事。
なんでもフローがいいという訳ではないのです。

処理する仕事が明確なとき、ゲームを組み込むとき、描くべき絵がイメージできているときなどに使うと効果的なのでしょう。
静と動、リラックスとフロー、この使い分けを覚えておきたいものです。

参考に読んだ本:


コンプリートできない問題


ラジアントヒストリアのレビューを読んで感じたこと。

-----
個人的に嬉しいのは、過去に戻れるのでアイテムやイベントを取り逃してもいつでも回収しに戻れるという点です。
ちょっと油断したらすぐアイテムやイベントのコンプリートが不可能になるRPGって多いじゃないですか。
本作はそういった事が無いので是非攻略情報を見ずに新鮮な気持ちでプレイして欲しいですね。
-----

ラジアントヒストリアは主人公の意志で過去に戻ることができ、未来(現在)を変えることができるRPG。

私はコンプリートマニアではありませんが、気持ちはわかります。
あの選択肢、もう一方はどうだったのか、なんて気になり、セーブを分けることもしばしばありました。
その思考が行きつく先は攻略サイト。

たとえばペルソナ4は1日の過ごし方がパラメーターやイベントフラグにも直結しています。
膨大な量の選択肢の解はとても覚えられるものではありません。

そして攻略サイトのお世話になるのですね。
プレイ画面を見ながら、時折攻略サイト。
良し悪しではなく、気持ちが移動するのが勿体ないですね。
ここ、考えどころだと思います。

ちなみにペルソナ4ゴールデン、ペルソナ5からはネットワーク機能(PSN)で他プレイヤーの行動を見ることができるようになりました。
面白さの一部に繋がるような解決策があるといいですね。

参考:


自作品の話

やっと制作記らしい話題。
シナリオを制作しているのですが、難航中です。

あるとき閃いたアイディアがあり、半日以上そのアイディアを発展させていました。
けれど脳内エディタで組んだそのゲームは、面白くなかったのですね。
悪い意味で混乱だったのです。

一方で真逆なこともありまして。
以前試して組んで置いていたイベントを起動してみたら、良い手応えを感じました。
後から生んだアイディアの方が、良いとは限らないのです。悲しいことに。

テキストを修正していると原形の勢いや意図が削がれ、別方向に進むことがあります。
修正案を考えているときはより良いものになっていると思いがちですが、離れて見ないと本当のところはわかりません。

また部分部分をクローズアップしていると、全体や前後との接続が悪くなることもあります。
このあたりは何度も何度も自分の中で繰り返して、経験値を蓄えて、慣れる部分なのでしょうね。
世の中にあるフレームワークの中から自分に適した方法を見つけるのも、解決策になりそうです。

最近、意識していることがあります。
それは早めに寝て(23:00頃)、早めに起きる(5:00~6:00)ということ。
睡眠時間を削ると、思考の質が下がることが実感できました。
生産性が落ちても仕方ないですからね。

今朝は起床して、エディタを立ち上げて、時間を決めて作業をしたら、想像以上に捗りました。

先のフローの話のように、日頃から自分にとっての成功パターンを蓄えておき、今日の自分はこれを試すといいんじゃないかと自分に向けて提案する。
どうせなら手応えを感じながら物事を進めたいですからね。

次回こそは画像を載せられますように。
posted by tabirpglab at 08:14 | Comment(0) | TrackBack(0) | 制作記

2019年03月11日

2019/3/11 制作記

2019/3/11 制作記です。

地図の時間

ステージ2「忘れられた街」を進めています。
ガスマスクをつけた人間、浮遊するかつての文明、張り紙に浮かぶ言葉、その先に広がる地下道。
屋外と屋内、地下道を行き来しながら街の最深を目指すステージです。
2週間内には終わらせられるように励みます。

20190311_1.jpg

20190311_2.jpg

20190311_3.jpg

20190311_4.jpg

こちらは新要素「装備ロール」システム。
装備の組み合わせにより、ジョブにちなんだボーナスが付加されるというもの。

20190311_5.jpg

こうした世界観のわかる進捗を週1ペースで発信していきます。
posted by tabirpglab at 00:05 | Comment(0) | TrackBack(0) | 制作記

2019年03月10日

【RPGツクールMV】経験値曲線をきめ細かに設定、適用するツールとプラグイン

経験値曲線をきめ細かに設定、適用するツールとプラグイン

概要:
・敵討伐回数、次のレベルに必要な経験値を計算する(ツール)
・ツールで設定した経験値曲線を適用する(プラグイン)

プラグイン

Class Base Parameters
制作者:Yanfly様
http://yanfly.moe/2016/04/24/yep-95-class-base-parameters/

計算ツール(要プラグイン)

FlyingDream's Exp Calculator
http://yanfly.moe/tools/expcalculator/

計算ツールの説明

EXP to Reach Current Level:現在のレベルまでに必要な経験値(累計)
EXP To Next Level:次のレベルに必要な経験値
Total EXP for Next Level:次のレベルの累計経験値
Amount of mobs to reach next level if they give an average EXP of 〇:
敵1体の平均経験値が〇の場合、次のレベルに必要な討伐体数(敵の経験値を調整する用)

Formula:計算式が表示されるのでコピー

@データベース>職業のメモ欄に以下を貼り付け

exp = 【Formulaでコピーした内容】;


解説動画
http://yanfly.moe/2016/05/12/flyingdreams-exp-calculator/

補足

以下のツールと組み合わせると、パラメーター設定が効率良く制作できそうです。

敵キャラ設定補助ツール
http://autoenemies.at-ninja.jp/

一方、そのまま利用すると敵が記号化してしまい、退屈の元になりますので要工夫です。
ドラクエさんの空振りときどき痛恨のおおきづちや、経験値ざくざくのメタルスライムのような個性化されたモンスターは印象に残ります。

2019年03月07日

競合を確認したプラグイン

競合を確認したプラグイン

・コアスクリプト(NW.js)、プラグインのバージョン、プラグイン管理画面の並び(上から下の順に実行される)により、挙動が変わる可能性があります
・競合した場合は、どちらかのプラグインをOFFにしてください

メニュー関連

[組み合わせ@]
YEP_ItemCore(V1.04)
ItemBook

[問題@]
機能が利用できない

[組み合わせA]
MOG_ButtleHud
YEP BattleStatusWindow(+DreamX_Ext_BattleStatusCore)

[問題A]
機能が利用できない

[組み合わせB]
UCHU_MobileOperation.js v1.1.4
PictureCallCommon.js v1.12.0

[問題B]
装備画面の左カラム(ステータスが表示されている領域)を左クリックして右カラム(装備品の領域)にマウスを移動するとキャラクターが切り替わります。

[対処B]
UCHU_MobileOperation.jsのパラメーターPC TouchExtend(PC実行時のタッチ操作拡張)をfalseにすると回避できます。

バトル関連

[組み合わせ@]
YEP_OverkillBonus.js(v1.02)
Hurry_AnimationCut

[問題@]
機能が利用できない

制作支援

[組み合わせ@]
Foreground
DatabaseConverter

[問題@]
機能が利用できない

[組み合わせA]
BMSP+BMSP_MapFog
DatabaseConverter

[問題A]
機能が利用できない

[組み合わせB]
YEP_AdvancedSwVar.js
DevToolsManage

[問題B]
時間経過でエラーが発生する

マップ関連

[組み合わせ@]
StepEffect.js
SAN_AnalogMove.js

[問題@]
時間経過でエラーが発生する

[組み合わせA]
fuku_testpack.js(2019/3/1版)
CharacterGraphicExtend.js(1.10.2)

[問題A]
CharacterGraphicExtend.jsの「CGシフト」が機能しなくなる

[対処A]
プラグイン管理でfuku_testpack.jsをプラグインCharacterGraphicExtend.jsの上に配置する

[組み合わせB]
MOG_CharPoses.js (v2.1)
CharacterGraphicExtend.js (1.10.2)

[問題B]
CharacterGraphicExtend.jsの「CGピクチャ」が機能しなくなる

[対処B]
プラグイン管理でMOG_CharPoses.jsをCharacterGraphicExtend.jsの上に配置する

2019年03月02日

Javascript 配列型の操作メモ

Javascript 配列型の操作メモ

・Google ChromeにてF12押下し、検証
・ツクールMVのプラグインではデータベースを走査してチェックするときに使う印象
metaタグ(メモ欄に記述した文字列)の使い方とあわせて覚えると、メモ欄に入れた文字列を取り出して、再利用などに使えそう。

イベントのメモ欄にとした場合
if (event.meta.data === "hogehoge")
で抽出できる

===
■配列の基本構造(要素の一覧表示)
let wdays = [ '月','火','水','木','金','土','日' ];
console.log( wdays );

(7)["月", "火", "水", "木", "金", "土", "日"]

■配列[] 要素を指定表示
let wdays = [ '月','火','水','木','金','土','日' ];
console.log( wdays[1] );


※0=月、1=火……だから

■配列.length 要素の数を表示
let wdays = [ '月','火','水','木','金','土','日' ];
console.log( wdays.length );

7

■配列.push() 末尾に要素を1つ追加
let wdays = [ '月','火','水','木','金','土','日' ];
wdays.push('祝') ;
console.log( wdays );

(8)["月", "火", "水", "木", "金", "土", "日", "祝"]

■配列.pop() 最後の要素を1つ削除
let wdays = [ '月','火','水','木','金','土','日' ];
wdays.pop();
console.log( wdays );

(6)["月", "火", "水", "木", "金", "土"]

■配列.shift() 最初の要素を1つ削除
let wdays = [ '月','火','水','木','金','土','日' ];
wdays.shift();
console.log( wdays );

(6)["火", "水", "木", "金", "土", "日"]

■配列.sort() 配列の順を並び替える
昇順
let wdays = [ '月','火','水','木','金','土','日' ];
wdays.sort();
console.log( wdays );

(6)["火", "水", "木", "金", "土", "日"]

降順
let wdays = [ 1, 2, 3, 4, 5, 6, 7 ];
wdays.sort(function(a,b)
{
return b - a;
});
console.log( wdays );
(7)[7, 6, 5, 4, 3, 2, 1]

辞書順にソート例1 localeCompare
let wdays = [ '月','火','水','木','金','土','日' ];
wdays.sort(function(a, b)
{
return a.localeCompare(b);

});
console.log( wdays );
(7)["火", "金", "月", "水", "土", "日", "木"]

辞書順にソート例2 localeCompare
let name = [ 'Abbie','Patricia','Gwyneth','Constance'];
name.sort(function(a, b)
{
return a.localeCompare(b);

});
console.log( name );
(4)["Abbie", "Constance", "Gwyneth", "Patricia"]