Skip navigation

Monthly Archives: 2月 2010

   ここはとあるソフトハウスの総務部総務課。連休の合間ということもあってか、いつもより人の影がまばらです。日頃は忙しそうな課長も株価でも気になるのか、暇そうに経済新聞を広げています。
   

びぎな
「びぎなもお休みにしたかったよぉ」

   

まにあ
「何ゆーてんねん! こういう日やこそ余計な雑用に邪魔されやんと勉強が捗るゆーもんやで!」

   

びぎな
「まにあちゃんは有給使い切ってるから休めないだけなの……」

   

まにあ
「うちは有給は計画的に消化するタイプやからなぁ。期間内に有給使い切るんも社会人としては大事なスキルやで。それに、びぎなちゃんかって新人の1年目やったらそんなに有給あらへんやろ」

   

びぎな
「まにあちゃんみたいに使い込んでないから、まだ全部残ってるよ」

   

まにあ
「そら勤勉やな。でも、うちの会社、有給が余ったからって買い取ってくれへんから期限切れ前に使い切るようにしといた方がええで」

   

びぎな
「そんなことより、今日は何するの?」

   

まにあ
「今日はソフトの動作や処理内容を決める概要設計や……と言いたいところやけど、前回の画面設計に漏れがあったわ」

   

びぎな
「漏れ?」

   

まにあ
「びぎなちゃん、合成する時に抜き取る背景色はどうやって決めるんや?」

   

びぎな
「キャラクター画像の背景のところをマウスでクリックして、そこの色を……」

   

まにあ
「せやったら、その操作のことを考えやなあかんのや。これから背景色を選択開始するゆーボタンと、今はどんな色が背景色に選ばれてるのかという表示枠を入れとかなあかんかった。合成や保存のボタンは背景画像の下に置いたから、こっちはキャラクター画像の下に置いといたらええやろ」

   

びぎな
「せっかく清書したのに……」

   
 
   

まにあ
「ほな、先に進もか。前回はソフトの外見の設計やったけど、今回は中身の設計や。ソフト全体でやりたいことがあっても一発で何もかもやれるわけやあらへん。順番に手続きを踏んで段階的に処理を行う必要があるけど、その大雑把な形を作り上げていくんや」

   

びぎな
「手続き? 段階?」

   

まにあ
「画像を合成するゆーても、先に合成の元になる画像があらへんと合成出来へんやろ? 同じように元の画像を読み込むにも色々と先立つものが必要やから、それを明確に洗い出して、コーディング段階での漏れや手間を省くわけや」

   

びぎな
「これも達人には必要ないの?」

   

まにあ
「せやけど、びぎなちゃんには必要やで。まず、操作の順番から考えよか。ソフトが立ち上がったら最初にすることは何や?」

   

びぎな
「背景画像とキャラクター画像を読み込むの」

   

まにあ
「そら、いっぺんには無理や。一度に操作できるのはどっちかやけど、どうやねん?」

   

びぎな
「じゃ、背景画像が先」

   

まにあ
「何で背景画像が先か、理由でもあるんか?」

   

びぎな
「背景の方が左側にあるから、操作の流れとしては背景が先の方が自然かなぁ……と思ったんだけど」

   

まにあ
「アホ、そないないいかげんな理由で後先を決めたらあかん。左側からの方が自然かどうかは使う人によって違うやろ。ま、初心者向けのウィザード形式のソフトとかやったら、ユーザーの困惑を避けるためにソフト側で万事きっちり操作の順番を決めることはあるけど、そんなんはプロ用の実用ツールでは不便なだけや。そうでなければならない理由が無いんやったら、どっちが先でもOKというのが使い勝手の良いソフトや」

   

びぎな
「じゃ、背景画像とキャラクター画像はどっちが先でもいい……」

   

まにあ
「その次は何や?」

   

びぎな
「背景色を選ぶの」

   

まにあ
「それは順番に何か理由があるんか?」

   

びぎな
「キャラクター画像が無いと背景色が選べないの」

   

まにあ
「せやな。でも、背景画像は関係あらへんな。必要なんはキャラクター画像を読み込んだ後やないとあかんということだけや。覚えときや」

   

びぎな
「わかったの」

   

まにあ
「で、その次は?」

   

びぎな
「合成の実行なの。背景画像とキャラクター画像と背景色が決まってないと合成処理は出来ないの」

   

