今日解いた競プロの問題。
DDCC2017本戦-A: 円の端をマス目の線に合わせ、円に含まれる正方形を数えたらACした。円は凸な図形なので、正方形の四点が円に入っていれば正方形全体が円に収まっていると分かる。
円を少しずらしたりしたのが最適にならない理由が分からなかった。
昨日調べた情報を参考にHRTFによるフィルタを実装してみた。HRTFのデータはここの「HRTF data(2)」を使った。
https://sites.google.com/site/takanorinishinomu/research/hrtf/database-j
データ形式の読み方が今一つ良く分からなかったが、要するにフォルダ名「elev**」の**の部分が仰角で、フォルダに含まれているファイル名「Lxxxeyyy.dat」「Rxxxeyyy.dat」がそれぞれ左耳と右耳のデータを表している。xxxはフォルダ名と同じ仰角で、yyyが真正面を0度とし、反時計回り方向を基準とした音の角度のようだ。
.datの中身は数値データが並べられている。これがインパルス応答(HRIR)のようだ。バイナリとかではなく数字が改行区切りで並べられているので、C++ならifstreamで簡単に読み込める。
今回音を鳴らすのにlibsoundioを使ってみた。公式のsinを鳴らすだけのサンプルコードをプログラムのベースとして使用。結果としては、今一つちゃんと立体音響になっているのか分からない。
さすがに真横(角度90度, 270度)とか真上(elev90)とかは分かりやすいのだが、微妙な仰角の違いはあまり明瞭には分からない。言われてみれば…という感じ。
ベースにしたプログラムの都合で音源が単調なsin波なのは一つ分かりにくい原因かもしれない。物音とか声とかだったらもうちょっとわかりやすい可能性はある。音声ファイルの読み込み&鳴らすコードを書くのがだるかった。あとはヘッドホンではなくイヤホンだったらまた違った感想になるかもしれない。イヤホンを持ち出すのがだるかった。こんなところか。
ポリドリ「吸血鬼」を読み終えたのに感想を書いてなかったので書いておく。ルスヴン卿の名前の出るタイミングが謎過ぎる。その男は名をルスヴン卿と言った、みたいな感じではなく「ルスヴン卿は…」という感じで君ら既に知ってるよね、みたいな感じで出されたので混乱したのだが、こういう書き方はたまにあるものなのだろうか。
主人公のオーブレーが途中から狂人扱いになっていく(というか実際おかしくなっていく)のを見ていて、「吸血鬼ドラキュラ」でも精神病院行きになってる男が居たのを思い出した。正常な人がありのままを話して狂人扱いされるという怪奇談はよくあるが、こっちは実際狂うのだからたちが悪い。
最後結局バッドエンドで歯切れが悪くエーとなったが、よく考えると純粋なホラーなのだから「吸血鬼ドラキュラ」のような冒険譚的な面を書く必要はそもそもないわけで、そう考えると吸血鬼が退治されず去って行ってもそういうもんか、という感じ。自分の触れてきた吸血鬼をテーマにしたコンテンツを考えてみると
- ブラムストーカー「吸血鬼ドラキュラ」
- 悪魔城ドラキュラシリーズ
- 平野耕太「ヘルシング」
- 荒木飛呂彦「ジョジョの奇妙な冒険」
と、いずれにしろ「ヴァンパイアは人間が倒す攻略対象である」という物語がどこかにある。ホラーで幽霊や妖怪が出てきても必ずしも倒されるのを期待しないのに、吸血鬼が出てきて期待してしまったのはそういう物語を知らず知らず前提にしてしまっていたのだろう。
オーブレーが遺言を残して死んだくだりではフランケンシュタインを思い出した。フランケンシュタインの怪物は責任取って自死したのになあ。
レファニュの「吸血鬼カーミラ」もその内読みたい。
昼まで寝ており、レポートに追われているのにやる気が出ないでおり、また休日の時間を雑に消費してしまった。これはいけない。とりあえず夜更かしではなく早起きでレポートに対応していく。
Categories: 未分類