5.1さらうどん

@giginetの技術ブログ。ゲーム開発、iOS開発、その他いろいろ

札幌C++勉強会で聞いたクリプトン・フューチャー・メディアの開発技術

12/7、札幌C++勉強会が開催されたので出席してきました。

Sapporo.cpp 札幌C++勉強会 #5 : ATND

会場はなんと、あの初音ミクの発売元、札幌が誇る企業クリプトン・フューチャー・メディアさんの会議室をお借りしました。

f:id:gigi-net:20131207121204j:plain

札幌にいてもほぼ入る機会はないので感激。会議室を使ったIT系の勉強会は今回が初だったよう。

入り口ではミクグッズがお出迎え。

f:id:gigi-net:20131207121150j:plain

最近のC++の動向

最初はC++の歴史と、最近のコミュニティーの様子のお話

網羅的にC++の動向を知れるのは嬉しいし、参加者のレベル差を埋める上では非常によい発表だと思うので、他の勉強会でもやって欲しい。

C++11の不勉強を思い知らされました。もっと学ばなくちゃなあ。

C++1yのお話は、熱心に闇の魔導師達の動向を追っていなければ耳に入ることはないので具体的な話が聞けてもっと調べたくなりました。果たして何年後に出るんでしょうね。

Piapro Studioの紹介

本日の目玉、クリプトン社が社内で開発している「Piapro Studio」というプロダクト開発の裏側です。

Piapro Studio Official Website

Piapro StudioはDAW(作曲ソフト)のプラグインとして動作するVOCALOIDエディター。Windows/Mac両対応。 VSTiという、多くのDAWが採用しているプラグイン規格に準拠しているため、多くのDAWで動かすことできます。 これにより、手慣れたDAWで作曲をし、シームレスにボーカルを編集することを可能にします。 ホストのDAWと完全に同期した作業が可能で、DAWでの部分再生などにボーカルが追従するのが特徴です。

諸般の事情でスライドはアップできないようなので、詳解は控えますが、開発の裏話が聞けて満足度が高かった。

VSTiの開発という点だけにおいても、割と特殊スキルだし、それ以上にVOCALOIDを扱うというのが非常にニッチなノウハウでした。

特に、VOCALOID APIの仕様上、子音と母音の発声タイミングが分かれているため、DAWの再生位置を先読みし、実際の発音タイミングより早めに発声させてやるなど、VOCALOID特有のノウハウの話が印象に残っています。

クロスプラットフォーム化も大変で、VisualStudioのC++11標準ライブラリの挙動がクソ、boost素晴らしい、UIのクロスプラットフォーム化は難しいというお話でした。

C++の技術力の高い恐い人たちであっても、クロスプラットフォーム化にはプリプロセッサで分岐させまくる、みたいなアプローチしかないみたいで、C#のConditional属性みたいな言語機能が欲しいなあと思いました。

社内でのJenkinsの活用方法なんかも聞けて満足。VSTiは製品の性質上、テストは難しいようです。テストの話も突っ込んで聞きたかったなあ。

今回のスピーカーの方は全員DTMerでした。やはりDAWを使い込んでいないとVSTiというものは全く想像ができないものですし、特殊な専門知識が多くて敷居が高い。

スピーカーの一人、id:heisseswasserさんが書いたVSTのホスト側の実装技術については下記の記事に詳しいです。いつか挑戦してみたい。

VSTホストを作ろう! - hwm's blog

STLヘッダリーディング

gccのstd::vectorのヘッダを読みました。

vectorは頻繁に使うのですが、もっとちゃんとドキュメント読まないとダメだな、と不勉強を痛感。

C++11になって、インターフェイスは変化せずとも、内部実装はドラスティックに変化していたことが興味深かったです。

なかなか自分でSTLを読もうという気にはならないので、次回以降も続けてほしい。

cocos2d-x 3.0 + C++11で始めるゲーム開発超入門

ガラッと変わってゲーム開発のお話。僭越ながら私が発表させて頂きました。

(気付いたらたくさんブックマークついてる!ありがとうございます!)

ネタ要素を加える時間がなかったのですが、この日の発表で一番ウケが良かったような感じがして嬉しく思っています。

cocos2d-xは本当に好きなフレームワークなんですが、周りにオススメしても、Objective-C由来の独特の構造を嫌い、なかなか手にとって貰えないという問題がありました。 今回はC++を日頃書いているエンジニアの前で話すため、C++として見たときのcocos2d-xというフレームワークが如何に良くない点が多いか、という点を重点的に話しました。

世の中にはcocos2d-xすごいという紹介記事が大半な印象を受けるのですが、Objective-CC++(場合によってはJavaLuaJavaScript)の習得が必須ですし、やはりエンジニアリングの敷居はまだまだ高めに感じます。

スライドで述べているとおり、cocos2d-x 3.0で多くの問題点は改善されている印象を受けるので、今後さらに流行ってほしいですね。

拙作『VOXCHRONICLE』や札幌でのGlobalGameJamの宣伝もできて良かったです。

まとめ

普段表に出ないクリプトン社での開発話が聞けたのは非常におもしろかったです。 元々クリプトンさんは、音源の代理販売の会社で技術というイメージが少なかったので、非常に高い技術力と、特殊な開発環境に感銘を受けました。

VSTiの実装は大体の人が関わることはないだろうし、ましてやVOCALOID特有のノウハウというのはクリプトン社にしかないはず。

札幌から全国的にも貴重な情報が発信できるのは、道民として非常に嬉しいので、今後ともクリプトンさんの活躍に期待せざるを得ませんね。

運営の皆様、本当にありがとうございました!