【Day8】ライブラリ&フレームワーク化しました

まだまだ完成とは言いにくいですが、概ねできた。

  • フォーカスマネージャーにより特定範囲にのみフォーカスするように設定している。
  • フォーカスカーソルは自動的にフォーカスしているアイテムに追従
  • コンテナごとにカーソルを設定できる
  • リストコンテナにオーディオエミッタを設定することで自動的にサウンドが再生される
  • シーンマネージャーにより画面(Screen)・モーダル(Modal)などの追加が可能
  • コンポーネントをいくつか追加
    • セレクター:左右ボタンでリストの値を切り替えていくセレクター
    • スイッチ:ON/OFFのトグル
    • ゲージ:指定したサイズのゲージ
    • 上記、どれもエディタのインスペクタでアクションキーの割り当てが可能
    • スムーズスクロールコンテナ(シンプル版)を追加
    • 既存のSmoothScrollContainerのほうが高機能だけど、こっちのはシンプル
      • TweenベースではなくVelocityベースのスムーズスクロールなので拡張性は低い
      • マウス・タッチ・フォーカスに対応してる
  • モーダルを追加
    • デフォルトシーン(テンプレートシーン)を使う
    • もちろんユーザーがカスタムしたシーンを使うことも可能

大まかにはこんな感じ。

SceneManagerは通常シーンの追加に対応してないのと、FocusManagerがほとんど管理しててGUIManagerでの管理があんまりされてないから、この辺を整理するのが直近の課題かな。

でも概ね動いてるし、整理と拡張をしていく感じで進めます。

【Day7】蛇足:UIフレームワーク作ります

昨日さんざん作ってわかったんですが、ちゃんとフレームワークを作ったほうが良さそう。
今後のためにも。

GodotのFocusのシステムは結構曲者で、マウスを基準として結構自由にフォーカスができるし、状態管理もしっかりしてるとは思う。
でも、キー操作(コントローラー操作)においては、表示されてるフォーカスできる要素を容赦なく際限なくフォーカスしていってしまう。
例えば、ウィンドウが2個重なっていたとして、裏のウィンドウ内の要素もフォーカスしに行ってしまう。

この辺の制御をするのが面倒で、内部にカウンターを持たせて作るパターンもあるんだけど、今度はマウスとの整合性を取るのに少し手間がある。

なので、Godot Meetup Tokyoで公開用にVellum UIというコンポーネントライブラリ&フレームワークを作ります。

今着手してるプロジェクトにそのまま入れて作っていくので、進捗的にも大きくは問題はないし、正直今後プロジェクトが大きくなった時に、確実にUIを作ったりシーンの遷移だけで大幅に時間を使うであろうことが予測されるので、今のうちに片付けておこうねってこと。

作り始めて、昨日まで作ったUIのシステムを剥がしていってるけど、アドオンとしての手応えがあるんで、4月のMeetupに向け公開していくぜ。

【Day5-6】大変だった‥‥‥

UIのシステムを組んでました。
これ毎回作ってるからいい加減モジュール化というかライブラリ化というかしたい‥‥‥

タイトルも丸々出てますが。
背景画像はダミーだけど、いい感じだね。

ゲーム的には2Dだけど、結構ふんだんに3Dを使ってます。
実際どれくらい負荷がかかるもんなのかとか、ワークフローをちゃんと組んでみたいとか、楽しいね。

さて、あらかたUIはシステム化できたと思うので、いい加減アクション部分を作りこんでいこう。

絵を作らないと正直モチベがキープできないんだけど、絵を作ると時間がかかるので、また数日跨ぎの更新になりそう。

【Day4】掛け合いができるゾ

わるくないスライムを置いて掛け合いをしてみた。
うんうん、簡単であるな。

少しだけStateMachineの整理をした。

というのも、おそらく強制的にキャラをポーズさせるより、イベント用のステートに移行させたほうが都合がよいと思われる。
今後タイムライン上からキャラのステートを切り替えたり、値を渡すことで、タイムライン上から人形劇ができるようになるはず。
そのためにはイベント用の汎用的なステートを用意するのが良さそう。

表情差分なんかはDialogic2のイベントを入れるようにしたほうがいいかなぁ。
まぁでも、一旦会話劇の仕組みはこんなもんにしておこう。

【Day3】結局吹き出しは独自スタイルに。

Day2で発見した仕様を独自のものに変えようと思ったけど複雑になりそうだったので、独自のスタイルを作成した。
結構シンプルにできたし十分かな。

イベントエリアの接触でキャラクターのステートを強制で止めたりして無理やりなところはあるんだけど、かなりシンプルだしカスタマイズ可能な状態にしてあるし良い感じ。

今日は出社だったので遅い時間から開始したし、あんまり進まなかったけど仕方ないね。

明日は攻撃ステートでも作ろうかな。
ついでにステート周りを綺麗にするのもありだな‥‥‥ちょっと冗長でしんどいからな。

ではまた。

読み込み中...

ゲーム開発を応援していただけたら幸いです

Buy Me a Coffee