回顧2011

時間がない。

2月末-3月はじめ
SPACE AMEBA 開発。シンプルグラフィック路線で3Dっぽい描画を取り入れた。
5月
Interceptor 開発。ホーミングレーザー撃ちたかった。
さやほむシュー 開発。初の二次創作ゲー。
11月
Cyber Fighter 開発。去年いじったノンパラダイムの経験を生かしてフル3D描画。
M 開発。スクリプト使って弾幕書く習作。
3月-現在
怨霊開発中。全力。

サイト再構築

長らく放置状態だった本サイトMASAだけど、プログラミング講座をコンテンツとして追加するにあたって整理を開始。ソースを見てみれば、どうしてこれで動いていたんだというようなひどい書き方の連続で見るに耐えない。これから暇を見てちょくちょく内容や見た目の整理を行なっていくつもりです。

プログラミング初学者向けにC#講座を書いていたと思ったのだけど、見当たらないのでもうちょっと探してみます。

現状報告

何かの慣習みたいな感じで、自分にとってはもはや区切りでもないんだけど区切りがついた気分なので久しぶりに日記を。そんなことなくとも、もっと更新するべきなのかもしれないけれど。

現在開発中のものは3+1本。

一つ目は「紅白弾合戦3」。 地味にシリーズっぽいナンバリングタイトルになってきている。斑鳩のco-opプレイをちょっといじったら対戦ゲーにならないか、という発想で作り始めた対戦ゲー。大体のベースは斑鳩で、どうシステムを調整していくかが鍵。狙撃と連射という現代っ子が失ったものを要求するものにするつもり。進捗状況は20%ぐらい。

二つ目は「Cyber Fighter」。U-20プロコンに出そうと思って作り始めたけど、結局やる気やら何やら足りなくて間に合わなかった。こちらはシューティングを知らない人でも楽しめるような、破壊の楽しさを重視した易しめのゲームにするつもり。あと無駄に全編3D描画。システム自体は概ね書き上がっているんだけど、肝心な破壊の演出を全然書いていないので進捗状況は50%ぐらい。

三つ目は「M」。ただ弾幕を避けるだけのゲームで、STGの被虐的楽しみだけを取り出したので"M"。現代っ子向きな弾速遅めな弾幕をたくさん作って20秒ぐらい1プレイで詰め込む予定。作りがシンプルなので今月13日に作り始めて既にほぼ完成状態。あとは適当にいじって見栄えを良くしたらただひたすら弾幕を書きまくるだけ。ここ数年弾遅い弾幕を書けない体になっているのが懸念点か。

そしてもうひとつ。そんなにバラしていいのかなー、ということであまりバラさないことにする。終りと始まりの作品。

みんな完成期限は大体2ヶ月後なので結構余裕がある。

あとなんかHaskellを勉強するとかAndroid開発を勉強するとか3Dモデリング勉強するとか小説書くとか言う話が出ているらしい。

ClickOnceインストーラー作るのに結構苦戦したのでメモ。使った環境はVisual Studio 2010 Pro + XNA Game Studio 4.0だけど新しめのVSだったら大体同じはず。
XNA使ってゲームを作ったのだけど、ランタイムのインストール難易度が高かったのでClickOnce使ってインストールできるようにしたかったのがそもそものきっかけ。
まず特に何も設定をいじらずにプロジェクトのプロパティの発行タブから発行をやったら、自作スクリプトのコードがインストーラーのパッケージに含まれなかった。そこでコンテンツとしてスクリプトフォルダを入れて、各スクリプトファイルのプロパティを「ビルドアクション なし」「出力ディレクトリに 新しい場合はコピーする」に設定してビルドしたらちゃんとContentsディレクトリ内にスクリプトが入って、発行をやっても問題なくできた。

そこで次の問題が浮上。XNA標準だとXBoxのコントローラー(それも使いにくい公式ドライバ)だけしか対応していなかったので、SlimDXというライブラリを通じてDirectInputを使用する自作ライブラリを作ってそれを参照設定に入れてゲームで使っていたのだが、インストールするとSlimDX関係でよく分からないエラーが出る。使っていたSlimDXはMarch 2011版で、既にClickOnceに公式で対応していたはずなのだがその説明通りにやってもうまくいかない。なのでその説明に逆らって以下のようにした。
まずゲーム本体の参照設定にSlimDXを登録する。そのプロパティで「ローカルコピー」がFalseになっているのをTrueに変更。プロジェクトのプロパティの発行タブにある「アプリケーションファイル」にSlimDX.dllが「含む(自動)」になっているのを確認して発行。

これでめでたくインストーラーが動くようになった。が、またまた別の問題。マニュアルやコンフィグツールなど、ゲーム本体と直接は関係がないファイルをインストーラーに忍び込ませる方法が分からなかった。これはソリューションエクスプローラでプロジェクトのファイルとして、忍び込ませるファイルを追加して、そのファイルのプロパティを「ビルドアクション コンテンツ」「出力ディレクトリに 新しい場合はコピーする」と設定すればOK。後から考えればスクリプトもこの方法で構わなかった。

