リダイレクト

サイトを作って一年以上経って今更な感じではありますが、このサイトにhttp://www.soach-box.com/のURLからアクセスした際に、www無しのhttp://soach-box.com/にリダイレクトするように設定してみました。ついでに先日設定したhttps版にも切り替わるようにしましたが、果たしてこれで大丈夫なのやら。
過去に利用してきたレンタルサーバーのスペースでは.htaccessを使えなかったため、今回試しに使ってみた形です。URLは統一したほうが便利ですしね。
.htaccessの細かい構文は把握していませんが、他にも色々と使い道はありそうなので気が向いたときに調べてみるつもりです。

書き方を試行錯誤しているとChromeで「too many redirects」と言われてページが表示されなくなったりローカルのURLを読みにいったりして、大した被害ではないとは言えちょっと恐ろしいですね。

ツール公開

複数のwavファイルの音量を一括して変更するツールを公開してみました。
ついでに雑な両端無音削除も可能。

今後作るゲームであると便利そうなので作ったものです。
別に他の音声編集ソフト(SoundEngineとか)を使えばいい話ではありますが、D&Dでファイルを指定したかったとか何とか。

GUIの表示にかなり骨が折れたので、やや中途半端な形で見切り発車として公開しました。
作るのに掛かった時間の内訳としてはGUI:24ビット読み込み:その他=8.5:1:0.5くらい。
自分用なら見た目は適当でいいので、公開用にしっかり作ろうとすると手間が大幅に増えてしまいますね。

一往8/16/24/32ビットのwav読み込みに対応していますが、しっかり確認していないので不具合はあるかと思います。特に24ビットの読み込み。
24ビットに関してだけはデータ構造が0xZZYYXXの3バイトで一組になっているので読み込みがやや面倒でした。使う機会があまりないのはそう。
他の環境での動作確認も行っていないので、ランタイムが足りないとかもあると思います。

見切り発車のため、近いうちに更新します。多分。

サイトに公開したもののうちで前回公開した「Fine:Fector」の更新日を確認したところ2012年。作りかけて放置しているものは幾つか増えている一方、5年ほど何も公開するものがなかったわけですねー。
しかも今回はゲームではなくてツールなので、ページの作りも変える必要がありそうです。
取り敢えずトップページのみ「GAMES/TOOLS」に変更して、GAMESページの方は後ほど修正しておきます。

SSL対応

現在このサイトはロリポップのサーバーを使用しています。
先日そのロリポップが無料のSSL通信に対応したということで、早速このサイトでも設定してみました。https://soach-box.com。

詳しいことは知りませんが、Let’s Encryptが導入されているようです。HTTP2を使えるようになるので通信速度も上がるとか何とか。

ロリポップと言えば昔からトップページにいたロリポおじさん。先日のデザインがリニューアルされた際に溶鉱炉に沈められたというニュースがあったものの、今回の件でHTTP/2の説明ページを見てみたらそれらしい人物が居ますね。ウェルカムガール(デフォルトの404ページにいる人)に助けられたんでしょうか。

音楽ゲームと判定と

最近の音楽ゲームはノスタルジアをよくプレイしています。
ピアノを演奏するゲームなので、他の音楽ゲームと比べてクラシック曲が多めである点が特徴の一つとなっており、ピアノソロのクラシック曲が多い故にテンポの揺れが多く、それらの曲ではGood判定(最良のタイミングから少しずれた判定)が出やすくなっています。

ピアノ曲は本来、その時の感情を表現するためにテンポが大きく揺れることがあるものではありますが、音楽ゲームの場合はそのテンポの揺れがゲーム側で指定されているため、自分が演奏したいテンポではなく作曲者(または譜面作成者)が表現したいテンポにプレイヤーが合わせる必要が出てきます。
演奏中の譜面の設定と自分の気分がかっちり合った場合は気持ちよく演奏できますが、そうでない場合はちゃんと演奏しているはずなのにいい判定が出ないか、場合によっては全く音が鳴らないという事態に陥るという難点は多くのゲームで起こりうる問題です。代表曲はbeatmaniaIIDXのop.31叙情。