まにあ
「それから?」

   

びぎな
「最後は保存処理。これは合成画像が出来てないと保存するものが無いから……」

   

まにあ
「ほな、ソフトの終了はいつするねん?」

   

びぎな
「保存処理の後……」

   

まにあ
「アホ、それは理想的な使い方した場合だけや。何らかの原因で途中でやめたい時とか、Windowsが終了するから終われと言ってくる時とかいろいろあるやろ。そんな時、最後までちゃんと処理しないと終われへんとか言うんか? いつでもきちんと終了できるようにするのがソフト開発の基本やで」

   

びぎな
「覚えておきます」

   

まにあ
「じゃ、次回はこの順番に従って処理の中身を考えて見よか」

   
 
   
 

(つづく)

 

 ここはとあるソフトハウスの総務部総務課。いつものように、びぎなちゃんは『Visual C# Express Edition』の統合開発環境を立ち上げて張り切っています。

   

びぎな
「ソフトで作ることは決めたし、いよいよ実際の作成ね」

   

まにあ
「アホ。まだ最低限のことまとめただけやろ。びぎなちゃんはあれで具体的なコーディングがイメージ出来たんか? ま、達人レベルやったらこれくらい、目をつぶっててもコーディング出来るやろうけど」

   

びぎな

「そんなの、まだわからないよ」

   

まにあ

「せやったら、実際のソフトの形をもっと具体化していかなあかん。ま、具体化するのは機能をどうやって実現するか、そのためにはどんなユーザーインタフェースや処理が必要かというとこやな。ま、GUIのソフトやったら最初に画面設計から始めるのがわかりやすくてええやろ」

   

びぎな

「仮面設定?」

   

まにあ

「せやせや。目のあたりはこれでええけど、もうちょっと隠れるところがないと仮面の意味が……って、アホ、誰が仮面の設定作れってゆうた! 画面設計や、画面設計。ソフトを立ち上げたらどんな画面が現れるんかってとこをデザインするんや」

   

びぎな

「デザインっていっても、びぎな、デザイン学校なんか行ってないし……」

   

まにあ

「誰も芸術的センスにあふれた装飾デザインせえとかゆうてへんわ。実用的な機能を実現するのにボタンとか画像表示とかどういう風に配置したらええか考えるだけやから、別に美術的なデザイン知識なんか要らへん」

   

びぎな

「でも、画面のデザインってどうやって……」

   

まにあ

「ふだん使ってるソフトを参考にして考えたらええ。『VC#』やったらFormにコントロール貼り付けていく感じで画面を作っていくから、それに合わせた画面を考えることや。ま、この規模のソフトやったらいきなりFormにコントロール貼り付けて作っていくのもアリやけど、それにはコントロールとかの知識が必要やから、最初は紙に描くなりして大まかに具体的なイメージを作っていくことやな」

   

びぎな

「チラシの裏でもいいの?」

   

まにあ

「ま、別に納品物として提出するんやなかったらなんでもかまわへんけど、後で設計を見直したりするときにちゃんと見直せる形にしておいた方がええで。ま、この程度のソフトやったらFormデザイナ見ただけで用は足りるやろうけど……」

   

びぎな

「コピーの裏紙を調達してきました」

   

まにあ

「ほな、始めよか。まず、最初に大きな四角を描いとき。それがソフトのメインウインドウや。その中に必要な部品を付けくわえていくんや。画像合成ツール作るのにどんなものが必要か挙げていってみぃ」

   

びぎな

「背景の絵とキャラクターの絵を表示するところでしょ。あと、合成した後の絵も。それに、画像を読み込むボタンと、保存する時のボタン……あ、それから合成するボタンとか……」

   

まにあ

「最低限、それだけでも何とかなりそうやな。ま、不足してるところはおいおい追加していくとして……ここがここが一番大事なとこやけど、画像はメインウインドウ内で表示させるのか、別のウインドウを開いて表示させるのかというところや。メインウインドウの中やったら表示部分のサイズが限られるさかい、大きな画像は一部を表示するか縮小して表示するかしやなあかん。別ウインドウは比較的大きさは自由にできるけど、いろいろウインドウを開くのは初心者のユーザーにはわかりにくいやろ。画像は大雑把に把握できるぐらいでええんやったら、同じウインドウ内で横に並べて見比べられた方が便利かもしれへん」

   

