『山が笑えば』制作録 アセット編
暑いですね、夏ですねウォーウォー。
昼30度を越えるときは仕事に出ているときも猫用にクーラーかけているのですが、クーラー嫌いなのか点けてると押入れから出てこない。畜生。愛情を喰らえ。水もっと飲め。
7月ですが、1週間くらいなんか体力的にアレでほぼ進まなかった時期はあったけど、まぁだいたい想定通りの進み具合。
7月チュートリアル完成、基礎システム全部完成。ストーリー完成。
— ブリキの (@buri_kino) June 30, 2023
8月レポート&バフ動作完成、アニメーション半分完成。
9月アニメーション全部完成。テスト開始。
10月発売。
よしこれでいけるな。ペキの完!
いやこんなに進んでねぇな。
■チュートリアルの2/3と3/3(戦闘を除く)を終わらせた
細かい画面の操作をまともにしつつ、SEやBGMを入れたりしながらチュートリアルや細かい操作を完成させました。
チュートリアルの2/3は基地画面での簡易操作、3/3は実地での休息やそり編成、探索といったアクションの操作と戦闘になります。
このへんの作業、チュートリアルを単に入れるだけではなくて、
・一回作ってあとのこと考えていなかったので動かなくなったりした部分を動くようにする
・動きがおかしい部分を直す
・チュートリアル範囲だと関係ない処理もちゃんとできるようにしておく
とかがあって、特にイベント会話が面倒だったりしました。
そもそも雑に「日本語会話フォントはKaisei Optiでいいかな」とか思っていたのですが、やっぱり明朝体は難しい。小説とかは明朝体なわけで見難いもんではないとは思うんだけど、比較的小さくまとめるスマホだとうーむなぁ(?)というところがあり、結局霜夜で使ったMameronの後継(みたいなもんだと思う)のKiwi Maruにすることに。
フォントサイズもだいたい霜夜に合わせ、とりあえずこれで見難いということはないはず。
イベント会話、ちょっとした小さい写真カットのテスト。通常吹き出しの倍サイズ取ってこんなもんか?
— ブリキの (@buri_kino) July 9, 2023
どうも背景があると全体がごちゃごちゃしてよくわからぬ。吹き出しの透過(80%)もこの倍率でいいのか悩ましい。90%だと背景見えなさすぎるんだけど、85%くらいはあっても良い気がする。 pic.twitter.com/MerHw9PcQu
画像出したり、ストーリー(イベント)選択時のマップも出せるようにしたりといろいろ処理を追加しました。
ストーリー選択で地図上に位置マーカー出すようにした。
— ブリキの (@buri_kino) July 3, 2023
完全にフレーバーだけど、島(建物)のどのへんで起きてるのかなー、というのがなんとなくわかるようになってくれれば。 pic.twitter.com/bHZR72pSYU
そんなかんじで基地の2/3は面倒なところはありつつも終わったのだけれど、3/3は前半部は終わったけど戦闘はエフェクト周りとか速度とかまったく入っていないのでちょっとこれは来月へ持ち越し。
それとチュートリアル、3つで終わるかと思ったけど、基地での車両設定や休息EXPについての説明が次に来るので4/3までありますね。超えるなよ限界を簡単に。
■セーブ&ロードシステムの修正
本ゲームでセーブはおおよそ2箇所タイミングがありまして、1つは基地と旅行を行き来するときの完全なセーブ。
このセーブはそもそもフェードがかかるので長く取ったり(といっても1秒もかからないけど)描画が止まってもさほど問題はない。
もうひとつが旅行中に1日に1回夜にレポートを送信するときの短いセーブ。
こちらは早ければ十数秒ごとに1回行うので、かなり素早く行わなければならないのだけれど、地形は128x128のグリッドがあり、その要素をセーブするのが時間がかかる。
これ自体は処理的な対策が可能で、グリッドすべてを保存するのは基地旅行間の完全なセーブのみにして、旅行中の簡易セーブでは新たに更新した部分だけを保存することでどうにかできる。
しかしながら問題がもうひとつあって、UnityではPlayerPrefsというものでセーブデータを管理しているのですが、これが大きくなるとどうも処理に負担がかかってしまう。
どのくらいの負担かというと、Unityでのエミュで動かそうとしたときにスタートするのに6-7秒かかってしまったり、悪いと立ち上がらなかったりする。これはトライ&エラーで開発を進めるにあたってきつすぎる。
PlayerPrefsによるデータ保存は使うなと言われている機能のひとつであるらしく、回避する方法はあるんだけどいまからこれを学ぶの面倒くせぇな……というわけで金の力で解決することにしました。オラァッ!
EasySaveは名前通りセーブシステムを簡単に使うためのアセット。
プログラミングやっていない人には伝わりにくい話になりますが、PlayerPrefsだと保存形式がint、bool、floatだけで、しかも配列とかにも対応していなかったのでいちいち回して各キーを作って大変だった。
EasySaveだと配列や辞書型はもちろん、(使わないけど)GameObjectやTransform、あるいは任意のクラスも保存できるっぽくてありがたい。
問題はお値段。およそ1万円。
Unityだと基本的に春のスプリングセールと、11月の独身セールがあるらしいのですが(なんだ独身セールって)、独身には早すぎるし、春は終わったばかり。というわけでディスカウントを待たずに買う。オラオラァッ! 金金金金金金金ぇ!(6ページかけてゴミ捨て場に突っ込む)
ゲームを作り始めて気づいたのですが、わたしの人的コストがいちばんどうにもならない部分なので、ここを減らすためならわりとじゃぶじゃぶ金使ってもあまり問題はないのだよな。
これでセーブ&ロードも高速になり、セーブデータがあっても特に負担はなくなりました。クラッシュも減ったかも。
■その他アセット
ちょっと前に買っていたエフェクト系のアセットがあったのですが、これをちょこちょこ実装しました。
簡単にエフェクトかけられるアセット。といってもあんまり使い所はないか……? こういうふうにバーチャルな画面風にするために使うくらいかも。
ついでに欠けっぽいのも入れてみる。
— ブリキの (@buri_kino) June 28, 2023
まぁこんなもんかねぇ。 pic.twitter.com/hUsca9SmQD
霜夜時代はShapes2D(楕円や角を丸めた四角形を描画するだけのアセット)しか使っていませんでしたが、今回は、
・Shapes2D
・EasySave
・Effect
・DOTween PRO(アニメーション全般)
・Modern UI pack(モダンなUI描画。プログレスバーの描画などに使用)
・Graph and Chart(グラフ描画。ストーリーの数をレーダーチャートで表示したり、時系列のログを出したりするのに使用)
といろいろ使うことになりました。とりあえず一通り使えるようにはなったかな?
0 件のコメント:
コメントを投稿