ゲーム制作①:FACE定義作成ツール

・もう夏ですね、てゆーか気温とか明らかにおかしいだろ?????
 これ絶対地球温暖化のせいだね、間違いないね。

・映画
 アベンジャーズ インフィニティ・ウォー
 2回観に行ったけど……う~ん、正直ちょっと期待外れ?
 いや、無論悪くはない。悪くはないんだが……あんまりにハードルを高めすぎて、その下を潜っていった感がある。
 物語的にも今回はフラストレーションが溜まる内容だしな、まあ一年後のアベンジャーズ4でのカタルシスに期待!
 パシフィックリム アップライジング
 微妙。いや、別に悪くはないよ? 悪くはないけど、無難すぎて5点中3.5点って感じ。
 前作の微妙な部分を改善したら一緒に素敵だったところや尖ったところが全部なくなってる感。
 多分次作は様子見かな? あと個人的にはSW7のせいかもしらんが主人公の黒人には華がないよね。
 仮面ライダーアマゾンズ THE MOVIE 最後ノ審判
 これは良かった! 映画らしいスケールさには欠ける感があるけど、アマゾンズらしさがGood!
 割と賛否両論みたいだけど僕は気に入ったかな。仁さんも悠も実にそのキャラらしい結末を迎えた気がする。

・ゲーム
 Path of Exile
 流石に今は放置気味、次のIncursionリーグは研修が重なり涙の出遅れスタートなもよう。
 3.3ではTrapがフィーチャーされてるようだから、スターターは大好きなLightning Trapかな?
 ボードゲーム
 絶賛ドはまり中。数年やってなかったけど、大鎌戦役に手を出してまた夢中になってる。
 都内某ボードゲームカフェに毎週大鎌戦役持ち込んでるんで、巡り合ったらお相手くだせぇ。

・特撮
 ビルドは……う~ん、最近なんかずっと同じ展開やってない?
 ルパパトは相変わらず面白い、7月にはウルトラマンも始まるし楽しみだ!

さて本題、地味にまたゲーム制作に取り組み始めております。
とりあえずその第一段階として、予定より一月遅れだけどFACE情報定義作成ツールを作ってみたよ!⇒[DL]

☆使い方☆
1.キャラクターのイメージカラー/顔アイコン/全身アイコンをExcelにて入力



2.Excel関数にて作成されたソースコード(Lua)をInitFACE.luaに貼り付け
 (一行に複数命令書かれるので必要であれば置換で見やすくする)


3.ツールにてキャラクターのイメージカラー/顔アイコン/全身アイコンを確認

ざっと上記のような感じ。なお、エラーハンドリングはろくにしてないもよう。
(元々このツールはUnityで起動して確認する用だからね、気が向いたら作るかもしんない)
まあ、動かなくなったら大体の原因は以下のどっちかだから気をつけて。
1.表示画像の矩形指定が間違っている(1pxでも画像外を指定するとSprite.Createがこけるっぽい)
2.全身グラの指定をしていない(仮に全身グラの用意がなくてもFACE情報は全体グラ持ちなので定義は必須)

以下、適当に作ってる中で苦労したことメモ。
・全身グラない用にシルエット機能を実装。
 似た輪郭の全身グラを見繕ってシルエット化して誤魔化せればいいんじゃね?的な発想。
 シルエット処理は当初自前シェーダーを書く方向で頑張ってたけど、2DxFXに頼る方が楽だと分かりその方向に。
・C#のモダンな書き方ではusingにDisposeを任せよう。
・一見Resources.Loadで一部読み込みは不可能なように見えるが、textureを指定しSprite.Createすれば可能。
 (ただしそうすることでの処理コストは知らないよ)
・ファイルの存在をチェック→読み込みはResourcesフォルダ⇒アセットバンドル⇒外部ファイルの順が良いかな?
 逆だと外部ファイルの配置で簡単に書き換えられるメリットの一方、簡単に書き換えられてしまうデメリットもある。
・UnityのColorは0-255ではなく0-1(これのせいでキャラクターのイメージカラーが狂いまくって悩みまくった)
・LINQは使おう、C#でSQLが使えるのはなんか不思議な感覚あるけど……。
・Unityのテクスチャ座標系は左上基点ではなく左下基点。座標系の変換式は(texture.height – rect.y – rect.height)。

まあ大体こんな感じ。またモチベが徐々に低まりつつあるけどぼちぼち適当に頑張るよ。