シーンを揺らすというアクションはありますが、キャラクター一個単位で揺らすことはできますか?
現在、個々のキャラクターを揺らすための公式な方法はありません。もしよければ、InvokeScriptを使ってSprite/AnimatedSpriteを揺らすスクリプトを作成することができます。
私が聞いてみてもいいですか?
もちろんです!今、休暇中ですが、戻ったらできるだけ早く作ってみます。
「いいね!」 1
このスクリプトをお試しください:
baz_shake_node.gd|添付ファイル (3.5 KB)
使い方:
- スクリプトをプロジェクトに追加します
- シェイクさせたいゲームオブジェクトにNode2Dを作成し、そのNode2Dにスクリプトを追加します
- シェイクさせたいオブジェクトを設定します。Sprite2DまたはAnimatedSprite2Dを推奨します。何らかの理由でAnimationPlayerに干渉する場合は、スプライトの親としてNode2Dを作成し、そのNode2Dをシェイクさせます
- その他の設定を調整します
- InvokeScriptを使用して、ビジュアルスクリプト内から関数を呼び出します
「いいね!」 1
横からですが、使用させていただきました。
baz_shake_node.gdの動画での組み込み方、大変分かりやすかったです。
ワタシが「やりたい動き」なのですが
①大型のボス敵が大振りのパンチモーションを行う
②その間、主人公は各種攻撃をボスに仕掛ける
③ボスのパンチモーションはキャンセルされず、攻撃を受けた時に「shake」と「色変更」を行う
俗にいう「ハイパーアーマー」を表現したいのですが
baz_shake_node.gdが自身のアニメへの命令指定しかなく、VSで設定ができませんでした。
「ボスダメージ管理オブジェクト」を追加で作成し、
≪ボスのHPが減った≫→≪ボス(親)をshake & 色変更する≫仕組みが対応できればと思いますが
何か方法はありますでしょうか?
正しく理解できているか確認しますが、次のようなことを試みているのですか?
「いいね!」 1
これはあなたが望んでいたものだと思います、@zo-nomori:
「名前によるターゲット」オプションを備えた新しいバージョンのシェイクノード:
baz_shake_node.gd (6.2 KB)
- 攻撃を設定しました。注目すべき点は、アニメーションの移動にNode2Dを使用したこと、およびNode2Dに「親マテリアルを使用」が選択されていることを確認して、フィルターがスプライトに適用されるようにすることです:
- 子オブジェクトとしてバウンドオブジェクトを設定しました:
- 親のHP変化を検出するビジュアルスクリプトを備えたハイパーマークの子を設定し、「名前による」オプションを使用して新しいシェイクノードの設定を呼び出しました:
- シェイクノードの設定の簡単なリファレンス:
「いいね!」 1
ありがとう!
設定で上手くいかず、DMにてデータを送ります。
「いいね!」 1
返信が少し遅れましたが、完璧に機能しました。ありがとうございます!
「いいね!」 1

