★INFORMATION★

ようこそSilverLetterへ!
こちらは創作サークルPt.CrackerプラチナクラッカーゲームプロジェクトSilverHeartsシルバーハーツの制作ブログです
創作活動の近況や作品情報、攻略情報を随時更新しています。

Pt.Cracker PixivFANBOX

支援者限定コンテンツ配信中!
フォロー、ご支援よろしくお願いします♪(‘ω‘)ノ

創作電波店「からすや」OPEN!

セール・クーポン・限定商品…
ちょびっとお得にお買い物SilverHearts公式デジタルストア開店!


▼最新の投稿▼
2024-02-19

ツクールMZ備忘録:セーブ・ロード画面で章を表示

リメイクを作ったり、アドベンチャー対応の作品を作るにあたって手探りでスクリプトいじりをしているわけですが、
今回はセーブ・ロード画面に進行内容(章の題名など)をテキストで表示してみました。
今後MZについてはブログ記事のタイトル備忘録にしておくね。ほとんど自分用だし。

参考になるかどうかはわからないのでもしやってみる方はスクリプトファイルを(もしくはフォルダごと)コピーして避難させてからやってみてください。

category:
2024-02-10

ツクールMZ備忘録:足音を鳴らす

活動が滞り気味ですが、今年はSilverHeartsの2作が10周年…実質ゲームプロジェクトが本格始動してから10周年という節目ということで、今サークルでできることを模索中です。
そこで「もし今年中にリメイクするならアイテムやスキル設定の多いRPGよりアドベンチャー」ということで現在、DistortionDreamユガミユメをツクールMZで作れないかという試みをしています。
今後またメンバーのスケジュールや生活面の問題で完成させるとか作るとは断言できないのですが、試みの中で今後も使えることがあったりすればなーと。

今回はこれまでのSilverHearts作品でよく使っていた「足音」を実現させてみようと試みてみました。


プレイヤーやイベントの歩行処理をしているのは mmz_objects.js の「Game_CharacterBase」

まず、歩数カウントと鳴らす・鳴らさないのトリガーとなる変数を Game_CharacterBase.prototype.initMembers = function() {} 内に追加。

this.chara_steps = 0; //足音用歩数
this.chara_step_se = false; //足音スイッチ

で、歩行できたかどうか分岐のある Game_CharacterBase.prototype.moveStraight = function(d) {~if (this.isMovementSucceeded()) {}内に足音の処理を追加。

if (this.chara_step_se) {
  this.chara_steps++;
  if (this.chara_steps % 2) {
   // 地形タグごとに再生するSEファイル名をハッシュに入れておく
   var terrainSe = [null, "Walk1", "Walk2", "Walk3"];
   // 現在位置の地形タグを求める
   var terrainId = $gameMap.terrainTag(this._x, this._y);
   // イベントがプレイヤーとどれくらい距離があるか数値化(縦横の合計値で出してる)
   var p_distance = ($gamePlayer.x + $gamePlayer.y) - (this._x + this._y);
   // terrainId で現在いる位置の地形タグが0以上・プレイヤーとの距離が20以下の場合SEを再生
   if (terrainId > 0 && p_distance < 20) {
    AudioManager.playSe({"name":terrainSe[terrainId], //ハッシュから地形タグと同じ配置のSEを再生
     "volume":(30 + Math.random(10)) - p_distance, //距離でやや音量調整
     "pitch":Math.random(10) + 90, //ピッチはランダムでややブレさせる
    "pan":(($gamePlayer.screenX() / SceneManager._screenWidth) - 0.5) * 300}); //位置でパンを変える
   }
  }
};

これで後は足音を鳴らしたいNPCかプレイヤーキャラの移動ルートからスクリプトで「this.chara_step_se = true;」を実行してあげれば歩いた時に地形に応じて足音が鳴るはず。
このあたりはRGSSでやった時の感覚と似てますね。


これでなんとなくは出るっぽいものの、プレイヤーの移動に関しては上記の方法だとダッシュ・歩きでバラつきが出る気がします。
プレイヤーだけ足音をつけたいなら上のような方法ではなく、 Game_Player.prototype.increaseSteps = function() {} 内に処理を入れたほうがいいかも。
ただその場合 イベントコマンドの移動ルート指定からだと歩数が増加しないので
if (this.isNormal()) {} の条件分岐を消して、歩数増加 $gameParty.increaseSteps(); を無条件で実行にしてから
if ($gameParty._steps % 2) {~※NPCの時と同様に足音鳴らす処理~} を入れるようにすると複雑なことをしなくても足音をつけられます。

移動ルートでパーティ歩数がカウントされないようになっているのは、イベント中にダメージ床や毒ステート効果などが発動しないようになので、別のスイッチで切り替えするだとか別で歩数カウント変数を作ってカウントさせるようにすると良いかもです。


スクリプトの中身に注釈が少なかったので行きつくのに時間がかかりましたが、なんとなく英単語や変数がわかれば検索かけてどこでどんな処理に使われているのかある程度わかるようで安心しました。
alert(確認したい結果); を使いまくって目的の処理を探したりもしてみてます。

category:
2024-02-04
数日前に喉痛い関節痛いで37.5〜38.9℃の高熱が出て病院行ったらコロナ陽性で休養してます。マスク、手洗いうがい換気してても感染しちゃうんだなぁ…
遊んだり創作活動できないのが辛い🥲
2024-01-24
今年はいせかいものがたり、ユガミユメの2作品が10周年です!活動可能な範囲を模索しながら企画を進めています。新しい情報が入り次第お伝えします。 #いせかいものがたり10周年 #ユガミユメ10周年
2024-01-14
ミニブログの投稿テストです。
今後、短い文章でのお知らせやメンバーのメッセージを投稿していく予定です。

カテゴリとは別で検索欄からハッシュタグでSilverLetter内の関連した投稿を表示できます。 #お知らせ