そもそもbeatmaniaは壊れたリズムマシンを人力で演奏するゲームであるようなので、オートで流れるバックトラックに合わせてプレイヤーが演奏する限りは全く問題はありません。テンポが揺れることがないか揺れてはいけない打ち込み曲では、プレイヤーはバックトラックに合わせて演奏する形が正しそうです。問題となるのは生演奏の曲で、ソロ演奏かプレイヤーがリズムを牽引するパートを演奏する場合です。

この場合、バックトラックはプレイヤーの演奏にテンポを合わせて、テンポが不自然に変化するような演奏を行なった場合は悪い判定を出すようなシステムが合いそうに思います。
で、考えてみたシステムは以下の通り。

・基準となる曲のテンポは演奏開始時からしばらくのプレイヤーの演奏から決定する。早弾きもできるがスコアに影響はない
・バックトラックはプレイヤーの演奏するテンポに合わせて再生される
・「曲のテンポをキープすべき区間」と「曲のテンポは自由でよい区間」がある。前者でテンポが乱れる演奏をするとミス、後者はよほどよことがない限りタイミングぴったり扱い
・想定されるタイミングより早くボタンを押し続けるなりすると入力に合わせてテンポが早くなり、逆はテンポが遅くなる。あまりテンポがブレすぎるとミス
・「想定タイミングより早いタイミングの入力」と「想定タイミングより遅いタイミングの入力」が混在する場合(例:トリル中の所謂あんみつ入力)は演奏上よろしくないのでミスとなる

……要するに曲側が自動でプレイヤーの演奏に合わせてくれる機能が実現できるかどうか、という感じですね。できないことはなさそうですがハードルが高そう。
従来のゲームにおいて、全体的に入力が早いだけでスコアが出ないようなプレイを評価するようにして、逆にあんみつを多用してところどころ曲が成立していないプレイは評価しないような感じにできるといいですね。

Undertale

数ヶ月前にSteamで購入して以来プレイしないままだったUndertale(英語版)を、先週末になって漸くプレイを開始し、攻略情報等は見ない状態で無事クリアを迎えました。
プレイ時間は最初のエンディング(Nルートと言われるらしい)が610分程度(60分くらい放置していたかも)で、エンディング後コンティニューして再度エンディング(Pルートらしい)を迎えた時点で800分前後でした。色々と余計に歩いて回っていたので時間は掛かっている方なのではないでしょうか。

洞窟物語とかDownwellとか、ドット調の地下を探索するゲームは評価が高いものがありますね(どちらもほぼ未プレイ)。Undertaleは見た目からしても、よく言われている通り「moon」「MOTHER」「ゆめにっき」だとかそのあたりの雰囲気を感じていました。
実際にプレイしてみると冒頭から不穏な空気が漂い、エンディング付近になるとさらに不気味な表現も出てくるので、苦手な方は意を決してプレイしましょう。登場人物は皆個性的で愛着のもてるキャラクターばかりでユーモラスな会話を楽しめました。

ゲームシステムは基本的にオーソドックスなRPGで、戦闘画面での敵の攻撃はSTGのような敵の弾幕を避ける形式で行われます。敵の種類ごとに弾幕が違うのはもちろんのこと、ボスとの対決では突然ゲームのルールが変わったりして、最後まで予想の上を行く展開をしてくれました。単純に弾幕を捌けずに数回負けたボスもいますが、操作方法が突然変わったのに関わらず、その場の勢いでトラップを突破できてしまうバランスもよく出来ていると感じました。

そして何より、戦闘中も含めたストーリーと画面や音楽の演出がとても熱い点が一番のポイントで、ゲームならではの表現がとにかく盛り込まれています。セーブできる箇所が一箇所しかないので(ゲーム内の操作で)バックアップを取っておくことができないというあたりもストーリーに関係してくるとか、しばしばゲームで主題に置かれたりびっくり要素として組み込まれるメタな要素も有効に活かされています。

エンディング分岐は細かいフラグを省くと大きく3パターンで、見ていないルートはあと一つあるのですが、女神転生でいうニュートラルルート的なものを自分で選択する決断が必要になるようです。挑んでみるかはまた後日考えておきます。
自分でクリアするのを躊躇わせるようなゲーム(「夢をみる島」とか)として、評価が高いのも納得できる作品でした。

ワンキーゲーム続行中の2

先週はゴールデンウィークということで、ゲームの制作もそれなりに進行しています。
先日Twitterに上げた動画はこちら。

