★INFORMATION★

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

Pt.Cracker PixivFANBOX

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

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

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


▼最新の投稿▼
2024-03-18
Comment ShareLink
ブログに貼り付けているX(旧twitter)タイムラインウィジェットですが、閲覧者がXにログインしている状態でなければ"Nothing to see here - yet"と表示され、タイムラインの閲覧ができない仕様のようです。
Xアカウントは活動を継続する予定ですがウィジェットは消してリンクのみ提示、MiniBlog記事としての投稿を重点的に考えています。
2024-03-09

SilverHearts&DOTQ10周年!

Comment ShareLink
SilverHearts10周年

祝!10周年!!🎉

2024年3月9日でSilverHeartsと初公開作品「DOTQUEST-いせかいものがたり-」(以降、略称・DOTQ)が10周年を迎えました!

category:
2024-02-27
Comment ShareLink
こんにちは烏守です!すっかりコロナも治ってMZのスクリプトを今後の制作に役立つように改造中。今度テストプレイ動画などアップできたらしますー!Bloggerでも動画投稿できたかな…🤔
2024-02-19

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

Comment ShareLink

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

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

category:
2024-02-10

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

Comment ShareLink

活動が滞り気味ですが、今年は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: