掲示板お問い合わせランダムジャンプ

トップスペース

2010年05月29日
「アゼル -パンツァードラグーンRPG-」をクリアした
アゼル_パケ

 サターンユーザーならプレイ必須作品ですが、恥ずかしいことに先日やっとプレイしてクリアしました。
 点数をつけるなら10点満点中10点です。
 シェンムーと同じ3D空間上のキャラクターを背後からのカメラ視点で操作するタイプのRPGですが、カメラワークやカット割り、モーションなどはハードが2世代進んだ現在のゲームと変わりありません(最近のゲームをやらないので知らないだけかもしれないが)。ハードの性能によるところ以外は今でも遜色ないと思います。カメラワークはガンダムやマクロスで見たことあるようなのもあるので30年前から基本は変わっていないのかもしれませんが。
 一番気に入ったのは戦闘システム。元がシューティングゲームだけあり位置取りバトルはシューティングゲームっぽいです。ダメージを喰らう間もなく敵を速攻で倒してExcellent評価を狙うも良し(全ての敵で狙えるらしい)、敵の必殺技みたいな攻撃をわざと喰らって演出するも良しです。

 この名作をなぜ当時プレイしなかったのか言い訳を考えてみると、たぶん他にも注目タイトルが多かったからだと思います。ざっと同時期の注目タイトルを挙げてみると結構あったりします。
1997年
10月30日 カルドセプト
11月13日 デビルサマナー ソウルハッカーズ
11月20日 Jリーグ プロサッカーチームをつくろう!2
12月04日 この世の果てで恋を唄う少女YU-NO
12月11日 プリンセスクラウン
12月11日 シャイニング・フォースIIIシナリオ1
12月18日 グランディア

1998年
1月22日 センチメンタルグラフティ
1月22日 サウンドノベル 街
1月29日 AZEL -パンツァードラグーン RPG-
1月29日 仙窟活龍大戦カオスシード
2月19日 プロ野球チームもつくろう!
2月26日 バーニングレンジャー

参考:セガサターンのゲームタイトル一覧 - Wikipedia
 おそらくこのときがセガサターンの全盛期。1998年の年末にはドリームキャストが発売されますが、まだセガサターンで頑張れた気がします。


 以下ネタバレ含みます。


続きを読む ...
 
[ 投稿者:うえぽん at 20:11 | ゲーム | コメント(4) ]

「時空探偵DD 幻のローレライ」をクリアした
時空探偵DD_パケ

 積んでいるセガサターンソフトを少しずつ消化していますが、「時空探偵DD 幻のローレライ」をだいぶ前に2回クリアしました。
 他のレビューサイトでも言われていますが、一言でいうとクソゲーです。オープニングが長く、それだけでディスク1が終わります(一応エンディングもディスク1にあります)。ディスク2へ進むまでにプレイヤーが操作したのはタイトルでスタートボタンを押しただけ。ディスクを交換してくださいというメッセージを見たときのガッカリ感ときたら…。
 そしてパッケージの絵にチャイナ服や古城、魔方陣がありますが、本編を進めてもそれらは出てこずクリア。パッケージから色々想像しているとガッカリさせられます(きっとパケ絵で売れるように工夫したんでしょうね)。
 それでも全ての要素を見てみたかったので2回クリアしました。

 さて、このゲームのヒントの出し方で気になることがあったので書いておきます。
 このゲームには「ヒント」というコマンドがあるのですが、このコマンドは「ヒントを教えてくれるアイテム」を取らないと有効になりません。ヒントを安易に見られないようにしておくのは良いのですが、この「ヒントを教えてくれるアイテム」を見つけるのがゲーム本編をクリアするよりも難しかったりします。クリアしたものの「ヒントを教えてくれるアイテム」はゲットできなかったという人もいるようです。自分もゲットできなかったので確認のために2回プレイとなりました。
 普通ヒントというのはクリアできない人のためにあるものです。それなのにクリアより難易度が高いのは本末転倒な気がします。
 とは言え2回クリアして気づきました。アイテムを取れなかった場合はより一層のヒントを与えるようにしてありました。1回目クリア時はアイテムを取らなかったのですが、なんと主人公がヒントをつぶやきだします(ボイス付き)。ちゃんと救済策を考えてあったんですね。ただ一歩歩くごとに同じ内容のヒントをボイス付きでつぶやくのはどうかなと思います。

 さてさて、このゲームのハイライトシーンを挙げると、声が丹下桜のキャラがシャワーしてるのを覗くところです。しかも「実は女だったのか!」というシチュエーション。でもCGが…。

 ちなみに、続編はPSのみで出ていて普通の出来栄えだそうです。

【Amazon.co.jp】
 時空探偵DD 幻のローレライ

【余談1】
 オープニングのワンシーンをアニgifにしてみました。
 時空探偵DD_OPより
 これは笑わせるためにこんな動きをさせているのか、それとも技術不足でこうなっちゃったのか分かりません。どちらにしても素直に笑って良いのか困ります。

【余談2】
 下のサイトにチラシが掲載されています。
 時空探偵DD ~幻のローレライ~
 発売予定が1年前だったときのチラシもリンクの先のページにありますが、雰囲気が全然違います。もしかしたら作り直しがあったのかもしれません。
[ 投稿者:うえぽん at 19:59 | ゲーム | コメント(2) ]

2010年05月15日
YouTube に h.264 でアップロードするとジャギが出る(2010年5月現在)
 YouTubeは時期によって仕様が違うので2010年5月現在の話になりますが、アップロードしたファイルの動画フォーマットがh.264だとジャギが発生するようです。
 DivXなど他の形式だと発生しません。

 とりあえず検証としてCZP(Circular Zone Plate)をアップロードしてみます。CZPについては「ISP imaging-developers - CZPによる評価」などで説明されています。
 今回は拙作「lua for aviutl」でCZPを作成しました。スクリプトはver 0.0.9以降にサンプルとして同梱してます。

 まず h.264 でアップロードしたもの。サイズは640x480です。エンコには x264 の r1583 を使用し、エンコオプションは --preset medium --colormatrix "bt470bg" --crf 20 です。



 上部と下部の円形がはっきりと見えます。360p だけでなく 480p でも同じです。
 これがジャギとして見えるようです。

 次に DivX でアップロードしたもの。これもサイズは640x480です。



 上部と下部の円形は目立っていません。

 とりえあず原因は分かりませんが、直るまでは h.264 以外でアップロードするのが無難だと思います。

 ※YouTubeは過去にアップロードした動画を再エンコすることもあるので、今後、上に挙げた動画が直っている場合があります。
[ 投稿者:うえぽん at 19:06 | 雑記 | コメント(0) ]

除算(割算)を右シフトにするときの注意
 AviUtlの色変換プラグインを作ってみました。名前は rgb2yuy2(BT.601) で、SSE2必須です。
 いつもの置き場所
 「補間なしYUY2アップサンプリング」と「UVダウンサンプリング(のYUY2平均)」を統合したようなもので、RGB → YUY2 を重視したつもりです。
 標準の BT.601 と同じように使えますが、標準はYUY2出力時に小数点以下切捨ての傾向があるようなので、それに対して四捨五入としてみました。
 あと、頑張ってSSE2化(prefetch*やmovnt*も使ってる)してますが、標準より遅いです。


 以下、薀蓄です。
 rgb2yuy2(BT.601)では、RGBからAviUtlの内部変数YC48への計算式はこんな感じにしています。
 この +2048 が薀蓄の結論です。
y = ( 19666*R + 38595*G + 7532*B + 2048) >> 12;
cb = (-11105*R - 21792*G + 32897*B + 2048) >> 12;
cr = ( 32897*R - 27525*G - 5372*B + 2048) >> 12;
 2の累乗の除算を右シフトに置き換えるのはよくあることで、今やというか大昔からコンパイラーがやってくれます。実はこのシフト命令への置き換えには細かい注意点があるのですが、意外と忘れがちです。特にMMXやSSE2を使うにあたっては、整数の除算命令がなく、自前で右シフトに置き換える必要があり、その際に細かいミスを犯している可能性があります。

 とりあえず思い浮かんだ注意点は3つ。
 (1) 右シフトには算術右シフトと論理右シフトがある
 (2) -1 をいくら算術右シフトしても -1 のまま
 (3) -5 / 2 は -2 だが、-5 >> 1 は -3

 算術右シフトは空いたビットを符号ビットで埋めますが、論理右シフトはゼロで埋めていきます。C言語で普通にシフトすると、符号付整数(signed)のシフトは算術シフト、符号なし整数(unsigned)のシフトなら論理シフトとなる場合が多いです(※処理系よって違うことあり)。

 (2)と(3)は小数点以下の丸め方が違うために起こります。除算の丸め方向は処理系依存ではありますが、gcc4.4.4(x86)では切り捨てですので、以下除算は切捨てするものとして書きます。
 この解決方法ですが、コンパイラーは次のように置き換えて問題を解決しているようです。
※ a / 4096 を右シフトで計算する場合(aはint型)

a が正数 → a >> 12 とそのまま計算

a が負数 → (a + 4095) >> 12 として計算
 注目は被除数が負数のときで、(除数 - 1)を加算してからシフトします。
 条件分岐があると速度が落ちてしまいそうですが、コンパイラーはちゃんとcmov命令を使うなどして機械語レベルで分岐をなくしています。
 SSE2ではpcmp*系の命令でビットマスクを作成して分岐なしにできますが、今回はそこまで正確にやらず、小数点以下の丸めを四捨五入にすることで近似しました。

 まず四捨五入について説明します。一見、除数/2 を加算してから除算すれば良いように思えますが、これも正負でやり方が変わります。
※ a / 4096 を四捨五入丸めで計算する場合(aはint型)

a が正数 → (a + 2048) / 4096 と計算

b が負数 → (a - 2048) / 4096 と計算
 被除数の正負によって加算する値の正負が変わります。(本題とずれる細かい注意点になりますが、+2048や-2048するときにオーバーフローやアンダーフローする場合もあるのでこれも注意)

 で、この四捨五入と右シフトを組み合わせます。
※ a / 4096 を四捨五入丸めで右シフトで計算する場合(aはint型)

a が正数 → (a + 2048) >> 12 と計算

b が負数 → (a - 2048 + 4095) >> 12 すなわち (a + 2047) >> 12 と計算
 計算式が正と負でだいたい同じになりました。
 2048 と 2047の違いなら画像処理においては誤差として扱うことができます。誤差があるといっても何も考えずにシフトするより精度は高いはずです。


 以上のことから一番最初にあげた色変換の計算で +2048 しているわけです。「なんで +2048 したんだろう」と後で忘れるかもしれないので書いてみました。
 ちなみに切り上げ・切捨てをランダムにすると多分ディザリングっぽくなると思う。

【お役立ち情報】
 盗める確率は0パーセントと表示されるが、実際は小数点以下の確率で盗める。
[ 投稿者:うえぽん at 17:47 | AviUtlや画像処理 | コメント(6) ]