「キャラクター指向」モデリングのすすめ (なぜキャラ名を付けるべきなのか)

昨日は関西の方でニコニコ技術部の勉強会がありました。私は関東在住なので参加はしなかったのですが、かなり充実したイベントだったようです。

レポート動画が2つ上っていたので、ここに紹介します。

1つ目は、会場に展示されていた物リストの動画 → 【ニコニコ技術部】N:TM (Nico-TECH : Takatsuki Meeting) に行ってきたレポート by 香上 智 ニコニコ技術部/動画 - ニコニコ動画

もう1つは、ライトニングトークセッションで不在通知Pが行った「キャラクター指向モデリング開発のすすめ」です → [N:TM] ライトニングトーク ~ 不在通知P - ニコニコ動画

そうそう、モジュール名はキャラクター名だよねっ!

私は以前から(「伺か」を連想したというコメントやタグが付いていましたが、その当時よりも前から)実践していますが、確かにこの手法はオススメです。

なぜモジュールにはキャラクター名が良いか

例に挙げられていた「データベースマネージャー」みたいに概念が比較的ハッキリしている物ならばまだ良いのですが、ソフトウェアをモデリングをしていると時々、特に上位の概念的なモジュールで、名前を付けにくい役割のモジュールが出できます。

そんな時に、無理にそれらしい英単語を並べてモジュールを命名しても、大抵の場合、開発を進めていくうちにその意味を忘れ、モジュールの役割が曖昧になって、だんだんデザインが崩れていくことになります。

ところが、この上位モジュールをキャラ付けしておくと、役割がハッキリして、デザインが崩れにくくなるのです。

私の場合、不在通知Pほど発想が豊かではないので、新規のキャラクターを起こすことはせず、既存のアニメやゲームのキャラクターを拝借して名前を付けます。

例えば……そうですね、「伺か」の時代に私が作っていたソフトに、独自形式のバイナリファイルを操作する部分があったんですが、旧形式のファイルの読み出しモジュールを mitsuki、コンパクトにした新形式を akane、両者それぞれの論理構造を扱う haruka という3つのモジュールで構成していました。(元ネタを知っている人はニヤリとして、確かに当時の名前だ、と納得する所でしょう。)

各モジュールの役割がハッキリしていれば、それにピッタリな、しっくりくるキャラクターの配役が見付けられるはずです。いったんハマり役を見付ければ、その後、モジュールの役割がフラ付くことはありません。

不在通知Pのように独自のキャラクターを考案するのであれば、キャラクターの性格付けをしっかり考えておく必要がありますが、将来的にリファクタリングをする際に、キャラの色が変えられるので便利かもしれませんね。

でも恥かしい?

キャラ名のストックが少なかったりする場合はなかなかしっくり来る配役を見付けられないかもしれません。恥かしいとか、そういう理由で実行できない人もいるでしょう。ましてやオリキャラなんて……。

そんな人も、歴史上の人物や、動物の名前など、何でも良いので、ある程度「キャラ付け」が出来ている単語で命名してみましょう。

いずれにしても重要なのは、「役割が連想できる」&「直接的で無い」名前を付けるということです。機能を表す直接的な名前(データベースマネージャーとか)を付けるのも良いですが、それがモジュールの役割と完全に一致しているわけではない場合、その名前に引っ張られてデザインが曲がってしまう事になりがちです。キャラのオブラートを包んだ名前付けだと、間を脳内で補完するので、自然なデザインに落ち着き易いんじゃないかと、個人的には思っています。

とはいえ

なんだかんだ言っても、目に入ったり、タイプしたりする文字にオニャノコの名前があると、ぶっちゃけテンションも上がるってもんですよ。愛着も湧くし、バグが出ても「手間をかけさせやがって。こいつぅ〜♪」なんて、ニタニタしながらバグ取りできますし。良いことだらけ。

キャラクター指向モデリング万歳!