Hatena::ブログ(Diary)

単なる日記@はてな このページをアンテナに追加 RSSフィード Twitter

2014-01-01

謹賀新年

あけましておめでとうございます。本年もよろしくお願いいたします。

せっかく久しぶりの日記なので昨年のまとめなどを書き留めておきます。内容はわからなくても問題ありません。長いですが、たまのことなのでご容赦ください。

昨年のお仕事

一昨年の同時期から始まった二つの仕事が昨年のわりと近い時期にマスターを迎えるという予定だったため、一昨年末から後々下手な苦労をしないために準備と、成果物の質向上と自分への負荷軽減が両立できるよう仕事を回せるようにできればと思いあれこれやってたはず…そのはず。二つの仕事のうち一つは昨年無事発売となりました。もう一つはもうすぐなんとかなる予定。

サウンドプログラム的な話

CEDEC 2012でえらく刺激を受けたおかげで、今回二つ同時進行する別のゲームたまたま新しくかつ異なる二つのプラットフォームだったこともあり、自分が担当するプログラムに関してはいわゆるマルチプラットフォーム対応なことをしようと決めました。とはいえ、両者とも別のゲームだし、あまり凝ったことは出来ないし、過去の仕事での反応などを踏まえて、使い方の手順や関数名などを共通化しようくらいを目標にしました。あと個人的にはようやく単体テスト(みたいなもの)を可能な限り用意しようとしました。

前者に関して実際にはかなりドロドロとした対応になってしまいました。二つの仕事のうち一つは早い時期にサウンドプログラムのAPIを決める必要があったため、まずガワだけ用意して、データの内容はもとのプラットフォームのSDKそのままの状態にして後でちゃんと仕様を決めようとしてみたら、都合によりマスターアップまでその状態を維持せざるをえませんでした。加えて二つの仕事でサウンドプログラムの仕様に一部食い違いが起きてしまい、結局現在も仕様の違う二つのサウンドプログラムを同じソース管理するという状態になっています。正直コレは失敗でした。

単体テストの方は、見た目gtestのように書けるものを用意して、プラットフォーム依存しない部分に関しては自分のPCで動いているJenkins上で自動テストまで行えるようになりました。プラットフォームに依存した部分は開発機材をそのまま使うので自動化にまでは至っていませんが、手動でテストは行えるようになってます。これをしたからってさすがにバグが無くなるわけではありませんが、不具合があった部分はテストをしていないところだったり、テストが不十分なところだったりするわけで、つくづくうまく出来てるなあとか思ったり。

今後はサウンドプログラムの仕様を安定させることと、より機能を増やすことが目標かなと思います。あと手の混んだことはあとあと手を付けられなくなるので早めに予測してやっておくことでしょうか。締め切り直前に派手な変更とかできませんしね(色々ご迷惑をお掛けしてスミマセン)。

あ、あと、いつもなら実機上のプログラムにサウンドのテスト用メニューなどを仕込んでおいて実際の音の確認などをするわけですが、今回は外部(PC)に音の動作確認用のプログラムを用意して、実機と通信して動作確認を行うようなことをしてみました。その結果昨年はC#WPFを覚えることになりました。今も勉強中で、WPFはWindows上でしか試せませんがC#はmonoを使ってOS Xでも動くので自宅のMBPRなどでも試せるので、継続してぼちぼちやってます。

音屋としての話

ここではすでにマスターアップ済みの仕事について書き留めます。もう一つの方はまた今度。

今回二つのうちの一つのBGMを担当しましたが、今回(おそらく)初めてまじめにオケものを作ることになって、文字通り四苦八苦しました。これまで未経験ジャンルであってもわりと自分のやれる方向に寄せる形で対応してきたことが仇となったのか、今回マジで逃げ場がない状況となったためいろいろ手をつくしました。とはいえ、才能のない自分は道具でカバーするのですよ。

ということでソフト音源オーケストラ用音源っていろいろありますが、ちょっと手の届きづらいお値段だったりしてなかなか手を出せませんでしたが、その中でも比較的手に入れやすい音源を選びました。まず弦楽器にはCINEMATIC STRINGS 2を使いました。

ソフトウェア音源 「CINEMATIC STRINGS 2」 | SONICWIRE - Virtual Instruments

YouTubeなどでのデモ演奏や説明を見て今回要望されている曲調にも合いそうということでコレにしました。そして、管楽器にはWIVI ORCHESTRALを使いました。

ソフトウェア音源 「WIVI ORCHESTRAL & BAND BRASS / DOWNLOAD」 | SONICWIRE - Virtual Instruments

CINEMATIC STRINGS 2はいわゆるサンプリング音源といい、実際の楽器の演奏を録音してそれをソフト音源に仕立てたものですが、WIVI ORCHESTRALはいわゆる物理モデル音源といい…詳しくは物理モデル音源 - Wikipediaを読んでいただくとして…サンプリング音源とは異なるものです。出音にはわりと満足してますが、結局最後まで使い切れなかったように思います。

