Heliodorさんをフォローして、最新情報をチェックしよう!

マイページへ

Ci-enはクリエイターに対して、金銭的な支援を送ることができるサービスです。

投稿記事

無料プランの記事(60)

公約ポイント達成しました

正直、キャンペーンの仕組みをよく分かっていなかったのですが(いいね!とリツイートの数?)、ポイント500を越えていたので達成したようです。
応援ありがとうございました。

公約どおり、現在製作中の「あやかし紅白戦」にボーナスイラスト(なんかエロいやつ)を追加いたします。


※追記
公約達成、じゃなくてポイント達成でしたね。てへっ。




……と、その報告だけでは忍びないのでゲーム冒頭のワンシーンを動画でちょっぴり公開。
先日ボツ絵として公開したキャラを、ゲーム開始時の状況説明キャラとして再利用してみました。
(実はモブキャラの髪型とメガネを変更してみただけですが)

なんか主役2人よりも派手な髪色で目立っている気がしなくも無いですがw

\いいねで応援!/

ZIPファイル

プログラム話です。(また無駄に長いです)


ZIPファイル、便利ですよね。アレ。

なんでも圧縮できるし、複数のファイルを簡単にまとめられるし、手軽に使えますし。
Androidの .apk ファイルやJavaの .jar ファイル、Excelの .xlsx ファイル、Word の .docx など、実はただのZIPファイルだったりします。(これらのファイルの拡張子を .zip に変えれば普通にダブルクリックで解凍できます)


とりあえずライブラリさえあればゲームからでも割と気軽に使えるので、以前はよくゲームファイルをZIPにまとめて、場合によってはパスワードもかけてEXEと一緒に入れたりしました。
もちろんパスワードはプログラム内にそのまま文字列リテラルとして書いてあるので本気で解析されたら丸わかりなのですが、それでも割と効果的なんですよね。


ZIPを作ったり解凍したりするのにシンプルなアプリしか使っていなかったりするとなかなか気づかない事ですが、実はZIP内に入れるファイルというのはファイル毎に個別に圧縮率を設定することができます。

例えばゲームファイル全部を単一のZIPに固めるときにOGGファイルだけ無圧縮にしておくと、OGGをストリーミング再生する場合にわざわざファイルを解凍してからOGGプレイヤーに流す必要がなくなります。
Cプログラムで言えば fopen でZIPを開いて(解凍する必要はなく、本当にただ開くだけでOK)適切な場所に fseek さえしておけば、FILEをそのままOGGプレイヤーに渡すことだってできます。

また、PNGなども無圧縮で入れるには良いファイルです。
PNGというのは既に画像を圧縮してあるわけですから、それをさらにZIPで圧縮してもほとんどサイズが変わりません。
それどころかZIPからPNGへ、PNGから無圧縮画像へと二段階に解凍しなければならず無駄が多いです。

そこで圧縮済みPNGを無圧縮でZIPに入れておけば(ややこしい…)、ZIPからPNGに解凍する手間が省けます。
(逆に無圧縮PNGをZIPで圧縮しても良いわけですが)



あと、ZIPファイルのパスワードというのはファイル毎に別々にかけることができます。
例えば同じZIPファイル内にある crypt.txt と plain.txt について、crypt.txt を取り出す時はパスワードが必要だが plain.txt はパスワード不要、という事ができます。

普通にパスワード付きZIPを作るといかにもZIPファイル全体に対して1つのパスワードがかかっているように見えますが、それは単にZIP内の全ファイルに対して同じパスワードがかかっているというだけです。

あまり良い利用方法が思いつかないのですが、その気になればZIP内の全てのファイルに対してそれぞれ異なるパスワードをかけることができる、という事です。

ただしこのようなZIPを作成・解凍できるツールはそう多くはありません。
そういったZIPを扱いたければ、そこそこ高機能なアーカイバを探してくる必要があります。
(さすがと言うべきか、WinRARはこれらのZIPに対応しています)



さらにどうでもよい情報ですが、基本的にZIPのパスワードには文字数制限や文字種制限がありません。
「○○文字まで入力可能」とか「半角英数のみ」とかいうのは、あくまでもツール側が自主的にかけた制限です。

全角ひらがな漢字混じりでもOKですし、そもそも普通の文字でなくてもかまいません。タブ文字0x09とか改行文字0x0Aとか、普通にバイナリデータで 0xDEADBEEF とか。
まあ、入力できるものならやってみろという感じではありますが。

