ユーザ用ツール

サイト用ツール


2026:01:26

文書の過去の版を表示しています。


1/26日記

その他

  • 今日は休みだったので、書類書いたり自立支援医療の継続手続きしておいた。
  • 今まで全部期限ギリギリでやっていたので、超余裕がある。

ゲーム開発

  • イージングについて。
  • ちょうど去年のゲーム開発イベント後の飲み会で某氏が移動差分を徐々に縮めていくことについて話していた。
  • ただ、差分を変更する形式だと問題が一個あって。
  • 移動差分を変更する場合、目標到達点までは満たない形で止まってしまうんだよね。
  • なので、イージングの式を立てて最終到達点を明確にしたほうが制御はしやすくなるという。

  • 以前自分でも調べたり他の人にも展開したり更に他の実装展開してもらってたんだけど、ただ自分のゲームではその場しのぎでスクリプト上でイージングの式を適時立てて動かしていたのよね。
  • とは言うもののボスを中心に敵の配置等を考慮するとイージング積極的に使っていったほうがいいなあと思い始める。
  • 何より動きにメリハリが付くので、実装しておいたほうがよさそう。
  • 問題なのが今のゲームの実装だと差分移動しか考慮してないので、そのまま使うとして絶対値座標の入力が必要なことくらいか。
  • それこそ自分用に改造してtからt+1フレームの差分を出力するようにすればどうにかなるはず。

  • 欲しい機能
  • 2個XY座標間の移動についてイージングを採用したい
  • ゲーム実装の関係上、座標そのものではなく差分を取得したい

  • まずVector2は考慮せず、単純に2値のみを比較してその差分を取得するようにしておく。
  • 割合差分をtとすると、0⇐t<1としておく必要があり、1ではストップする必要がある。
  • 移動フレームについても整数値を入力して対応できるようにしたい。
  • となると、アクセスは「ease_delta(frame,frame_max, v1,v2)」って式を立てる感じでよさそう。
  • これで関数はイージングの機能別で名前つければ楽だと思う。
  • C#で実装する場合、簡単にクラスからのアクセスできるようにしておこう。
  • とは言うものの、座標の丸め誤差も考慮すると完全にはいかないのが悩み。
  • なので、frame_max-1を入力された場合、v2-ease_delta(frame_max-1, frame_max, v1,v2)を出力にする、みたいな処理が必要になる。
  • ここらへん作るとなると、自作しないとダメかあってなる。まぁ時間はかからないので他作業がてらでもできそう。
2026/01/26.1769455147.txt.gz · 最終更新: 2026/01/27 04:19 by machiaworx