リソース名を整理しませんか、デザイナの人も知って欲しい

プログラミングとデザインのイメージ。

最近になって Unity を使って開発する作業をしていますが、どうしても気になるのが命名規約のバラ付きです。

そんな細かいことを気にするよりも表現や実装に注力しろと言われれば確かにそうなのですが、 サービスとして保守したり、自分以外の人が機能を拡張することを考えれば、やっぱりプロジェクトリソースは全体で見通しが良い状態を維持していきたいのです。

CG コンテンツの話を例にとっていますが、プログラマとデザイナが組み合わさって仕事をするのであれば、 WEB だろうがスマートフォン開発だろうが同じことが言える内容だと思います。

例えば蝶のリソースがあったとして、それに関連するリソースの名前が Chou だったり Choucho だったり Butterfly だったり btf だったりするのです。 もっと言えば Butterfly と butterfly があります。それぞれスクリプトやクラス名、それ以外に、テクスチャ名や CG モデル名などです。

またいくつかのテクスチャパターンが用意されているときに、XXTextureA, XXTextureB となっていたり、 一方で色名が与えられていて、XxTextureRed や XxTextureWhite が存在することもあります。

スクリプトに関してはエンジニア側に改善の余地がありますが、テクスチャなどはアーティスト側に改善の余地があります。

なぜ改善の必要があるのか

1 つのプロジェクトには往々にして沢山のリソースが存在します。だから常にどこに何があるのかを把握しているのは困難な場合がありますし、 局所的に保守したり機能追加をしたいときには、全体像を把握するのは無駄な作業です。

把握が困難となればリソースを検索することになるわけですが、命名規約がばらばらだと、検索するときにどの文字列で検索するのか曖昧になり、無駄な時間を取られます。 先の例で言えば Butterfly で検索すれば蝶に関するリソースが一覧できるのが個人的には理想だと思っています。

また「X にある Y のリソースを取得する」なんてプログラムを実現するとき、変数名のバラつきはひどく面倒で、 「あぁちょっと文字が違うから取得に失敗する」なんてことが良く起こります。

そしてバラつきがあるままプログラムを作っていくと、後になってリソース名が気になって変更、なんてことがやり難くなります。 既存の名前に合わせて動作するようにプログラムを作り上げてしまっているからです。

未熟・凡才ゆえに

私はエンジニアとしても表現者としても未熟ですし、特別才能があるわけでもありません。 しかし、だからこそ可能な手段を講じ、不要な労力を避け、少しでも近づきたいと思うわけです。 賛否両論あると思いますが、普通の人が足掻いて戦うための手段としてこんな意見もあるなと思っていただければ良いなと思い文に起こした次第です。

ひとまずデザイナだからとかエンジニアだからとか考えないで、より良くするための手段としてこういうこともあるよねって向上心はあって損はないかなぁと思います。 何もギチギチに仕様を固めろとは全く思いませんし、むしろそんなものは息苦しくなるだけだとも思います。

デザイナからエンジニアに向けての話

デザイナからエンジニアに向けての要求にはどんなものがあるのか、話を聞いてみたりしてみたいですね。 デザイナが上げてきたデザインを可能な限り表現するのはモチロンとして、他にどういうことがあるんでしょう。 それぞれの環境によってことなるのでしょうけど。

自分の場合には、こういうアングルのスクリーンショットが欲しいとか、 実際にコンポジットした画像が欲しいとか、エフェクトを付けていないコンポジット画像が欲しいとか、そういう要望は出ていますが、 大局的な話はあんまり耳にしません。機会があれば伺ってみたいものです。

デザイナの方はリソース名で困らないのか

どう管理されているのかは定かではありませんが、デザイナの方々はリソース名で困ったことはないのでしょうか、少々気になります。

例えば蝶に関するリソースが必要なときに、以前制作した蝶に関するリソースを探すことはあると思のです。 そういったときに検索などを活用するようなら、デザイナの方々も潜在的にリソース名に気を使っているような気がするのです。

例えばブラシやフォント、写真、テクスチャリソースはどうやって管理しているのでしょう。 長く自分の環境に慣れ親しんでいたら、現実世界におけるパレットやアトリエのように自在に使うことができるから問題ない、という状態なのか、 あるいは多少時間がかかってでも全体的に見通していく方が、その時のフィーリングに見合ったリソースを見つけ出せる、ということなのか。

デザイナの方々の仕事を軽んじてるわけでも見下しているわけでもなく、 エンジニアの観点から改善できるところは改善してみたら、って提案ができるし、 エンジニアもデザイナももうちょっとお互いの作業について知っても良いよね、みたいな勢いで書いております。

文面から伝わらないこともあるかと思うので改めて注意書きとしてこれを記します。