
UnityCreativeCoreの学習⑩プロトタイピングについて
無限に続くかと思われたこのUnityCreativeCoreの学習もいよいよ終わり。(大げさ)
プロトタイピングについて学ぶことで、いよいよ真のゲームメーカーとしての知識、その根幹を手に入れたと言っていいだろう。
と思いますので、最後まで気を抜かずに学習していきましょう
プロトタイピングとは
プロトタイピングは、製品やシステムの初期のバージョンや試作品を作成するプロセスです。これは、製品やシステムの機能やデザインの検証、評価、および改善を可能にするために行われます。プロトタイプは、実際の製品やシステムが開発される前に、概念の検証や顧客フィードバックの収集など、さまざまな目的に使用されます。プロトタイピングには、手作業での作成からデジタルツールの使用まで、さまざまな方法やツールがあります。
アジャイル開発との違いは?
目的と焦点:
プロトタイピング: プロトタイピングは、主に製品やシステムのアイデアや概念を検証し、評価することに焦点を当てています。プロトタイプは、機能やデザインの概念を明確にし、利害関係者のフィードバックを収集するために使用されます。
アジャイル開発: アジャイル開発は、プロジェクトの柔軟性と進化性を重視しています。これは、開発チームが短いイテレーションを通じて、要件や優先順位を調整し、製品の価値を迅速に提供することを可能にします。
プロセスの進行方法:
プロトタイピング: プロトタイピングは、通常、開発の初期段階で行われ、製品やシステムのコンセプトを探索するための短いサイクルで進行します。プロトタイピングは、アイデアの検証とフィードバックの収集に焦点を当てており、ソフトウェアの実装やデプロイメントはその後の段階で行われることが一般的です。
アジャイル開発: アジャイル開発は、プロジェクト全体で繰り返しのイテレーションを通じて進行します。各イテレーションでは、開発チームは要件の優先順位を設定し、機能を開発してテストします。その後、利害関係者のフィードバックを収集し、次のイテレーションに適用します。
対象と範囲:
プロトタイピング: プロトタイピングは、機能やデザインなど、特定の側面に焦点を当てた小規模な試作品を作成することが一般的です。これは、アイデアの検証や概念の明確化に役立ちます。
アジャイル開発: アジャイル開発は、製品やシステム全体の開発に焦点を当てています。各イテレーションは、製品の全体像の一部を構築するための作業を行います。
これらの違いはあるにはあるが、プロトタイピングとアジャイル開発は、両方とも製品やシステムの開発プロセスを改善し、利害関係者のフィードバックを活用して価値を提供することを目指しています。
と、一般的なことを並べましたが、これらは参考程度で良いです。
いまそこにある製品について考えましょう
本棚で、本を支えるブックエンド、コーヒーをかきまぜるマドラー。
身近なものが、どのように作られたかに思いをめぐらせましょう。
それらは、突然この世に生まれたのではなく、まず多くの試作品から作られているのではないでしょうか。
手元にある何でもよい、製品に対して、以下について検討してください。
オブジェクトの目的は何ですか?
それを使用するエクスペリエンスは、目立つことを意図したものですか、それとも日常の中でシームレスに起こるものですか?
使用してみてよかったと思う点があれば教えてください。
使用中にイライラすることがあるとすれば、それについてはどうですか?
どんなものでもプロトタイプが作られた可能性があります。
なぜプロトタイプを作るのですか?
アイデアがあり、そこに向かってゲームを作る。それはチームワークでなく、一人で作る場合特に素敵な体験だと思います。
しかし、その作ったゲームが
・どのように遊ばれるか
・それをサポートするシステムは何か
・これから先どうなるか
というものは、作者だけではわかりません。
そのため、クリエイターはプロトタイプを作っていきます。
完成なんて、しなくていい。とにかくプロトタイプでアイデアを形にするのだ。
巧遅より拙速。ちょっと触って手触りが良かったら、プレイヤーの反応が良かったら完成を目指す。こういった考え方は、エネルギーの使い方としては正しいはずです。
ではサンプルのプログラムで遊びましょう。
3Dの、お庭探検プロジェクトでした。
中央の白い点は、乗り物酔いを防ぐためにあるらしい。