あと、これは実際音源の選び方が良かったのか今でもわかりませんが、こういうのも使いました。

Epic Dhol Ensemble

曲の要望に沿ったつもりなのですが、よくよく考えるとEpic Toms Ensembleの方が合致するのではないかとか、まあ作った後に考えても遅いわけですが。この辺知識や経験がないせいでいちいち自信がなくて決められないのが難点です。

当初これらの音源を入手する前にサンプル的に曲を打ち込んで他の方々に聞いてもらったところダメ出しを食らいましたが、上記などの音源を用意してアレコレしてみたところなんとか受け入れられるくらいには作れるようになりました(こう書くと簡単そうに見えるし、実際他の人からだとそう見えるのだろうなあ)。いやあ音源さまさまですよ。正直今でもちゃんと作れてた実感はありませんが、こういうのは今後何度もやっていかないと手応えを感じられないのでしょうね。

オケもの以外は従来通りというか、手慣れたやり方でやってます(曲を量産しないといけないので)。以下使用音源を列記してみる。慣れたものも使い切れていないものも色々。

SEに関しては素材データとの格闘に尽きるので書くことありません。最近は音を一から作ることがほとんどなく、過去の資産的な素材と、新しく仕入れる素材を組み合わせ何とかすることが多いです。それでも足りないものを自作する感じでしょうか。

音声は基本的声優さんのお声の波形データを編集するのみなので、こちらも特別変わったことはありません。音量バランスについては毎回悩みますが、今回あるタイミングでプログラマの人が実機での全体の音量バランスを調べていただけました。当時はBGMを用意するのが手一杯でしたので大変助かりました。

今後について…音屋としての自分に未来があるのかどうか正直不安ですが、求められるうちは頑張ろうと思います。ホント年々しんどくなるばかりでなんとかしたいのですが、なんとかするにはおそらく経験と慣れしか無いのかなあとも思ってます。集中力もどんどん薄れていますし、なんとかなるのだろうか。

その他

細かいことは面倒なので書きませんが、去年は自分の都合(主に自宅での睡眠時間の確保)のため生活サイクルがひどかったものでした。それでもそのサイクルがうまく回っている最中は良かったのですが、締め切りが押し迫ってきてからは会社に常駐することが常態化してしまって、大変よろしくない状態でした。今後改善できるかどうかは自分次第なので、なんとか、せめて毎日帰宅して、土日は自宅でゆっくり出来るくらいのことはしたいと思います。

プライベートな話

上記の通り昨年は自分としては仕事漬けの年だったので自宅での記憶が「寝てた」か「アニメ見てた」か「ご飯食べた」かしか記憶になくて…。その「アニメ見てた」も夏アニメの頃には(時間的にも自分的にも)余裕がなくてできなくなりました。夏コミ(C84)と先日の冬コミ(C85)、RubyKaigiへの参加はいい思い出になりました。

まとめのまとめ

書けば書くほど気が重くなるというか、年明け早々反省会ですね。年が明ける前にしておけば良かった。

えー、重ね重ね本年もよろしくお願いいたします。

2013-07-24

++age

日付的には昨日になりますが、43歳になりました。TwitterFacebookなどでお祝いの言葉を頂いた皆さん、ありがとうございました。今後ともよろしくです。

ちなみに昨日は多忙によるテンパりと身体の不調でヘトヘトでした。いきなりこんな調子でアレですが、また一年なんとか乗り切っていきたいと思います。

2013-06-08

RubyKaigi 2013 三日目

二日目が終わって宿に戻り、晩飯を食べたらすぐに寝てしまった。夜中に起きてアニメ見たり日記を書いたり風呂に入ったりしていたりしたら朝になってしまい、そのまま出発。

IMG_0119

早めに出たので時間に余裕はあったが、キャリーケースを置く場所を探すのに一苦労。結局東京テレポート駅SUICAが使えるロッカーを使った。

IMG_0125

ちなみに宿はRubyKaigi 2013のウェブサイトでも紹介されていたホテルサンルート有明でした。いつもつかう浅草ビジネスホテルと一日に付き+1000円くらいで泊まれたので、場所や設備の割に安かったという印象。コミケ時期は予約でいっぱいだろうけど他のタイミングでまた使ってみたいな。

早めに会場入りしたら、スタッフの皆さんが記念撮影してた。

10:00

朝一はAsync programming is all about programming synchronously。咳さんファンなのでw あと、スライドのフッターに僕のコメントを入れていただいたので、それを確認するためにも遅刻はできないな、と。

キューで同期とかシングルスレッドで複数待つ処理とかは、自分経験した仕事と重ね合わせて聞いていた。

次はIf you do not enter the tiger’s cave, you will not catch its cub: Objects, DCI, and ProgrammingDCI (data context interaction)のお話ということで、その場で色々と単語をググりながら話を聞いた。

