投稿記事

レイマスター 2023/07/09 21:00

ダクメデリバース大型アプデ進捗報告3(2023/07/09)

こんばんはー、レイマスターです。
進捗状況は週報になってきてます。

ダクメデリバース大型アプデ

逃走妨害トラップ実装

前作にあった人形を全て集めて、次のステージへ向かうのに必要な
アイテムを入手した後に始まる追いかけイベント中に、
プレイヤーの逃走を妨害するトラップを、今作でも実装。
今作はある難易度以上を選択した時に発生。


前作はプレイヤーの向きによってトラップ発動する仕組みでしたが、
今作は、落とし穴を囲むようにトラップ発動のエリアを配置。
2つのエリアを配置しようと考えてましたが、
処理が面倒くさくなってしまうので、1つにした。

必要なアイテムのナビ追加

条件を満たさず次のマップへのドアに近づくと、
鍵が掛かっている効果音が流れ、これは進めないな、と認識しますが、
音だけでは不十分と思い、ドアの上にナビを表示するように。


「このマップ内にある人形を集めないと進めないよ」
という感じで。

AnimationPlayerというノードを使用。
ナビ表示やナビ消去のアニメを用意。

他にも、鍵の掛かったドアや、アイテムを手に入れないといけないなど、
他のオブジェにも応用する。


アイテム入手&使用実装

今後実装予定の新ステージで活躍するアクション。
「アイテム入手」と「アイテム使用」

前の記事にあったのですが、
インベントリーアイテムスロットは1個のみで、
HUD上で実装しましたが、

今回は、古洋館ステージでアイテムを使用する場面を追加!


赤い鍵?!

これで、大型アップデートのタスク「古洋館ステージ」は完了です。
ゲームの基本的な部分を完成!

次は新ステージのマッピングです。
どんなマップを作るのかは決まってますが、
作りたいマップの資料をググらないと。

報告は以上です。

レイマスター 2023/07/02 21:07

ダクメデリバース大型アプデ進捗報告2(2023/07/02)

こんばんはー、レイマスターです。
7月に入って、2023年後半に入りました。
タイトル通り、ダクメデリバースの大型アプデ進捗報告です。

ダクメデリバース大型アプデ

古洋館ステージに扉追加

クリエイターズ文化祭2022Verには無かった扉を、
大型アップデートで追加することにしました。
レイヤー番号となるz_indexをプレイヤーより低めに設定すれば、
プレイヤーが扉の前にいるような感じとなります、が…

一つの問題が浮上。

「もしも、まだ開いてない扉の後ろにプレイヤーがいたとしたら…」

答え
「プレイヤーが何故か扉を上から踏んでいるかのような違和感っ!」

別のノードでプレイヤーがエリア内に入ったら
z_indexの数値を変えるなど、試行錯誤してみたが、
思うように上手くいかずの繰り返し。
ようやく、この問題を解決!

どうやって、この問題を解決したのかというと…、


扉を開けるエリアとは別のエリアノードを作成。
扉を開けるエリアより上のエリアをChangeFrontArea2D
下のエリアをChangeBackArea2D
扉のスクリプト内に、
func _on_ChangeFrontArea2D_body_entered(body:Node) -> void:
	$Sprite.set_z_index(2)
	pass

func _on_ChangeBackArea2D_body_entered(body:Node) -> void: #
	$Sprite.set_z_index(0)
	pass

エリアを踏むとz_indexを変更する処理を追加。
(プレイヤーキャラのz_indexが1の場合)

このような処理を行った結果、


プレイヤーが扉より前。


プレイヤーが扉より後ろ。

無事に実装できました!
もしも、他のマップチップでこういう違和感が起きそうな時は、
この方法で解決をしてみようと考えてます。

次は逃走妨害トラップとアイテム関連の処理実装。
これが終われば、全部ではなくてもゲームの基本的な部分が
完成したことになります。

報告は以上です。

レイマスター 2023/06/25 15:33

ダクメデリバース大型アプデ進捗報告(2023/06/25)

こんにちはー、レイマスターです。
今回の記事から、
「DARK MAIDEN REBIRTH 大型アプデ進捗報告」を
始めます。

ダクメデリバース大型アプデ

カットインの背景変更

クリエイターズ文化祭2022公開分で、
脅かし又はエンカウント時のカットイン画像の背景が
単色でありましたが、
テクスチャ素材集を使って、背景を変えました。