一番手前にあるブロックと同じ色のタイミングでキーを押していくゲームです。タイミングは音楽に合わせるとちょうどいいかもしれない、というやつ。
音楽違いで他に複数ステージ作るつもりのため、その曲を準備するのもなかなか手間取っております。効果音も複数種類用意したいところです。
この動画だと「赤・青」で2拍ごとのタイミングとなっていますが、「赤・赤・青・青」で2拍を1拍ごとに分割したり「赤・青・赤・青」と表拍と裏拍に分けたりすることもできます。ゲームバランス的に難しくなりそうなのでそのあたりは追々調整を。
当初はさくっと作って軽く公開するつもりでしたが、やはりというか少しずつ作業量が増えていきますねー。とりあえずの目標は今月中に一通り形にすることでしょうか。

特に大きな用事は無かったのにかかわらず、連休中にゲームをいくつかプレイするという予定については全く実行できずに終わってしまいました。残念。

4in1

いま普段使っている多機能ペンはラミーの4penなのですが、
以前これにゼブラの4C芯を入れた結果穴が緩くなってしまい、ジェットストリーム等の4C芯を入れると芯が下に滑り落ちやすい状態になってしまいました。
ゼブラの4C規格は若干大きいということは以前から知っており、敢えて試してみたものなので仕方ないとは言えゼブラ芯以外での快適性が落ちてしまったのはなかなか手痛いものがあります。