びぎな

「じゃ、それで……」

   

まにあ

「これでええんか? こっちの方が難しいかもしらへんで」

   

びぎな

「そんなのわかんないよ……」

   

まにあ

「ま、複数ウインドウを制御するのは初心者には難しいかもしらへんから、メインウインドウ内で見比べる方向でいこ。背景画像とキャラクター画像はそれでええけど、合成した結果の画像はどないする? ま、これも横に並べるのもええやろうけど、どんどん画面が窮屈になるで」

   

びぎな

「画面が窮屈なのは、イヤ」

   
 

 びぎなちゃんの使っているオンボロPCのディスプレイは最大に広げてもXGAでしか表示できません。

   

まにあ

「ま、昔はVGAで使えないようなソフトは作るなとか言われてたけど、さすがにいまだにVGAのPC使ってる人はおらんと思うけど、ま、ネットブックで使えないようなソフトを作ってもあれやから、SVGAの範囲で収まるぐらいがええやろ。合成結果だけ別ウインドウって手もあるけど、びぎなちゃんには厳しいやろ。ここは背景画像を描き変えるって手でいこか?」

   

びぎな

「異議ありません」

   

まにあ

「ほな、画面のレイアウトを決めていくで。左右に背景画像とキャラクター画像の表示領域を並べる。これがウインドウの中心やから出来る限り大きくな。で、右と左、どっちがどっちや?」

   

びぎな

「左が背景で、右がキャラクターかな」

   

まにあ

「せやったら、どっちがどっちかユーザーがわかるようにラベル付けとかなあかんで。画像の読み込みボタンはどこや?」

   

びぎな

「画像の上かな」

   

まにあ

「じゃあ、背景画像とキャラクター画像のそれぞれの上に付けてと……次は?」

   

びぎな

「合成ボタンと保存ボタン。これは画像の下の方かな」

   

まにあ

「下はええけど、下も広いで」

   

びぎな

「真中ぐらいがいいかな?」

   

まにあ

「結果の画像を別ウインドウで開くとかやったらそれでええやろうけど、背景画像のところを描き変えるんやったら背景画像の下にあった方が操作が分かりやすいで。背景画像とキャラクター画像がどっちかというのと同じやけど、びぎなちゃんは自分が作ってるからわかることでも、ユーザーはわからへんから、ちゃんとわかりやすく画面を作るのが大事や」

   

びぎな

「これでいい?」

   

まにあ

「画像のファイル名もわかるようにしといた方がええかな。それから、ウインドウのタイトルバーも考えや。バーに表示されるアプリの名前とか、最大化や最小化を使えるのかどうなのか……」

   

びぎな

「アプリの名前は……画像合成ツールだから『合成ちゃん』」

   

まにあ

「却下や! ググったらすでに使われとる名前や。ま、自分が使うだけやったら名前なんてどうでもええけど、他人に使われること考えたら、他のソフトとのバッティングは極力避けることが大事や」

   

びぎな

「じゃあ、『合成くん』」

   

まにあ

「安直やな。今度はググっても同種のソフトらしいものは引っ掛からんかったから、まぁええやろ」

   

びぎな

「次の最大化、最小化って?」

   

まにあ

「どんなウインドウズソフトでもウインドウの右上にボタンが3つ並んでるやろ? 一番右がクローズボタンで、ウインドウを閉じたりアプリを終了する時に使うボタンで、真ん中が最大化ボタン、左端が最小化ボタンや。最小化ボタンはふつうアイコン化するためのボタンで、最大化ボタンはウインドウを画面いっぱいに広げるボタンや。アイコン化はアイドル状態で動かすような処理が無い限りは特に何も考えんでデフォルトのままでええやろうけど、ウインドウを最大化したらそれに合わせた表示処理とか必要やから、使うか使わないかはきちんと決めやなあかん」

   

びぎな

「別に画面いっぱいにする必要は無いと思うけど……」

   

まにあ

「せやったら、最大化ボタンは無効化するように書いとき」

   

びぎな

「こんなのでいいの?」

   

まにあ

「ま、最初はこれくらいシンプルでええやろ。せやけど、びぎなちゃん、絵下手やな。それやったら後から見直そうと思ったって何が何かわからんようになるで。次回までにきれいに清書して来ぃや」

   

びぎな

「えー!?」

   
 

(つづく)