▲汚れたテクスチャが恐怖を引き立たせる

エフェクト実装

実装したかったエフェクトをついに実装しました。
床が崩れたり、敵からダメージを受けることで起きる
「画面揺れエフェクト」(オプションでON/OFF可能)
敵からダメージを受けた時に点滅する
「ダメージエフェクト」(オプションでON/OFF可能)
その様子は、新ステージで動画を出せたら
紹介しようと思ってます。


マップチップのチラツキ解消

フルスクリーンでのプレイを試してみたところ、
マップチップがザラザラとちらつくみたいで、
これは目に悪そうだなと気になっていました。
GodotEngineの【プロジェクト設定】の
【表示】-【ウィンドウ】にある「hiDPIを許可」で
ようやく解消。


ジャンプスケアのイベント実装

特定の条件を満たした時に起こる
ジャンプスケアのイベントを用意しました。
このイベント実装のために初めてシェーダーを使用。


▲レアなイベントも用意

きのもと結衣様に感謝します。
Glitch Transition for Godot Engine - YouTube

フォント変更

このゲームのローカライズを目指すべく、
埋め込みフォントを変えました。
「Mplusフォント」から「Google Noto Sans」に変更。
今回は1枚目の画像上部にある拾った人形の数の所だけ
変わってますが、今後はタイトルやリザルト画面にも入れる予定。


まとめ

今回は、自分の実装したかったものを
苦労して完成したと実感。
全てではないのですが、前へと進んでおります。


報告は以上です。
進捗があれば投稿しますので、
今後ともよろしくお願いします。
報告は以上です。
進捗があれば投稿しますので、
今後ともよろしくお願いします。

レイマスター 2023/06/20 07:00

【Godot】足音演出実装

この記事は、Godot Engineでプレイヤーキャラが移動すると
足音を鳴らす演出を実装する方法について説明をします。

※見下ろし型(Top-down)のゲームでの実装です。

【環境】
- Godotのバージョン:3.5.2
- コンピュータのOS:Windows11


準備

足音の準備

プレイヤーが移動する時に鳴る足音のオーディオファイルを準備します。
素材は、効果音の素材サイトからダウンロードします。
利用規約を必ず読み、その素材が加工可能であるか確認しましょう。

足音のオーディオファイルを見つけたら、波形編集ソフトで編集します。

個人的におすすめの波形編集ソフトは、
ocenaudio


▲使用する波形を範囲指定して刈り込む。
  • 範囲指定する時
     AnimationPlayerノードにある「歩く時のアニメ」を確認して、
     歩行中に、もう片方の足が地面に付く時のタイミングを計算します。
     タイミングが0.4秒であれば、
     音の長さが400msになるよう刈り込みます。

使用するオーディオファイルとして、「footsteps.wav」と
名前を付けて保存します。


ノード作成

子ノード追加

Playerシーンに子ノード2種類を追加します。
AudioStreamPlayerTimerです。


▲分かりやすいように名前を変えても結構です。

AudioStreamPlayer

追加したノードAudioStreamPlayerを選択し、


右のインスペクターにて、先ほど作成した足音のオーディオファイルを
Streamに読み込みます。
下のVolume dBを-10に変更します。
この数値は目安ですので、丁度いい音量で調整しても構いません。

Timer

追加したノードTimerを選択し、


右のインスペクターにて、One Shotにチェックを入れます。
One Shotをオンにすることで、タイマーが0になった場合、
止まることができます。
オフになっていると、ループする状態になります。

スクリプト追加

プレイヤーキャラのシーンにアタッチしたスクリプト内に、
以下のスクリプトを追加します。

func player_footsteps_pitchchange():
	if $Timer.time_left <= 0: # Timerが0以下になった場合
		$AudioStreamPlayer.pitch_scale = rand_range(0.8, 1.2) # ピッチスケールを乱数で調整
		$Timer.start(0.4) # 0.4秒間でタイマースタート

足音のピッチスケールを0.4秒間毎に乱数で調整することで、
足音がリアルに聞こえるようになります。

func player_footsteps_soundplay():
	$AudioStreamPlayer.play() # 足音再生
func player_footsteps_soundstop():
	$AudioStreamPlayer.stop() # 足音停止

足音の再生や停止も忘れないように。

先ほど追加したスクリプトを呼び出します。
if(move_input != Vector2.ZERO):など、
プレイヤーが移動した場合のブロック内に、以下の関数を追加します。