極端な話、パスワードと称して、適当なバイナリデータをぶっこんでも良いわけです。
例えばEXE自身のバイナリをパスワード(もはや文字ですらないのでパスデータと言うべきか?)
にしておいて、EXEが1バイトでも改変されていたら解凍できなくなる(=ゲームが動かなくなる)なんてこともできます。改造対策に使えそうですね。
ZIPライブラリを使って自前でZIPを作成・解凍できるならば、試してみると面白いかも……?

\いいねで応援!/

ロゴテスト

少し前にTwitterで流行っていたサークルロゴ晒しの流れに乗り損ねて今更なプログラム話です。(あまりに適当なロゴだったのでちゃんと描き直しました)


ゲームを起動するとお約束のようにサークル名やメーカー名、あるいはミドルウェアなんかのロゴが表示されるの、ありますよね。
ボタン連打してスッ飛ばす人も多いと思いますが、個人的にはこの間のわくわく感が大好きです。

このサークルロゴ表示、『ヴィータ大脱出』ではマスクがスクロール→フェードインというあまり捻りの無いオーソドックスな方式だったのですが、『滅びの国の王女』では少しこだわって、スーパーファミコンっぽいモザイクが収束して表示される方式にしてみました。
ドットの荒さと相まって、思ったよりもソレっぽくなって、一人満足してほくそ笑んでました。
(どちらも体験版で確認できるので、気になる方はダウンロードしてみて下さい)


さて、今回『あやかし紅白戦』では、更に近代化(?)して「画面中に散っていたパーティクルがどんどん集まっていき、ロゴを形成する」というタイプのヤツにしてみました。ポリゴン世代のゲーム機っぽいですね。

最初はロゴ画像をいくつかの細かいパーツに分割して、それぞれのパーツを適当に回転拡縮させながら移動させようと思っていたのですが、どうせならもっと細かく……となり、結局画像の全てのピクセルが個別に動くという仕様になりました。

ゲーム開始時にロゴ用の画像をロードし、全ピクセルをスキャンして不透明ピクセルだけをパーティクル化します。
それぞれのパーティクルはランダム位置に配置して、ランダムな向きと大きさの初期速度を与えておきます。

そのような状態で各パーティクルがバラバラに飛ぶわけですが、うまいこと処理をしてやって最終的には「自分の本来あるべき位置」に帰っていきます。

これで、当初の計画であった「パーティクルが終結してロゴを形成する」プログラムは完成しました。
まあこんなところに拘っていないでゲームの残りの部分をはやく作らないといけないんですが。



ところで…

・部屋の掃除をしている時に、懐かしいゲームを見つけてつい遊んでしまう現象
・勉強をしないといけない時に限って、ついマンガを全巻読破してしまう現象
・プログラムをしないといけない時に限って、ついどうでもよいプログラム書いてしまう現象

ありますよね(よね?)。

さっさと次のプログラムに移ればよかったのですが、なんとなく隠し要素を入れてみました。
パーティクルにマウスポインターを重ねるとその部分が乱れ(?)たり、方向キーを押すとその方向にパーティクルが飛ばされたりします。
一見不具合っぽくて、自分でも「あれっ!?」と焦ったりしたのは秘密です。



せっかくなのでその部分だけ抜き出したプログラムを置いておきます。
フォロワー以上でダウンロード可能です。

フォロワー以上限定無料

フォロワーが増えるとヘリオドールの製作速度が精神的に向上します。

無料
【 白銀ベリル 】プラン以上限定 月額:500円

通常は公開されないイラストやデータ等を閲覧することが可能になります。

月額:500円
プラン詳細
\いいねで応援!/

イラスト練習中

いつものシリーズです。

全体画像はフォロワー以上で。

フォロワー以上限定無料

フォロワーが増えるとヘリオドールの製作速度が精神的に向上します。

無料
【 白銀ベリル 】プラン以上限定 月額:500円

先月以前に投稿された記事のため、この限定特典を閲覧するには[ バックナンバー購入 ]する必要があります。

月額:500円
購入する
\いいねで応援!/

ボツ絵とか

今回の記事はフォロワー以上限定です。

フォロワー以上限定無料

フォロワーが増えるとヘリオドールの製作速度が精神的に向上します。

無料
【 白銀ベリル 】プラン以上限定 月額:500円

先月以前に投稿された記事のため、この限定特典を閲覧するには[ バックナンバー購入 ]する必要があります。

月額:500円
購入する
\いいねで応援!/

記事を検索