チュートリアルへようこそ!ここでは白紙の状態から、OmniPlan の主要機能をすべて紹介しながら実際にプロジェクトを作成していきます。
このチュートリアルでは、デザイナー、コーダー、テスターからなるチームが共同でゲームを開発していくプロセスを見ていきます。これには、プロジェクトの計画段階からデモビデオのリリースまですべての段階が含まれます。
新しいプロジェクトを作成するには、「ファイル」▸「新規」(Command-N)を選択します。
タスクが 1 つだけ含まれた、新しい名称未設定のプロジェクト書類が開きます。「保存」(Command-S)を使用してファイルを都合のよい場所に保存し、名前を付けてください(このチュートリアルでは、開発予定のゲームプロジェクトのコード名である「ノーティラスコマンド」を使用します)。
プロジェクトを作成する際、最も重要な要素の 1 つは時間枠です。これは、プロジェクトの期日や開始制約によって決まるものです。
このチュートリアルのゲーム開発プロジェクトの例では、絶対に終わらなければならないという厳しい期日はありません。無理をしない程度に、できるだけ早く仕上げることを目標とします。これを指定するために、まずプロジェクトインスペクタにアクセスし、開始日を今日に設定します。
便宜上、これが新規プロジェクトのデフォルト設定になっています。
参考
決まった開始日や終了日がなく、観念的にプロジェクトを計画している場合は、時間枠がもっとはっきりするまで 日付を「特定」から「不確定」にしておくことができます。その場合、日付は T+1d、T +2d... のように表示されます。
絶対に守らなければならない厳しい期日があるプロジェクトを計画する場合は、方向を「進める」から「さかのぼる」に切り替え、「終了」フィールドに期日を入力します。そうすれば、タスクはこの日付から逆向きにスケジュールされるようになります。つまり、プロジェクトの完了から現在の日付に向かってタスクが指定されます。
マイルストーンとは、プロジェクト内の注目すべき重要な推移や新しい局面を明確に示すためのアンカーポイントです。これらのアンカーポイントを明確にすることで、大規模で複雑なプロジェクトをより小さな管理しやすい部分に分けることができます。また、各マイルストーンの前後のタスクを指定しやすくなります。
マイルストーンを作成するには、「構成」メニューから「構成」▸「追加」 ▸「マイルストーン」の順に選択するか、キーボードショートカット(Command-Shift-M)を使用します。
別の方法として、すでに存在するタスク(「タスク 1」)をクリックして選択し、タスクインスペクタを開いてもかまいません。そこにある「タスク情報」セクションで、タスクタイプを標準のタスクからマイルストンに変更できます。
この後、タスクビューで「タスク 1」という名前をクリックするか、タスクインスペクタで名前フィールドを編集して、その名前を変更します。また、このプロジェクトのマイルストーンをさらにいくつか作成し、各マイルストーンをそれぞれ複数のタスクで補強していきます。
タスクが選択された状態で Return キーを押すか、「構成」▸「追加」▸「タスク」の順に選択してタスクを作成します。現在選択されているタスクの上に別のタスクを追加するには、Shift キーを押した状態で Return キーを押します。
タスクとは、プロジェクトを完了に向けて推進させる上で遂行しなければならない物事のことです。各タスクにはそれぞれ開始日や終了日、達成率、リソースの割り当てなどの属性があります。これらの属性は、タスクアウトラインのさまざまな列、およびタスクインスペクタのさまざまなセクションに表示されます。タスクはグループ化してまとめることも、他のタスクに依存させることもできます。
ここでは、いくつかのタスクを作成し、それらに名前を付けます。新しいタスクを作成するには、最初のタスクを選択し、Return キーを 1 回(キーボードの設定によっては 2 回)押します。「タスク 1」がまだ表示されている場合は、そのタスクを削除するか、その名前を変えてもかまいません。その後、マイルストーンがリストの途中に表示されている場合は、そのマイルストーンの左側にある箇条書き記号をクリックし、リストの下部までドラッグします。
アウトライン内の各タスクはそれぞれガントチャートのバーに対応しています。
新しいタスクは、ガントビューで現在選択されている項目の下に表示されます。タスク、マイルストーン、またはグループが選択されていない場合は、リストの下部に表示されます。
このプロジェクトでは、各マイルストーンの下に関連するタスクをいくつか作成していきます。
参考
追加のタスクを作成すると、アウトラインにはそのタスク名のほか、「制約違反」、「メモ」、「作業時間」というデフォルトの列も表示されます。タスク名の横にあるメモアイコンをクリックすれば、そのタスクの詳細を追加できます。「作業時間」はタスクを完了するのに必要なリソース時間数を表し、「制約違反」はタスク間の依存関係ロジックが予期された状態から外れたときにのみ表示されます。
プロジェクトが徐々に出来てきました。ここで、タスクのことは少し忘れて、プロジェクトの稼働スケジュールを設定してみましょう。
カレンダービューに切り替えてください。デフォルトの稼働時間は月曜日から金曜日までの 8:00 ~ 5:00 で、1 時間の昼休みがあります。これらのブロックを移動またはサイズ変更すれば、プロジェクトの稼働時間を調整できます。
ブロックを移動するにはブロック自体をドラッグし、ブロックのサイズを変更するにはブロックの端をドラッグします。また、空白の領域をダブルクリックしてドラッグすれば、新しいブロックを作成でき、ブロックを選択して Delete キーを押せば、そのブロックを削除できます。各ブロック内のテキストは、変更の内容に合わせて更新されます。
ゲーム開発チームのメンバーたちは夜間に仕事する人が多いため、それを反映するようにスケジュールを変更してみましょう。カレンダー上の時間ブロックの 1 つをクリックし、ドラッグして新しい位置に移動します。または端をドラッグしてブロックのサイズを変更します。この操作で、スケジュールが次のように変更されました。
参考
1 日の平均の稼働時間が 8 時間でない場合は、プロジェクトインスペクタの「作業時間の単位変換」セクションにアクセスし、1 日あたりの時間数の設定を変更してください。そうすれば、タスクの所要時間がつじつまの合うものになります。
場合によっては、通常の週間稼働時間があてはまらない日があります。たとえば、国民の休日、チーム全体の研修セミナー、エキスポや会議、または職場に来れないような悪天候などです。通常の稼働スケジュールに対するこのような例外を設定することは、プロジェクトを管理する上でとても重要です。
カレンダービューで、リソースリストの下にある「時間外と非稼働時間」を選択します。ここで、休日や超過時間などの例外を考慮して、特定の週の稼働時間を変更できます。
たとえば、このプロジェクトの場合、11 月 26 日に休日があるとしましょう。この休日をスケジュールに追加します。矢印を使用して現在の月から 11 月まで移動し、11 月 26 日の週をクリックしてその週の例外カレンダーにアクセスします。
スケジュールから稼働時間をすばやく削除するには、Shift キーを押したままドラッグして、通常の稼働時間を稼働不可にするための赤いボックスを作成します。
時間外の時間を追加するには、ダブルクリックしてからドラッグして青いボックスを作成します。この青いブロックは、通常の稼働時間から外れた稼働時間を表します。
11 月 26 日は休日であるため、この日(およびその翌日の金曜日)に仕事をしたい人はいません。しかし、この週は仕事がたくさんあるため、2 日の休みはチームにとって痛手となります。そこで、26 日と 27 日の代わりとなる時間ブロックを作成し、それらのブロックを超過時間として同じ週の前の曜日に配置します。
参考
プロジェクト全体のスケジュールに変更を加える際には、サイドバーでリソースが選択されていないkとおを確認してください。リソースが選択された状態でカレンダーを編集すると、プロジェクト全体ではなく、その特定のリソースのスケジュールが変更されます(詳しくは「ステップ 12:個々のスケジュール例外を設定する」を参照)。
それでは次に、各タスクの所要時間を設定してみましょう。
ビュー切り替え領域を使ってタスクビューに戻ってください。どのタスクにも完了するのに必要な時間があります。タスクの所要時間を設定するには、タスクアウトラインの「所要時間」列に値を入力するか、ガントチャートのバーの右端をクリックしてドラッグします。所要時間を入力する場合は、2d(2 日)や 1w(1 週間)のように省略形の単位を使用できます。
ガントチャートのバーの長さは所要時間を表します。
複数のタスクが互いに関連または依存しているときには、それらのタスクをグループにまとめると便利なことがあります。グループを使うと、プロジェクトを概念的に整理できます。また、グループは依存関係を通じて他のタスクやグループにリンクできるメタタスクとしても機能します。
複数のタスクをグループ化するには、それらのタスクを選択し、「構成」▸「グループ化」(Option-Command-L)の順に選択します。グループ化されたタスクはアウトラインの中でインデントされ、"グループ" タイプの親タスクで表されます。この親タスクには、他のタスクと同様に名前を付けることができます。
グループ内のすべてのタスクが選択されている状態で、今度はこのグループを色で見分けられるようにしてみましょう。スタイルインスペクタに移動し、「タスクバーの色」セクションでグループ内のすべてのタスクに割り当てる色を選択します。
タスクやマイルストーンを整理し、それらを完了するのに必要な時間を推定したところで、プロジェクトの大まかな形が見えてきました。この時点で、この例のガントチャートは次の図のように表示されます。
参考
上の図で、ガントチャートのスケールは、タスクに割り当てられた所要時間の相対的な関係がわかるように日から週に変更されています。ガントチャートのスケールを変更するには、日付バーを副ボタンでクリックし、時間単位を指定するか、またはバーを左右にドラッグして調整します。
すべてのタスクを同時に完了することは不可能です。たとえ十分な数の人員がいたとしても、タスクの中には、特定のタスクを終えないと始められないものもあります。ここまでの操作で、必要なタスクはすべてスケジュールに組み込まれています。後は、それらのタスクのステータスに応じて依存関係を設定すればよいのです。依存関係には以下の 4 種類があります。
「終了 ▸ 開始」依存関係は最もよく使われるタイプで、タスク A が終了したときにタスク B の開始が可能になることを意味します。
「開始 ▸ 終了」依存関係は、タスク A が開始されたときにタスク B の終了が可能になることを意味します。
「開始 ▸ 開始」依存関係は、タスク A が開始されたときにタスク B の開始も可能になることを意味します。
「終了 ▸ 終了」依存関係は、タスク A が終了したときにタスク B の終了も可能になることを意味します。
つなげる 2 つのタスクを選択し、ツールバーの「接続」ボタンをクリックします。すると、それらのタスク間に「終了 ▸ 開始」依存関係のリンク線が現れます。この場合、リンク線はアウトラインの中で最初にくるタスクから始まります。また、ガントチャートの中で、選択したタスクの終端にある矢印をクリックし、次のタスクの始端までドラッグしても、依存関係を描くことができます。
参考
依存関係のタイプは矢印の開始点と終了点によって決まります。たとえば、あるタスクの完了地点から別のタスクの開始地点に向かって矢印をドラッグすると、「終了 ▸ 開始」依存関係が作成されます。
タスクをつなげると、それらのタスクは依存関係を考慮して自動的に再スケジュールされます。
マイルストーンも、他のタイプのタスクと同様に、依存関係のリンク線を使ってつなげることができます。ガントチャート内のタスクを見ても、それらの依存関係が思うように表現されていない場合は、アウトライン内で行をクリックして上下にドラッグすることにより、より自然なフローでタスクが表示されるように調整できます。
依存関係を削除するには、関連するすべてのタスクを選択し、「構成」▸「タスクのリンクを解除」(Control-Command-マイナス記号)の順に選択するか、ツールバーの「接続」ドロップダウンメニューから「リンク解除」を選択します。
次に、プロジェクトの目標を達成する上で必要となるチームメンバー、装置、および資材を追加していきます。プロジェクトの目標達成に貢献する各人員、インフラストラクチャ、および原材料はすべてリソースとみなされます。それでは、始めましょう。
リソースを作成する要領はタスクを作成する場合とよく似ています。リソースビューに切り替えてください。このビューにはリソースアウトラインがあります。ここで、いくつかのリソースを作成し(Return キーを押すだけです)、それらに名前を付けます。その後、各リソースのタイプアイコンをクリックし、「スタッフ」(チームの人員)、「設備」(用具)、「資材」(消費可能な物資)のいずれかを選択します。タスクと同様に、リソースも階層的なグループ内に入れることができます。
ビューの右側には、作成した各リソースに対するタイムラインが表示されます。ただし、この領域は、リソースをタスクに割り当てるまでは空白です。
タスクアウトラインと同様に、リソースアウトラインにもリソースの名前とタイプ(上記)のほか、いくつかのデフォルトの列があります。「メモ」はリソースの詳細(スタッフメンバーの役職など)を記入するのに便利です。 また、「ユニット」 はこのプロジェクトの作業に使用できるリソースのパーセント値を表します。
リソースにメモを追加するほかに、ここでコストについても考えてみましょう。リソースアウトラインに「コスト/時間」列や「コスト/使用回数」列を追加し、関連するコスト情報(チームメンバーの時給など)を入力すると、リソースをタスクに割り当てる際にプロジェクトの予算を管理しやすくなります。
参考
スタッフリソースのもう 1 つの便利なプロパティはメールアドレスです。メールアドレスはリソースインスペクタの「情報」セクションで設定できます。スタッフメンバーのメールアドレスは、そのメンバーが参加しているすべてのプロジェクトにおける一意の識別子として使用されます。これは、複数のプロジェクト間で作業負荷のバランスをとる場合や、OmniPlan Pro のダッシュボードでプロジェクトを比較する場合に特に重要となります。
リソースをタスクに割り当てるには、タスクビューまたはリソースビューを使用します。
タスクビューでは、タスクを選択した後、タスクインスペクタの「割り当て」セクションを使用してそのタスクに割り当てるリソースを選択できます。
または、ツールバーの「割り当て」ボタンをクリックしてメニューを開きます。
リソースビューでタスクを割り当てるには、「未割り当て」タイムライン(またはサイドバー)からリソースのタイムラインにタスクをドラッグします。
リソースをタスクに割り当て始めると、ガントチャート内で一部のタスクの所要時間が明らかにシフトしていることがわかります。これは、所要時間の作業時間との関係によるものです。作業時間はタスクを完了するのに必要なリソース時間数です。一方、所要時間は、リソースをタスクに割り当てた場合にそのタスクが実際に必要とする時間量です。1 つのタスクに複数のスタッフメンバーをフルタイムとして割り当てれば、実際の所要時間は最初に割り当てられた時間より短くなります。
参考
依存関係とリソースの関係を構築し始めると、問題となりえる箇所が見えてきました。契約ミュージシャンの Jeremy さんには彼自身が手掛けている別のプロジェクトがあるため、私たちのゲームに費やせる時間は彼の全体の時間の 30% だけです。これでは 2 週間かかるタスクが 6 週間以上もかかってしまいます。私たちはこの遅延を避けるための策を考えなければなりません。たとえば、Jeremy さんに当初の予定より早い時期に作業してもらうように依頼するか、または私たちのプロジェクトにもう少し時間を割いてもらうよう説得します。
場合によっては、個々のスタッフメンバーにそれぞれ異なる作業スケジュールを割り当てなければならないことがあります。また、休暇をとりたい日も各個人によって異なるでしょう。カレンダービューのサイドバーでリソースを選択し、プロジェクト全体の場合と同じ要領でそのリソースの通常の週間スケジュールを作成します。その後、リソースリストの下で「時間外と非稼働時間」に切り替え、例外のプロセスを繰り返します。
作業時間、一連の確立されたタスクやマイルストーン、およびチームメンバーやタスクを完了するのに必要なツールが設定されたカレンダーが出来上がったら、今度は平準化と呼ばれるプロセスを通じて作業の効率を最適化できます。
リソースの平準化ではプロジェクトが分析され、依存関係や利用可能なリソースの量を考慮して、プロジェクトが最も効率的にする方法が導き出されます。
未完了のタスクの再スケジュール、依存関係の設定、リソースの割り当ての変更など、スケジュールを手動で変更した場合は、プロジェクトを再び平準化して使用されているリソースのバランスがとれていることを確認してください。
プロジェクトのリソース作業負荷を平準化するには、ツールバーの「平準化」を選択するか、「プロジェクト」▸「リソースを平準化」(Shift-Command-L)の順に選択します。平準化用のダイアログが開き、平準化プロセスをカスタマイズするためのオプションが表示されます。ここでは、設定をデフォルトのままにして「OK」をクリックします。
スタッフの設定がすでに最適化されている場合を除き、ガントビュー内のタスクが、リソースの時間を最も効率よく使用できる状態にシフトします。
参考
変更を加えるたびにリソースの平準化が自動的に行われるように OmniPlan を設定することもできます。その場合は、「プロジェクト」メニューで自動平準化の機能を有効にします。
これまでの操作で、タスクの設定とリソースの割り当ておよび平準化が完了しました。この状態のプロジェクトを見る限り、特に問題は見当たりません。しかし、現実の世界では、思いがけない障害が発生して進行が遅れることや、最初の楽観的な見積りどおりにはいかないことが多々あります。
そこで、プロジェクトの基準を設定します。これは最初の予測に対してプロジェクトがどのように進行しているかを比較し、その結果に応じてマイルストーンやリソースの割り当てを調整するための機能です。
スケジュールを設定し、正しく平準化して、プロジェクトの開始準備が整ったら、「プロジェクト」▸「基準を設定」を選択します。これにより、作成したスケジュールが基準スケジュールにコピーされます。実績スケジュールを更新しても、基準スケジュールはそのままです。つまり、プロジェクトを進めながら、実績スケジュールがどのくらい元のスケジュールに沿っているかを確認できます。
ツールバーにある「基準/実績」メニューから「分割」または「両方」を選択して基準スケジュールと実績スケジュールを比較できます。
「表示」▸「ツールバーをカスタマイズ」を選択して、ツールバーに「クリティカルパス」ボタンを追加してください。
ツールバーの「クリティカルパス」ボタンを使用すると、プロジェクトの所要時間を決定する一連のタスクや依存関係がハイライトされます(クリティカルパスはプロジェクト全体ではなく、特定のマイルストーンに対しても図示されることがあります)。クリティカルパス上に計画よりも多い、または少ない時間を要したタスクがある場合は、プロジェクト全体の所要時間も変わります。通常、タスクの追跡で気を付けなければならないのは、これらのタスクです。
タスクが直線状に並んだシンプルなプロジェクトでは、ほとんどのタスクがクリティカルパス上に現れます。なぜなら、これらは 1 つの連続したチェーン上にあるからです。一方、複数のリソースが並行して作業しなければならないプロジェクト(たとえば、ここで取り上げているプロジェクト)では、遅延が生じても期限には影響しないタスクが存在する場合があります。
プロジェクトが進行するにつれ、最初に予定した期間内に完了できないタスクが出てきます。そのため、OmniPlan でプロジェクトを定期的にレビューし、新たに生じた状況に合わせてプロジェクトを更新するようにしてください。
個々のタスクは、「達成率」列のパーセント値またはタスクインスペクタの「タスク情報」セクションを編集することで更新できます。あるいは、単にガントチャートのバーで達成率ハンドルをドラッグします。
すべてが予定通りに進んでいる場合は、ツールバーの「進捗状況を更新」ボタンをクリックして、すべてのタスク(または選択したタスクだけ)の達成率を選択した日付に合わせて更新できます。
すでに完了しているはずのタスクがまだ完了していない場合は、ツールバーの「再スケジュール」をクリックしてそれらのタスクを先へ移動することができます。その後は必ずプロジェクトを平準化してください。
完全な世界では、最後のマイルストーンに到達するまでタスクの完了を追跡するだけで、プロジェクトを進めることができます。しかし、現実の世界でそうなることは滅多にありません。幸いなことに、OmniPlan には物事が予定通りに進まなかった場合に対応するためのツールがあります。
新しいプロジェクトを現実の作業環境に順応させる際には、以下の章を参考にして、無事に最後のマイルストーンに到達できることを確認してください。
時間のあるときに、マニュアルの残りの部分を参照しながら、この最初のプロジェクトの開発を続けてください。そうすれば、OmniPlan の機能をさらに詳しく理解できるでしょう。そしてもちろん、不明な点などがありましたら、いつでも弊社までご連絡ください。