castと聞くとついCやC++のcastを思い出しちゃうんだけど、それはどちらかというと(自分はdynamic_castは使わないので)オブジェクトから型を剥がす方向で、DCIはオブジェクトに型をかぶせることで別の型とみなすような感じ、と理解してる(間違ってると思うけど)。ただRubyそれを実装するのに従来の方法よりよりよい方法があるよねってのが今回の話、かな(自信なし)。

11:00

4階へ移り、Aホールの話を

聞いていたが、正直意識朦朧としていてほとんど覚えてません。すみません… なんかあちこちウロウロしていた気はします

12:00

IMG_0130 IMG_0131

12時より少し前にheroku弁当の配布が始まったので、そのまま弁当タイム突入。三日間美味しいお弁当をありがとうございました。

マイクロソフト提供フリードリンクも連日大変助かりました。感謝

13:30

昼一はBe a library developer!ライブラリを作ることを経験することで、よりよいソフトウェアを書くことが出来るようになるのではないか、という提案。想像ではなく(経験をした上で)思い出すこと。

実はRubyKaigi 2006とあるセッション須藤さんの隣りに座ったことがあって、当時須藤さんのことはすでに知っていたのでえらく緊張した覚えがある(そちらに顔を向けられないほど)。今ならもっと緊張する自信あるねw

次はBeyond Ruby。冒頭の「XXXを書いたことがないなら座る」はえらく笑った。Newspeakは初めて知った。

14:30

Bホールへ移ったが人で一杯だったので、4階へ移動しようとしたところ咳さんを発見。少しだけ話をさせていただいた。これだけでRubyKaigiに来た甲斐がありました。

4階でうとうとしつつもBホールの様子を見る。

TRICK (Transcendental Ruby Imbroglio Contest for rubyKaigi)。個人的には音が出る作品のインパクトが強いので遠藤さんの"Most Classic"が好きですね。まあそれよりも、上位3作品がRubyのリポジトリにcommitされて、次回Ruby配布物に同梱されることの方がよっぽどインパクトがありましたがw

15:30

IMG_0132

ジュンク堂の横で高橋征義さんによる「このコンピュータ書がすごい! RubyKaigi版」が始まった。色んな本のおすすめポイントものすごい勢いで語られていて、なんかお得感満載なトークでした。これを聞く人だかりもすごかった。

お昼時かこの時間帯か忘れたが、WEB+DB PRESS Vol.74を買った。RubyMotionの連載に興味がある。最近になってiOSだけじゃなくてMac OS Xにも対応したってところがより気になるところ。

16:00

Bホールで卜部さんによるRuby 1.8.7話。Ruby 1.8.7へ黙祷を捧げたり、commitログからcommiterの専門分野の偏りや頻度を見るグラフなど興味深かった。

次はAホールへ移ったが1階は満員っぽかったので、今回はじめて二階へ上がった。

Contributing to Rubyドキュメント関連のcommitでお見かけする方。以前、QA@ITでのやりとり*1からRubyへコメントの修正パッチを報告したことがあって、そのパッチをcommitしていただいた。

17:00

トリはFight with Diversityakrさんらしく淡々とした語り口で、ndbmライブラリの多岐にわたるライブラリへの対応についての苦労話をされていました。以前のSEGVといい、socketといい(これはRubyだけじゃなくて各OSへの報告も含むか)、今回のndbmといい、akrさんの粘り強い作業にはただただすごいとしか言えない。

…などと書いてますが、会場ではもう船を漕ぎまくってました。ホントもうスミマセン…

18:00

クロージングも終わり、RubyKaigi 2013も無事終了。お疲れ様でした。

キャリーケースを預けていた東京テレポート駅から品川へ移動、品川駅構内でEX予約を使って座席指定で新幹線を予約、そのまま名古屋へ戻りました。自宅付近はちょうど西枇杷島花火大会の後だからか、人が賑わっていました。

ひとこと

眠気が三日間で一番ひどくて大変でしたが、なんとか無事三日間参加し終えられてホッとしてます。

こういう大きなイベントって自分は他にはCEDECくらいしか参加したことがありませんが、CEDECは仕事で行くのと自分の専門分野で参加するのでかなり真剣に話を聞きに行ったりあれこれ考えることが多くて必死感が強いのですが、RubyKaigiはそれよりはゆるいスタンスで参加できるのでとても気軽でよかったです(この辺は仕事によるのでしょうね)。あとはセッションを聞かない自由(4階やホワイエでひたすらプログラムしたりだべったりとか)というのもアリなのだなあ、とか。

とまあ、かなり満足度が高かったです。来年以降参加できるかどうかはわかりませんが、せめて今回の様な節々での参加は可能な限り続けていきたいです。

スタッフやスポンサー参加者の皆さん、お疲れ様でした!