日本のアニメオンエア時間検索を作ってみました

前の投稿でホームページを多言語しましたという投稿をしましたが、実はその目的がこれだったりします。

β版開発室の方にて「日本のアニメ検索」を作ってみました。β版開発なので、正式サービスとして公開する予定はなく、あくまでも開発目的で作ってあります。

内容はアニメ検索と言いながら、今後一週間のアニメのオンエア時間を見れるというものです。ジャンルごとに分かれているのでジャンルで検索すればそのジャンルで表示するアニメを絞り込むことができます。他にも検索項目があればよかったのですが、まあとりあえず作ってみたものなので、気が向けば増やしてみたいですね。

まだテスト運用したばっかりなので正常に番組内容が新しくなるかはもうちょっと動かしてみないとわからないです。一応1日ごとに更新されます(予定)。

まあ、アニメ検索自体は他のサイトでもやっているのであんまり需要はないのですが、今回作ってみたのは他の言語でも同様に表示されるというのをやってみたかったからです。言語を変更したブラウザで開けばその言語でテキストが表示されるようになっています。ただ、アニメのタイトルは結構特殊なものが多いので正常に翻訳されていないものも結構あるのですが、そこはイメージで感じ取ってください、ってな形で。ちなみに翻訳できなかった場合は日本語にしています。グローバル的には英語にするべきなのですが、日本のアニメなんで日本語のままにしてあります。

あと、オンエア時間とかは自動で更新されているので正しいかどうかは特に検証していません。とりあえずこんなアニメがあるんだー、へー、程度で見ていただければと思います。

]]>

ホームページを多言語対応しました

ホームページ「ソーサリーフォース.net」を多言語化対応してみました。対応している言語は列挙するのがちょっと大変なので書きませんが大体40か国語ぐらいに対応しています。主要な言語については大体サポートしているつもりです。

1年前に英語には対応していましたが、なんとなくやってみた程度だったので、半分ぐらいは翻訳されていない状態でした。最近プログラムの方をさわる機会ができたので今回一気に多言語対応しました。ただ、ページによってはそもそも多言語化する必要のないところもありますので、そこはそのままにしてあります。

多言語化の仕組みなんですが、sorceryforce.net ではサーバープログラムに ASP.NET MVC を採用しています。ASP.NET MVC にはローカライズの仕組みがあり普通に多言語化する分にはこれを使って作ります(作ると思います)。

ただ、調べてみると言語が増えるたびにファイルが増えて行くというなんとも嫌らしい構成になるらしく、数言語ぐらいならまだしも全世界対応ってなると相当な数になるみたいです。ビューを言語ごとに作成するとなると、レイアウトとか変更するたびに全ファイル修正しなければならなくなり、ビューの修正が億劫になってしまいます。私も Windows From でちょろっと多言語化やってみたのですが、同じように Windows Form のデザインを言語ごとに作る必要があり、とてもめんどくさそうなイメージがありました。まあ、ASP.NET MVC ならビューの継承、Windows Form ならフォームの継承を使ってある程度はごまかせるのですが、テキストが右⇒左方向だったり、翻訳語のテキストが長くなったり、文字の大きさが変わったりするので結局は微調整に時間を取られそうな感じがしますね。Windows Form は問題が顕著になりますが、Web ならレイアウトはある程度ブラウザが補間してくれるのでなんとかなりそうな気がしますが。

で、そんなこんな考慮してみて、最終的には多言語対応はすべて自前で実装しました。Visual Studio のリソース入力もめんどそうだったので、テキストはすべて Excel で管理し、日本語さえ入力すれば後は半自動的に他の言語に翻訳してくれるようにしました。半自動っていうのは、テキストを入力した後に頻繁に翻訳されても困るので、入力した後にバッチ叩けばプログラムにまで自動反映されるよー、っていう感じにしてあります。

実際にビューに出力する方法としては、テキストはすべて ID 管理されているため、.cshtml とかで @Model.GetMessage(なんちゃらID) のようにしておけば、後はブラウザの言語を判定して対応する言語で表示されるようになっています。ID は列挙体なので、ID 名でどんなテキストかわかんなくてもマウスカーソルを合わせれば summary で元の日本語が表示されるのでとても便利です。

あと、この仕組みはプラットフォームに依存しないようにしてあるので、ASP.NET でなくても、.NET Framework であれば他のアプリケーションにも適用できるようになっています。クライアントツールとかゲームとか Windows ストアアプリとか。まあ、まだホームページにしか使ってないので、機会があれば他のソフトも多言語対応してみたいですね。

ちょっといろいろ長くなってしまい、また内部的な話になっていしましたが、要はホームページを多言語化対応しました、という話でした。

]]>