player_footsteps_pitchchange()   

プレイヤーが移動して0.4秒間毎に
足音のピッチスケールが変わるようになりますが、
肝心の足音再生と停止がありません。
足音再生と停止は、次のAnimationPlayerノードで使用します。


トラック内に関数追加

プレイヤーの静止または歩行時など、
アニメーションを制御するノードAnimationPlayerにて、
足音の再生や停止の処理を追加します。

まずは、プレイヤー移動時のアニメーションを選択して、


▲「メソッド呼び出しトラック」を追加します。

次はアニメーション化されるノードを選択で、


▲スクリプトをアタッチしたノードを選択します。

Playerの関数のトラックが追加されます。
Timeの0.0秒に合わせて右クリックを押して、
「キーを挿入」で、


▲先ほど追加したスクリプトを選択します。


トラック内に、
先ほど追加した関数が入ります。
今回作成した足音オーディオファイルの長さが0.4秒なので、
Timerの0.4秒に合わせてキーを挿入します。
他の向きのアニメーションにもトラック追加を行います。

足音をいつまでも鳴らすわけにはいかないので、


静止時のアニメーションにも、足音停止の関数を挿入します。
そうすると、動きが止まった時に足音を停止してくれます。

おわりに

以上で、足音を鳴らす演出を実装する方法について説明を終わります。
今回は足音1種類だけの説明でしたが、
他にも別の足音に変える方法や、
特定のエリア内に入ることで足音が変わる処理などをお話したいのですが、
長くなってしまうので、この辺にしときます。
最後に、GodotEngineで足音の実装に関する動画を
Youtubeに投稿した方々に感謝します。


参考動画

Realistic and simple footsteps in Godot (2D/3D)

Creating Footstep Sounds for Your Game (Godot + Audacity)

レイマスター 2023/06/18 17:34

近況報告(2023/06/18)

こんにちはー、レイマスターです。
半年ぶりの投稿です。
本日より、GODOISMの活動を再開します!

1~3月は地獄の如く多忙であり、
メンタルケアの重要性を再確認した月でありました。
地獄を乗り越えて、徐々に心の余裕が戻ってきました。

ドット絵練習

5月はドット絵を打ち始めた時期であり、
Asepriteでドット練習しておりました。

最初はどのパレットを使うか迷いましたが、
「Aurora Palette」という素晴らしいパレットを見つけ、
個人的お気に入りのパレットとして使ってます。
Aurora Palette


▲ピクセルアートブック
練習状況をObsidianのキャンバスにまとめておりました。
次はキャラの顔アイコンを作ろうと考えております。

DARK MAIDEN REBIRTH関連


▲DARK MAIDEN REBIRTHの新Ver画面の一部
去年のクリエイターズ文化祭2022で公開してから、
大型アップデートを目指しておりますが、
これまで実装した部分として、

セーブデータ処理

オプションやクリアステージのフラグを保存するための
セーブデータ作成や読込の処理を実装。
セーブデータ改造防止のためにバイナリ処理も行いました。

スタミナ制の走行

ステージクリアを早く済ませたい、またはタイムアタックができるように、
プレイヤーの走行を実装。
さらに緊迫感を作ろうと、スタミナ切れ時のクールダウンタイムも追加。

インベントリー実装

人形を拾うだけでなく、鍵や謎解きアイテムなどを拾い、
アイテム使用でゲームを進めるギミックも入れようと実装。
ここで初めてのカスタムリソースを使用。

難易度別のゲーム準備

初心者から上級者まで幅広く遊べるよう、4種類の難易度を実装。

足音実装

このゲームの制作で最も実装したかった演出が、
ようやく実装できました。
前にタイルセットに応じて足音を鳴らす記事を
見つけたのですが、いつの間にか削除されたので、
Youtubeで見つけた足音演出の作り方から
情報を収集して、苦労した末に完成。

今後の予定
  • キーアイテム入手、キーアイテム使用実装
  • 新ステージ作成
  • 謎解きや妨害などのギミック作成
  • オプション、ステージ選択、難易度選択の実装
  • スペシャルステージ作成
  • エンディング、スタッフロール実装

達成すべきタスクが200以上もありますが、
今年中に完成できるよう頑張ります。

次は、「Godotで足音演出実装」です。

1 2 3 4 5 6 7

月別アーカイブ

限定特典から探す

記事を検索