たのしいね!じゃあ次はプロトタイピングの種類について考えよう!(なんやねん)
ラピッドプロトタイピング
要件を定義し、それらの要件に基づいてエクスペリエンスのクイック プロトタイプを作成することが含まれます。このプロトタイプは通常、完全な製品化には使用されません。
実際には、特に趣味の開発者やより小規模なインディー開発者によるプロジェクトの場合、ラピッド プロトタイプが完全な運用に持ち込まれることがあります。
メリット
比較的短い時間で要件と前提をテストして調整し、ゲームの複数の方向性を検討できることです。このアプローチは素早いピボットをサポートできます。これは開発プロセスで頻繁に役立ちます。
デメリット
テストのためにインタラクションを迅速に実装することは、ゲーム システムを適切に実装することと同じではないため、このアプローチでは、運用に入るときに最初からやり直す必要がある場合があります。
Evolutionary prototyping(進化的プロトタイピング)
プロトタイピングの一形態であり、ソフトウェア開発プロセスの一部として使用されます。この手法では、初期のプロトタイプを作成し、そのプロトタイプを逐次的に改善して製品やシステムを開発していきます。
進化的プロトタイピングでは、次のような特徴があります:
初期プロトタイプの構築: 開発プロセスの初期段階で、製品やシステムの基本的な機能や概念を示すプロトタイプが作成されます。このプロトタイプは、アイデアや要件を明確にし、開発の方向性を決定するのに役立ちます。
利害関係者のフィードバックの取り込み: 初期プロトタイプを利用して、利害関係者からフィードバックを収集し、要件や設計の変更を行います。このフィードバックは、製品やシステムの進化に寄与します。
プロトタイプの逐次的な改善: 収集したフィードバックを基に、プロトタイプを逐次的に改善していきます。新しい機能や修正が追加され、プロトタイプは段階的に製品やシステムに近づいていきます。
徐々に完成度を高める: 進化的プロトタイピングでは、開発プロセスの進行に伴い、プロトタイプが製品やシステムに近づくようになります。最終的には、プロトタイプが製品やシステムの完成版になることがあります。
進化的プロトタイピングは、利害関係者のニーズや要件の変化に柔軟に対応しながら、製品やシステムの開発を進めるのに役立ちます。また、プロトタイプを通じて、利害関係者とのコミュニケーションや共同作業を促進し、製品やシステムの品質や適合性を向上させることができます。
しかしながら、進化的プロトタイピングは、クリエイティブコアの人がやるようなものではない。
ラピッドプロトタイピングに焦点を当てて学習を進めます。
スプラトゥーンの場合