チェックリスト管理ソフト「ラステイル Ver 4.02」公開

先日バージョンアップしたラステイル Ver 4.01 なのですが、タスクトレイのアイコンの画像が間違っていたので直したものを Ver 4.02 としてアップしました。特に機能面で修正はしていないので、気にしないのであれば Ver 4.01 を使っていても問題ありません。

ダウンロードページ

]]>

チェックリスト管理ソフト「ラステイル Ver 4.01」公開

バグを見つけたので1カ所修正しました。修正した内容は以下のものになります。

  • チェックリストを水平分割、または垂直分割した際に2画面目の方のタブが複数になった場合に正常にタブを選択できなくなる不具合

クリティカルな問題ではないのですが、使用上問題がある方は、以下のページからダウンロードして上書き更新してください。

]]>

Windows ストアゲーム「エイッとウォーズ 」Ver 1.01 が公開されました

表題のとおりなのですがやっと公開されました。Ver 1.01 を公開するにあたって2回もリジェクトされてたのでへこんでたんですが、やっとでてきましたね。ネット接続する場合、いくつか審査で引っかかりやすいので気を付けないといけないですね。

さて、バージョンアップ内容なのですが、すでに公開前から専用ページに書いていたのですが以下の通りになります。主にオプション的な機能を追加しています。ゲームバランスについては特にいじってはいません。

  • ステージクリア後にスコア表示
  • 各ステージのベストスコア画面追加
  • クリア済みのステージ選択 (全バージョンは前にのみ戻れたが、Ver 1.01 は双方向可)
  • プレイヤーレベル選択 (ただし条件を満たす必要あり)
  • ステージクリア後、同じステージを再挑戦できるようにした
  • クリアスコアを Twitter につぶやき (IE起動)
  • アプリのファイルサイズを10%程度縮小

 

主な追加機能としてはスコアが追加されたところですかね。各ステージごとにスコアがでるので、最短クリアや低レベルクリアの記録を残せるようになりました。スコアは Twitter にも連携できるのでバンバン投稿しちゃってください。

 

エイッとウォーズ専用ページは以下のURLになります。

ダウンロードページではないですが、ストアに直結するページは以下のURLになります。

]]>

レスポンシブデザインにしてみた

最近話題になっているレスポンシブデザインをホームページの方に適用してみました。とはいっても sorceryforce.com の方ではなくて sorceryforce.net の方です。

レスポンシブデザインと大々的に描いてますが、適用しているのはブラウザの幅に合わせてレイアウトを変更している部分です。スマートフォンとかのようなブラウザサイズが小さい画面でもコンテンツをなるべく表示できるようにしています。まあ、もともとPC向けのサイトなのでページによってはそれほど快適になるわけではないんですけどね。ここらへんは CSS の調整次第かと思います。

sorceryforce.net の方はサービス系のアプリとかを公開するために作ったんですが、しばらく放置気味だったのでこれから少しずつ構築していく予定です。外部コンポーネントとか使わずに自分で構築しているので結構時間がかかったりとかテストが面倒だったりしていますが、そのかわりすべて自分で制御できるので自由度は高いですね。

]]>

エイッとウォーズ専用ページ作成とそのほかもろもろ製作についての雑記

先週 Windows ストアに「エイッとウォーズ」を公開したとブログに書いたのですが、そのときスマフォしか持ってなかったので詳しいことは後で書こうと思いつつ今になってしまいました。

アプリだけ公開すればいいのですが、せっかく作ったゲームなので専用ページも作成しました。以下のリンク先から見れると思います。

こっからは製作についての経緯とか感想とかもろもろ雑記になっていますが、結構長文になってしまいました。書くのが割と苦手なので始めはうへーと思いながらいざ書いてみたらこんな結果に(^^;)。雑記の部分については専用ページにも転載しています。

雑記

登場キャラクターからもわかる人はいるかと思いますが、このゲームは「エイっと作ろう! Windows ストアアプリ選手権」でアプリを出してみようを思って作ってみたゲームです。この企画自体は前々から知っていたのですが、その時点では「へー」程度に思っていただけで特に作ろう、というような考えはありませんでした。まあ別件でやっていたこともあったので。

とか言いつつも、なぜかしょう子の絵を描いてたりしてました。アプリ作らずに絵を描くという謎行動。この時点でもやはりアプリを作ろうとは全然考えていませんでしたね。ちなみに絵はpixivにあげています。(以下のリンク先)

で、ふとアプリを作ってみようと思い立ったのが2013/5/6(月)あたり(しかも午後あたり)。どんなゲームにするかもまだもやもやしていた感じだったと思います。当選手権の締め切りは5/12(日)で、「アプリがストアに公開されている」ことが条件らしかったです。