というわけでゴールデンウィークということもあり(?)、新たなペンとしてロットリングの4in1を購入してみました。商品券があったので数割引。
ペンの条件として「赤・黒・青のボールペンがある(緑も使えればなおよし」を考えて探すとデザイン的にラミー2000やステッドラーのアバンギャルドあたりも候補に挙がりましたが、前者はまだそのときではない、後者は軽すぎるという理由で最終的に4in1。黒のカラーリングがあればそれがよかったものの、現在はグレーのみなのでしょうか?

4penに比べると若干軽め、若干細めなので持ち運びには多少向いているのでしょうか。今後はこちらをメインに使うことになりそうです。もしくは可能なら4penを太め、4in1は細めの芯で使い分ける方向で。

ワンキーゲーム続行中

Love2dを使ってのワンキーゲーム制作を続けています。現状はこんな感じ。

携帯端末を見越して画面を16:9のサイズにしました。

空いた画面の左側を情報表示用兼タップ用スペースとするとして、実際にスコアを表示させてみるとゲームらしい感じが出てきますね。円形の文字配置は一度やってみたかったので試しに。
画面の左側を開けていますが、右手で操作するとなると左右を反転させて右側を開けた表示にできるようにもしたほうがよさそうですねー。

Love2dはapkファイルを書き出して、実際にAndroid端末で動作することを確認しました。やはり導入はある程度の手間がかかりますが、一度環境ができてしまえばそこそこ楽に作れそうです。手順はAndroid版のWikiに書かれているもので大丈夫な模様。
宿命として音声の再生にはどうしても若干のラグが発生が発生しますが、新しめの端末なら気になりにくい程度に改善されている気がします。
iOS版の確認はゲーム本体がもっと形になってから試す予定です。形になるまで作れるといいですね。

このゲームを作る上でBGMとなる曲も合わせて作ると必要があるため、以降の製作ペースは遅くなりそうです。ある程度形を作ったところで放り投げがちなので、ここから地道に続けることが重要となります。他のゲームのアイデアが突然浮かんだりした場合は放り投げ率がアップ。今の所は順調に進んでいるので何とか公開までは持っていきたいところです。

Love2dを試す

作りかけのアクションゲームは作りかけのまま放置して、現在ワンキーゲームを作っています。
現状はこんな感じで。
見た目にはよく分からないかと思いますが若干パズル的な要素があるかもしれないものです。
折角ワンキーゲームを作るのであれば、Fine:Fectorもそうですけれどもスマートフォンに移植しても遊びやすいだろうなと思うところがあるので、
今回はAndroid/iOSでも書き出しのできるゲームエンジンを試してみることにしました。

今一番メジャーなゲームエンジンであるUnityUnreal Engineは3D向きであることと何かとヘビー級な印象があるので今回はナシ。
2D向きのものとしてはCocos2d-xLÖVEDeforld等色々なものがあります。
Cocos2d-xはC言語、後者2つはLua言語を主に使用する模様。
今回は一番手軽そうだったのとLuaに触れるきっかけを作る意味でも、LÖVE(入力しづらいので以下Love2dとします、表記はどちらでもokぽい)を使ってみることにしました。
先日書いたStrange TelephoneもLove2d製のようですね。

で、まずHello,Worldを試すと、これがHSPを彷彿とさせる手軽さ。資料もしっかりしているので簡単なゲームを作るのは向いていそうです。
Hellow,Worldを出した後で、ではどうするかと困るところではありますが、日本語のチュートリアルとして山水堂さんによさげなものがあるので見てみると基本は大丈夫かと思われます。

luaに関しては if ~ then だったり基本的にグローバルな変数だったりとBASIC的な感じ。記法もそこまで複雑なところはなさそうです。配列が無い代わりにテーブルという万能そうなものがあり、これを使ってクラス的なものを作れたりするのがポイントなのかも?
クラス的なものを作るとselfの書き忘れによるエラーが多発してしまいましたがご愛嬌。

ここまで触ってみた限りだと、キー入力や画像の表示等のゲームに必要な機能がわかりやすくまとまっており、小さいゲームはかなり手軽に作れそうな印象です。大作を作ろうとすると管理が大変になりそう。
AndroidやiOSへの書き出しは試していませんが、多分ある程度頑張ればいけるのでしょう。方法はしっかりと説明されているので有難いですね。

マストドン

Mastodonというサービスが急に話題になっているようです。綴りがややややこしい。
ポストTwitterだとか言う記事もありますが、実際にのぞいてみる感じだと目的自体がTwitterとは違うように思えました。

各々のユーザーが短文を投稿できる仕組みでは同じですが、Mastodonは投稿先となるインスタンス(サーバー)を各自で用意することができ、ユーザーは何れかのサーバーに所属することになります。
ログインして見えるのタイムラインには、Twitterのように自分がフォローしたユーザーの投稿が表示されるもののほかに
・ローカル(所属するサーバー内の投稿が表示される)
・連邦(Mastodon全体で投稿された内容が表示される)
があり、連邦タイムラインはほぼ全ユーザーの投稿が次々に表示される(と思う)ためすごい勢いで流れていきます。
ローカルタイムラインは所属するサーバー次第でまったりした流れだったりします。

サーバーはそれぞれに話題にしてほしいカテゴリが提示されていたりするので、興味のある話題に触れるサーバーに登録すると→ローカルのタイムラインに興味のある話題を見つけやすい、ということになりソーシャル感が出てきます。
成り行きで日本代表となったサーバーにmstdn.jpはあるものの、皆がここに登録してしまうとローカルの話題が雑然としたものになってしまうので、Mastodonとしてのうまみは薄れそうな印象があります。
軽く触れた感触としてはTwitterよりも一昔前のチャットだとかIRCに近いですねー。ログはサーバー側に残っていつでも見られるのでよりオープン。
試しにniu.moeにもアカウントを作ってみました。日本語以外の言語を多く見かけるのでグローバル。
日本語だけで投稿するわけにも行かないので英語の練習にも使えるかも?

サーバーは個人が立てることができて、そこにログインするという仕様上、メールアドレスとパスワードを管理人にさらわれる事例も起こっているようです。共通のパスワードの使用は控えた方がいいかも知れません?

個人が立てた他にも、Pixivが用意したPawooというインスタンスがあったりと色々出てきそうです。
インスタンスごとにユーザー登録する必要があるため、複数の場所に登録している場合の取り回しと携帯端末向けのアプリ次第で流行るかが分かれるかも?
ポストTwitterとしては方向性が違う点と、最近サービスを終了したApp.netのような例もあるので落ち着くまでまだ様子見という感じではあります。

—-
やはりというか、Pixivの用意したPawooはその内容ゆえに海外のインスタンスからブロックされたりしている模様?
サーバー単位でブロックすると連邦(いつの間にか連合に訳がかわっていた)タイムラインにも表示されないものと思われます。
ルールもそれぞれの国で違うところがあるので最初に所属するインスタンスはある程度考えて選ぶ必要がありますねー。
この若干のハードルの高さをもって棲み分けがうまくいくといいのですが、どうなるやら。