マリオやゼルダではないゲームを作るために、70以上のアイデアを持ち寄って、半年もかけて何人もの人が話し合ったそうです。
多くのゲームに対するディスカッションを見る
製作者が、ユーザーの声を聞く。どのようなことをユーザーが考えるかを聞く。
それらは、自分のゲームである場合だけではありません、どのような視点でプレイヤーがエクスペリエンスの中にいるかを顕在化させることで、より素晴らしいゲーム開発を行うことができます。
個人的には、Youtuberが好きです。ナカイドさんや、KENTさんが好きでよく見ていますが、とっても参考になることを言います。
でも、プロトタイプって言ったって何をすれば・・・
過去の学習に戻って、設計ドキュメントを書くのもよいです
便利そうなので、Unityで配布しているdocxファイルを日本語にしました。
有用そうだなあと思って下さった方は使ってみてください。
ゲームジャムの前に以下を読もう!(英語)
日本語記事も書きました!
そんな具合で、アイデアを書き溜めていきましょう。
アウトプットに至る過程こそがアートの本質である。
ターゲットを特定しましょう
次の質問に対する答えをメモしてください。
エクスペリエンスのターゲット ユーザーは誰ですか? そのグループをより小さなサブグループ (ユーザー セグメントと呼ばれることもあります) に分割できますか?
他に役立つ、魅力的、または楽しいと思われる比較できるエクスペリエンスは何ですか?
有益な、または魅力的なエクスペリエンスに対する主なニーズは何ですか?
彼らがエクスペリエンスに参加することをやめてしまう原因は何でしょうか?
エクスペリエンス=ゲーム体験と読み替えていくと良いでしょう。
エレベーターピッチを考えてみよう。
コンセプトの範囲を絞り始める前に、エレベーター ピッチを検討してください。これは、独自のセールス ポイントまたは主な魅力が何であるかを明確にする、あなたの経験を 1 文で説明したものです。
ゼルダの伝説は・・・英雄が神秘的な土地ハイラルを探索して巨悪を倒し、王女を救うために必要な道具を集めるゲームです。
といった具合で。
小説の世界では一行で作品を説明することをログラインと呼びます。
それはハリウッド的であるとのこと。
しかし、アイデアを量産するには良い手法でしょう。
生まれたアイデアは、忘れないようにすべてドキュメント化しましょう
!
ドキュメントできましたか?(できてない)
コンセプトの範囲を絞りましょう
たとえば、大規模なマルチプレイヤー オンライン ロールプレイング ゲーム (MMORPG)を作っていたり、広いエリアのウォーキング シミュレーターを作っていたり、建築ビジュアライゼーション アプリを作ったりするときには必要です。あくまでプロトタイプですから、範囲は絞る方が良いでしょう。
ペーパープロトタイプも作りましょう
ペーパー プロトタイプを作成するプロセスは、技術的な実装を検討する前に、インタラクションが提供するエクスペリエンスについて考えるのに役立ちます。
このプロセスが提供するその他の利点としては、次のことが挙げられます。
アイデアの実行可能な最小限のバージョンを作成するために、正確に何を含める必要があるかを明確に理解します。
初期の出力を作成し、他の人と一緒にテストして、初期の設計についての意見を得ることができます。
エンジンでの作業を開始する前に、コア設計における潜在的なユーザビリティの問題を特定します。
ペーパープロトタイプはアイデア量産には良いですが、ウォーキングシミュレータやよくあるタイプのゲームには向かない可能性もあります。
そういった場合、ペーパープロトタイプは、上記に示したプロジェクトデザインの資料よりももう少し踏み込んだ資料となっても良いでしょう。
以下のように進めます。
1・資料を集めるか、作業用のデジタル ツールをセットアップします。付箋を動かしたり、大きな紙で作業したりする触覚要素があると便利です。
2・アイデアの主要な要素を表現します。例えば、プレーヤーがポーションを作成するためにオブジェクトを収集するゲームであるならば・・・
プレイエリアのマップとその素材配置図
収集エリアで生成されるランダム化されたオブジェクトを表す記号
材料収集スペース内の障害物またはノンプレイヤー キャラクター (NPC) を表す付箋またはカウンター。
のようなものを表現し
3・それを実現させるための概要説明
NPCの行動や会話の応答
障害物がプレイヤーに与える影響
ポーションを生成するオブジェクトの組み合わせなど
4・協力者を集めましょう。できれば4人で一組ですが、4人でなくても良いです。
ユーザー:プレイヤーまたはエクスペリエンスのユーザーの役割を引き受けます。
ファシリテーター:エクスペリエンスを紹介し、誘導的な質問をせずにユーザーが自分の考えを大声で共有するよう促します。
エクスペリエンス/コンピューター:アクションを完了し、コンピューターが行う出力を提供し、プレーヤーの入力の結果を示します。
オブザーバー:ファシリテーターが集中できるように、観察してメモを取ります。
5・その後、ペーパープロトタイプを作成します。
6・フィードバックを評価しましょう
代替プロトタイピングツールを使っても良いです

インタラクションと機能に優先順位をつけましょう
次の質問を自分自身に問いかけてください。
それらは私が作りたいエクスペリエンスにとって適切なインタラクションでしょうか?
ペーパープロトタイプのテスト後、最も基本的なプロトタイプの範囲は妥当だと感じますか?
最初の基本的なインタラクションが実装された後、プロトタイプの 2 回目の反復に属するものはありますか?
必要に応じて、設計ドキュメントを更新して、計画への変更を記録します。
範囲を狭め、方向を定めましょう。
プロトタイプの外観を定義しましょう
プリミティブばかりのグレーボックスで作るのもOKです。
しかし、以下のようなことも検討すると良いです。
全体的なエクスペリエンスまたは主要な視覚要素の基本的なスケッチを描きます。
デジタル ムード ボードを作成してインスピレーションの参考資料を収集します。
特定の領域 (たとえば、特定の映画ジャンルの照明や特定のゲームの色の使用など) におけるビジュアル デザインと美学に対して同様のアプローチをとっている比較エクスペリエンスを特定します。
可能であれば、コンセプト アートを自分で作成します。
ぐっと作業が共有しやすくなります。
ローファイプロトタイピングとは
ペーパープロトタイピングがすべてのゲームに適しているわけではありません。
Unityではさまざまなゲームのアイデアをテストできるローファイ(忠実度の低い)方法がたくさんあります。
時間をかけて、他のクリエイターが何をしているのか調査し、自分や自分のプロセスに適したリソースやアプローチを特定してください。また、このトピックについてネットワーク、特に実績のあるクリエイターと話し合って、プロトタイピングの初期段階で何が役立つかを知ることも役立ちます。