時間がなかったので画像やBGMなどは素材屋さんからお借りすることにし、自分はプログラムを中心に制作しました。素材をお借りするといってもゲームに合わせないといけなかったのでいろいろ調整はいたしましたが。まあでもこれは半日ぐらいでなんとかなりました。

プログラムの方なのですが、実はこっちの方が難題であり、ゲームを作るという風には考えていたのですが、Windows ストアアプリでゲームを作る場合、標準で対応されているのが「C++ & DirectX」のみになっていてそれしか選択肢がありません。まあ、C# + XAML や Javascript + HTML でゲームっていう選択肢もありますが、こちらは高度なゲーム制御ができなく、目的のゲームを作りきることができるのかまったく未知数でした。

正直 C++ + DirectX で今から API 調べながら作るのはさすがに時間的に無理だろうと思い、いきなり挫折しそうになっていたのですが、ちょうどそのころ赤坂怜音さんが「MonoGame」の記事を書いており、プログラムがほぼ XNA と同じコードで作れるというのを知ったのでこれで作ってみることにしました。軽くサンプルを作ってみたのですが、割とそのまま動いたのには驚きました。

XNA と同じ形で作れるといってもライブラリとか作ってたわけではないのでほとんど1から書き起こしでプログラムを書いていきました。基本的にはほとんど意図したとおりに動かすことはできたのですが、一部動かない、使えない、意味不明なエラーがでるなどの現象に遭遇するので、MonoGame で作られる方は注意したほうがいいかと思います。Web で情報を検索しても日本語サイトの情報はほぼ皆無ですし、英語圏でも見つかるかどうかというレベルです。MonoGame を使う場合は、自力で解決できる方のみの方がよろしいでしょう。

そんなこんなあって完成したのが5/12(日)のお昼あたりです。プログラム作るのに3日、ゲーム調整に2日ぐらいでしょうか。期間的には6日ぐらいですが、平日は普通に仕事をしていたので作業時間は実質30時間ぐらいでしょうか。細かくカウントしていたわけではないのでちょっとあいまいです。寝ないと生きれない人間なので徹夜とはしないで普通に寝て生活してました。

わかる方はもうおわかりかと思いますが、ゲーム自体はできているにも関わらず、この時点ではまだストアの方には上げていません。ストアに上げるための審査には2日~5日ぐらいはかかるといわれているので、もうこの時点でゲームオーバーです。選手権に参加していない理由はこれなんです。実際には1回審査ではじかれたので、もともと時間的にだめだったのですが…。

とまあこんな感じでできたゲームなのですが、無料で公開してますので Windows ストアアプリを動かせる方はぜひ遊んでみてください。1日ぐらいあれば全ステージクリアできると思います。ステージごとにセーブはされますので、1日1ステージな感じでちょっとずつ遊んでみるのもいいかもしれません。Web からは以下のリンク先、ストアでも「エイッとウォーズ」で検索できると思います。

公開しているバージョンについて

この記事を書いている時点でWindows ストアに公開されているエイッとウォーズのバージョンは「1.00」になっています。現在 Ver 1.01 を申請中で、これが通った場合、以下の機能が追加されます。

  • ステージクリア後にスコア表示
  • 各ステージのベストスコア画面追加
  • クリア済みのステージ選択 (全バージョンは前にのみ戻れたが、Ver 1.01 は双方向可)
  • プレイヤーレベル選択 (ただし条件を満たす必要あり)
  • ステージクリア後、同じステージを再挑戦できるようにした
  • クリアスコアを Twitter につぶやき (IE起動)
  • アプリのファイルサイズを10%程度縮小

エイッとウォーズ専用ページに書かれている内容は Ver 1.01 についての内容なのでご注意ください。上記の機能付きで遊びたい方は少々お待ちいただければと思います。

]]>

MonoGame の SoundEffect.Play メソッドで未定義エラーが発生する原因について

国内にはさっぱり情報がないので海外のサイトを調べていたのですが、いくつかのサイトでは SharpDX の参照 DLL が間違っているせいという答えが書かれていました。しかし情報としては数か月前のものであり、実際に参照を見ても最新版では間違っているようには思えませんでした。

もう少し調べてみたら下記のサイトを見つけ、内容の通りに修正してみたら見事解決。情報が少ないと割と自力解決しなければいけないので苦労しますね…。

]]>

[プレイ動画] 改造FF5 の動画アップ 37

とうとうラスボス前最後のボスとなりました。どう考えても運ゲーにしかなってません。もう2度とやりたくないと思った一戦でした。

次回最終回にするか、エンディングも入れて2回にするかちょっと迷ってます。

]]>