だがまだこれでは終わらない。ClickOnceでインストールされたアプリケーションは普通に探しただけではインストールされたディレクトリが分からないようになっている(実際インストールされているディレクトリ名はカオスなので人が開くことを想定していなさそう)ため、せっかく忍び込ませたファイルが見つからない。そこでランチャを作って必要なものを開けるようにした。
だがClickOnceインストーラでは本体のアプリケーションへのショートカット(普通のショートカットファイルとは別物みたいだが)を作ることしかできなかった。そのためランチャを本体のアプリケーションとして発行しようとしたが、ゲーム本体をファイルに追加するときにカオスったので断念。なので仕方なく、ゲーム本体のアプリケーションを起動すると最初にランチャが開いてそのままゲーム本体を開始するか、マニュアルを開くか、などと選べるようにした。
最初はランチャをゲーム本体に組み込もうと思ったので、本体のプロジェクトにFormを追加してプログラム起動時にそれが開くようにしてみたのだがメッセージ処理関係で何か駄目なようでうまくいかない。そういうわけで、ゲーム本体のアプリケーションを起動→ゲームウィンドウが開く前に別個のランチャアプリケーション起動→ランチャアプリケーションの戻り値を使ってゲーム起動ボタンが押されたか判断してゲームのウィンドウを生成、ゲーム開始、という流れに。

以上でやりたかったことは全部解決したのだけど、インストールされたディレクトリが分かりにくい&カオス、という仕様があるからプレイヤーがセーブデータをバックアップするときとか困るだろうなぁ。

あとこの成果としての制作物は以下(本末転倒)。
【作ってみた】ほむほむシューティング ‐ ニコニコ動画(原宿)

エイプリルフール自粛

今年は当サイトでのエイプリルフールネタを自粛して、本当の新作告知だけを行いましたとさ(多少の誇張含むかも)。怨霊大復活。
最終更新日が去年の4月2日になっていてこのサイトの存在意義を疑い始めたけれど、これからはもう少し更新頻度が増えるでしょう。増えたらいいな。

新作?

区切りになって、プログラミング再開して、俺俺スクリプト言語の開発が進んでいる。
ということで、そのスクリプトの実用性の強化・実証、及びバーテックスシェーダー遊びとしてライトに新作を企画。コンセプトとしては「レトロモダン」。スペースインベーダーインフィニティジーンに感化されたのでそういう方向性の予定。

怨霊の公開は、DLLとかの扱いがどうにも面倒なのでお蔵入りの方針に決しつつある。怨霊でのアイデアの一部は現在妄想中の大新作に混ざっているので、怨霊は犠牲になったのだ、ということで。

あけました。

去年回顧をやり忘れたので軽く総括。
去年はSTGの面白さとかに色々思索を巡らして、考えを深めた一年。それと作る時間が取れなくなって尻すぼみになっていったという形だけど、ノンパラを通じて設計からグラフィックまで幅広く技術を磨いた一年。今年はそれが芽吹いてくれるといいのだけど。

謎の振りがあったので、妄想中の作品のプレストーリーでも。(以下の記述は開発前のものです。仕様・存在は予告なく変更されることがあります)


『時は平安。人が夜の闇に潜むモノを恐れ、また畏れていた時代。朝廷には星を見、暦を読み、占いを行う者たち陰陽師がいた。陰陽師には妖から都を守護するというもう一つの役割があったが、伝説的な陰陽師である安倍晴明が活躍した後の時代は、強大な妖が都を襲うことも、強大な妖に対抗するだけの力を持つ陰陽師が現れることもなく平穏が続いていた・・・

「きゃあッ!」
丑三つ刻の静寂を切り裂く悲鳴。悲鳴のした庭へと飛び出す男ふたり。
満月が照らす異形のモノ。見上げんばかりの巨大な体躯、岩塊のように荒々しく醜い皮膚、そして鋭い一本角。そう、最強にして最悪の妖の王、鬼である。何故屋敷の庭に鬼が現れたのか、そのようなことを考える間もなく、ふたりは鬼が左手に掴んだ娘に気付く。
「父様、兄様!」
陰陽師の親子は一瞬の逡巡の後、意を決して提げていた刀で鬼の左腕に斬りかかる。意表を突かれたのか、鬼は交わすことも防ぐことも出来ずに左腕を切り落とされる。吹出す赤黒い血飛沫。親子はその血飛沫を全身で浴びる。落下した左腕から逃れ出す娘。
「隠れていろ!」
父親は娘に怒鳴り、再び鬼と対峙する。大量の流血で動きが鈍る鬼。父親が巧みな動きで鬼を誘導し、その隙を狙い息子が跳躍して鬼の首を一太刀で斬り飛ばした。血を噴出しながら吹き飛ぶ鬼の首。その首は物陰から様子を見守っていた娘に直撃し、娘は気絶した。親子二人もそのまま鬼の血の海に倒れこんだ。

鬼の血を大量に浴びた父と兄はその夜のうちに息絶えた。妖の血、特に鬼の血は強力な妖気の塊であり、生身の人間が微量でも触れれば中毒死するものである。陰陽師が妖を相手にするときは汚染を防ぐための結界を用いるが、その晩の親子は結界を張る暇もないまま鬼に斬りかかったのである。

三日三晩眠り続けた後奇跡的に目を覚ました娘には不思議なものが宿った。舞空術、結界術、あらゆる法術を使いこなせる強大な法力、数多の妖を滅ぼす光、そして、鬼に変化する鬼の魂である・・・』


何この尻すぼみオープニング。