例大祭14のやつのダウンロード版委託について
例大祭お疲れ様でした。
今回の新刊タワーディフェンスは下記のサイトで委託してます。
DLSite
メロンブックスDL
DMM同人
18禁ゾーンに飛ばされるので注意。 www.dmm.co.jp
開発記録のこと
twitterで開発の進捗をつぶやいてたので、せっかくなのでモーメントにまとめたやつ。 twitter.com
例大祭14のこと
あと一週間てなわけで、絶賛開発中ですが、なんか出ます。B41aオートリ電子。タワーディフェンス的な。たぶん100円。
#spritestudio pic.twitter.com/JAgUbubdxE
— enu@例大祭14_B41a (@_enu) 2017年4月28日
モーメント
IchiPixelでプレゼンしたこと
というわけで、さる3月24日、IchiPixelというゲーム開発者飲み会で、開発中ゲームのプレゼンをさせてもらった。
飲み会の場で他人と会話して情報交換して……みたいなコミュが苦手なフレンズは、もはや、マイクを手に入れてアナウンスするしか道は無いのである。やれやれだぜ。
プレゼンの内容は↓。
【Unity】ETC1(Split alpha channel)形式テクスチャをUIに使う
やること
Android環境において、アルファつきテクスチャ画像をETC1(Split alpha channel)形式でインポートし、UIで使う。その手順について。
手順
テクスチャインポート設定
- SpritePacker有効時のみ有効なので、
PackingTag
を設定。 - Formatを
RGB Compressed ETC 4bit
にする。 Compress using ETC1(split alpha channel)
にチェック。
ちなみに、ビルドするとこんな感じでログが出る。
シェーダ設定
デフォルトのUIシェーダはアルファ分離ETC1に対応していない。
そこで、ProjectSettings -> Graphic -> Always Included Shader listにUI/DefaultETC1
を登録しておくことで、適切なシェーダへの切り替えを行ってくれるようになる。
確認
じっきでおこなわないとひどいめにあう。
参考
【Unity】パーリンノイズで陽炎っぽいエフェクト
パーリンノイズによる陽炎めいたやつ pic.twitter.com/uUDwLtQ03E
— enu (@_enu) 2017年3月1日
コード
for Unity5.5.2f1
必要ファイル
パーリンノイズのコードは↓から。
【Unity】ダメージっぽい数字表示
Unity5.5.1p4
— enu (@_enu) 2017年2月18日
コード
BaseMeshEffect
を継承して作る。Shadow
コンポーネント等と一緒にアタッチすると変になったりするけど、処理順の問題なので、コンポーネントの順番を入れ替えれば良い。
【Unity】Z書き込みアリのSpriteシェーダ
UnityのSpriteシェーダはデフォルトだとZバッファに書き込みを行わない。
そこでデフォルトシェーダを改造し、Zバッファに書き込むシェーダを作成する。その手順。
Unityは5.5.1p3。
手順
1.デフォルトのシェーダを取得
Unityのサイトからビルトインシェーダをダウンロードする。
zipを解凍し、DefaultShaderExtra/Sprites-Default.shaderファイルがそれ。Unityにインポートする。
↓が今回のDL元。
2.名前変更
一行目、Sprites/Default
になってるのを分かりやすい名前に修正する。
今回はTSKT/Sprites/ZWrite
にした。
3. Queue変更
"Queue"="AlphaTest"
説明は↓のあたり。Rendering Orderの項目。
4. RenderType変更
"RenderType"="TransparentCutout"
5. ZWrite変更
ZWrite Off
となっているのをZWrite On
にする。
6. アルファテスト追加
frag
メソッド内に↓を追加する。0.5は適当な数値に調整すれば良い。
clip(c.a - 0.5);
これはいわゆるアルファテストで、αが一定以下のピクセルを破棄する。これがあるために、今回つくったシェーダでは半透明な領域やフチ部分は汚くなってしまう。
まあ、やらないと透明な領域までZバッファが書き込まれてしまい、欠けてほしくない部分が欠けたりしてまずいのだ。半透明は諦めよう。
ちなみにこんな感じで汚くなる。絶望的。
default
zWriteOn