わけのわからない動作をしたとしても、説明してくれるならOKだ。
(ちなみに、踏板を踏んだらボタンが活性し、ボタンを押下したら跳ね橋が下りる動作をしたいようだ。
プロトタイプを強化するときに非常に役立つ 2 つの Unity ツールがあります。
ProBuilder : Unity でカスタム ジオメトリを構築、編集、テクスチャリングするために使用できるパッケージ。
地形ツール: エクスペリエンスの風景を作成するために使用できる Unity の一連の機能。
こういったものも使用しながら、
アセットをダウンロードしながら、ゲームを作っていきましょう。
(ちょっと端折っています。ごめんなさい)
ProBuilderを使ってみよう!
Unity には、モデルを最初から作成せずにプロトタイプ環境を強化するのに役立つツール、ProBuilderが用意されています。
プロジェクトに、ProBuilderパッケージをインストールしましょう。
Window→パッケージマネージャ→Probuilderのインストール

メイン メニューで、[ツール] > [ProBuilder] > [ProBuilder ウィンドウ]に移動します。使いやすくするために、ProBuilder ウィンドウをインスペクターの隣にドッキングすると便利な場合があります。



新しいシーンを作って、さっそくオブジェクトを配置していきましょう。






ふーむ、Probuilder素晴らしいなあ。
ヒエラルキーで右クリックしても、コンテキストメニューにProBuilderがある



これで、連続してオブジェクトを作っていくことが楽になるのだ。


ProBuilderでドアを作ろう。
では、ドアでも作ってみましょうか。

キューブを出して、壁を作る。


シフトキーを押しながら別の面、見えている二つの面も選択します
ふっ・・・これ以降が全くわからない。仕方ないのでUnityJapanの動画かなにかで、別途勉強ですね。Youtubeなどで個別に学びましょう
地形!Terrainを学ぼう
あー、これは見覚えがあります。いつか、メモをまとめたいなと思っていました。良かった。
ヒエラルキーで3Dオブジェクト、Terrainを選びましょう




タイルグリッドシステムで拡張しよう
Terrain のデフォルト サイズは正方形のメッシュ解像度で、長さと幅は両方とも 1000 メートルです。しかし、それだけでは風景全体を作るのに十分ではありません。タイル グリッド システムを使用して、すでに作成したタイルに隣接するタイルを作成することで、地形を拡張できます。


一番左は隣接するTerrainを作成するのだ

とりあえず3×3のフィールドを作ろう



ブラシ サイズは300程度にします。
不透明度は約40です。
画面上でドラッグしましょう

シフトを押しながらだと、下がる。
満足いくまで大地を作りましょう
ヒント:スカルプト中にブラシ サイズを増減するには、キーボードの角括弧の開き括弧キーと閉じ括弧キー ( [ ] )を使用します。便利。


さらに色々なことができます。

Paint Holes(穴をあける)
Paint Texture(テクスチャを貼る)
Set Height(高さ固定で平坦な箇所を作る)
Stamp Terrain(地形にブラシをスタンプする)
Raise pr Lower Terrain(段差を作る)
Smooth Height(段差をなめらかにする)
なるほど。
更に地形を洗練させるには・・・
地形レイヤを使う
Terrain Layer は、地形を定義するアセットです

アセットストアで木を購入し、地形に配置できます

草を配置するには

ウィンドゾーンを定義できる


ここまでできたら、プロトタイプの作り方は大丈夫です。
いよいよ、プロトタイプのテストを行います。
そろそろ終盤ですね、
プロトタイプはテストします
ユーザーエクスペリエンスはどのようか
その経験の何が楽しく、魅力的で、役に立つのでしょうか?
ユーザーとして、挑戦されるとどう感じますか? この挑戦は意図的なものなのでしょうか?
不満点はどこにありますか?それらはどのくらいの期間持続しますか? 現在ユーザーはそれらに対処できますか?
エクスペリエンスによって確立されたユーザーの期待は適切な結果で満たされますか?
思い込みを排して検討しましょう
その他、一般的なアプリケーションのテストの技法もよく使えるようです。
これで、あなたの旅は全て終了です。
学んだことを振り返り、良いゲームを世に出していきましょう。
とのこと。
お疲れさまでした!