こんにちは、れヴぁです。
今回は命乞い演出の作成とそれに伴う機能を拡充しました。
いつもより技術的な話が多めです。
カメラについての変更
これまでは戦闘中に自分でカメラの向きを調節できたのですが、廃止します。
メリット
・戦闘中に回転しないので、スプライトの整合性を調節する工程を減らせる
・一方向から見ることが前提なので、スプライト管理が楽
・割り当てていた回転ボタンの使うキーを減らせる
・画面の半分を埋める巨大ボスも作れるかも(未定)
デメリット
・回転機能を利用することを前提としたマップ作成は出来なくなる。
また、命乞い演出はカメラが周りこむ形式になり、常に同じ角度から表示されるようになりました。常に同じ絵になることが保証されるので位置調整等がし易くなりました。
またCinemachineを導入しました。
「淫魔てんぷてーしょん」はカメラが特殊なので、
これまで使うかどうか悩んでいたのですが、少し拡張して使うことにしました。
AutoEdge2Slice
Edge2で出力したデータを自動でUnity上で取り込めるようにしたものを
Unity用のライブラリとして公開しました。
https://github.com/setsu323/AutoEdge2Slice
Spriteの自動生成機能と、Animationの生成機能があります。
Spriteの折り曲げ機能
実は「淫魔てんぷてーしょん」では、Spriteを折り曲げて表示しています。
折り曲げないと地面にSpriteが埋まってしまうからです。
横から見ると……
これまでは、Spriteを毎フレームVertexShader内で折り曲げていたのですが、
今回からSprite自体を最初に折り曲げるという手法を取るようにしました。
これにより、Spriteを毎フレーム折り曲げる処理を書かずに済むので、Shaderの作成が容易になりました。
ShaderGraph上では毎フレーム折り曲げる処理は書けなかったので、これからはガンガンShaderGraphを活用できます。
(UnityのSpriteRendererでは設定を切ってもバッチ処理が働く。
バッチ処理が働くと、Spriteの原点位置とObjectPositionの原点位置が一致しなくなるため、Spriteの原点位置を基準に折り曲げる処理が書けなくなる。
そのためバッチ処理を無効にするためのコードをShader内に書く必要があった)
早速、影表示を消したり、半透明にするShaderを作成しました。
リリムの命乞い演出に使っています。
今回ドット絵も追加で描いたのですが見せれないので、
ちょっと踏み込んだ技術的な話を書いてみました。
次回は10/22(金)更新です。
マップの更新やバグ修正を行う予定です。
また支援者向けPre-Alpha版を10/29(金)に更新します。