【20日間で】凡人がC#とHoudiniでUnityにゲームのテスト環境のあるカフェを制作する!

あけましておめでとうございます。

今年初めての投稿になります。

本年もtomoarch.comをどうぞよろしくお願い致します。

 

C#について、Houdiniについて、Unityについて、ちょろちょろと慣れ親しむ程度の記事を書いていて思うのですが、

どれも、本気でテクノロジーを使ってプロジェクトを殴り倒すみたいな事が出来てないなと思っているところです。

 

中途半端なんですね、要するに。自分でも何をやっているかよくわからないというか、なんというか。

それからボードゲームしかできない家(下リンク)のように、途中で終わったプロジェクトもあり、包括的かつ継続的にアウトプットできていないという事があります。

 

自分が何をできて何をできないかもよくわからないというような、謎な状況を打破すべく、新しいプロジェクトに身を投じようと思います。

 

【20日間トライアル】C#とHoudiniでUnityにゲームのテスト環境のある書店カフェを制作する!

 

始めてしまいました。20日間トライアル。

期日通りに出来なかったらごめんなさい。

それではこのプロジェクトの構想をご説明していきたいと思います。

C#とHoudiniでUnityのゲームテスト環境のある書店カフェの構想

C#とHoudiniでUnityのゲームテスト環境のある書店カフェの構想ですが、包括的なツールの使い方を凡人が考えるという事を目標にしたいと思っています。

第一に、C#もHoudiniもUnityもよくわかんないけど何ができるんですか?という問いに応えられるようにしたいです。

 

全力で、C#とHoudiniでUnityのゲームテスト環境のある書店カフェを作る過程を書き残すことで、

やっぱりUnityxC#もHoudiniもこんなことに使えるんだ!最高ですね!って、思って欲しいです。

 

私自身も、勉強した内容がこれからの自分のコアになるようなアウトプットを心掛けたいと思います。

 

達成したい事は3つあります。

 

達成したい事No.1はまずはHoudiniでカフェの背景モデリングをするという事です。

プロシージャルを利用した、背景モデリング、そして、Unityでテクスチャとライティングをしようと思います。
この際、余力があれば、勉強がてらPythonも使用したいと思っていますが、そこまで手が回るか不安です。

 

次に、達成したい事No.2はPhoton2によるコミュニケーション機能の実装ですね。

PUN2を使ってチャット機能を実装したいと思っています。

 

最後に、達成したい事No.3は、カードゲームのテストプレイができる環境を作ることです。

これは以前のボードゲームしかできない家と似たようなコンセプトですね。

 

この3つを今回は20日間で達成しようと思っています。

 

なぜC#とHoudiniとUnityなのか?UE4/Twinmotionや3dsMAXではないのか

まずは何故UNITYなのか、UE4ではないのかというところですね。

実はそもそも書店カフェというのをRHINOCEROSベースで作っていて、TWINMOTIONにもっていってビジュアライズするというのはもうやっているのです。

ではなぜ、わざわざそれをUNITYで構築し直すかというと、

インタラクションを作る上で、C#が使える方が圧倒的にゲームシステムを組み込みやすそうなのです。

チャットもUnityのアセットであるPHOTON2を使えば簡単に実装できそうですし、C#を学ぶ事自体でさえ、.NETフレームワーク前提で考えれば汎用性が高いです。

 

この際、オブジェクト指向プログラミングであるC#をきちんと習得しておきたいと思っています。

 

次に、何故Houdiniなのか?と思われるかもしれません。

ポリゴンモデリング機能の強いDCCツールでありながら、プロシージャルとアトリビュートという強い機能を持っていて、

かつ、VFXもできるという万能なツールだからです。

 

RHINOCEROSxGHという手もあるのですが、GHは各頂点にアトリビュートをつけて整理したりとかは不得手であるし、

ポリゴンを最適化したりUVをいじったりとかはそもそも向いていないのではないかと思ってしまいます。

 

現時点で私はそのHoudiniの威力を発揮できるほどのスキルはありませんが、Houdiniは圧倒的な可能性の塊だと思っています。

簡単に言ってしまうと、個人的にですね、私はHoudiniが好きなんです。惚れ込んでいます。

その割にはちゃんと使えていませんが(笑

 

今回のチャレンジはHoudiniをちゃんと使うチャンスだと思っていますので、なるべく基本から整理しつつ理解していきたいと思っています。

 

C#とHoudiniでUnityのゲームテスト環境のある書店カフェの工程表

今回のC#とHoudiniでUnityのゲームテスト環境のある書店カフェでどんな内容をカバーしたいか、現時点での見込みを書いておきます。

実際に記事を書いたら一つずつタイトルは直していこうと思います。(2/21タイトル修正済み)

 

▼【第01日目】Houdiniにobjオブジェクトを読み込んでマテリアル別に分別する 

▼【第02日目】HoudiniからUnityにFBX取込みとAmplifyShaderによるマテリアルシェーダーの作成

▼【第03日目】PUN2によるPHOTONの導入とチャットをしながら店内を歩き回る 

▼【第04日目】UnityとPUN2による互いのキャラの位置同期とチャットの両立 

▼【第05日目】UnityとPUN2で3Dのカードを触る、配る、対面で座る

▼【第06日目】HoudiniでカードとTextureを作りUnityでランダムドローする

▼【第07日目】UnityとPUN2で手札と山札使用する配列の処理とマルチプレイヤー対応 

▼【第08日目】UnityとPUN2でカードの同期と表示のマルチプレイヤー対応

▼【第09日目】UnityとPUN2の一人目のプレイヤーが見えないバグを修正する 

▼【第10日目】UnityとPUN2とHoudiniでカードゲームのマナトークンを生成する 

▼【第11日目】UnityとPUN2でマナトークンの管理をtagと配列とisMineで処理する

▼【第12日目】UnityとPUN2とC#でマナトークンの所有権の移譲を行うRequestOwnership

▼【第13日目】UnityとPUN2とC#でParticleSystemを使用する 

▼【第14日目】UnityとPUN2とC#のPhotonNetwork.Instatiateでマナトークンを補充する 

▼【第15日目】UnityとPUN2とC#でカード別のコストと効果を使用する 

▼【第16日目】UnityとPUN2とC#で山札の配列を対戦相手と共有する

▼【第17日目】UnityとPUN2とC#で対戦相手と山札を別々に扱う

▼【第18日目】UnityとPUN2とC#で対戦相手と同じ音楽を聴く

▼【第19日目】UnityとPUN2とC#で作ったプロジェクトをウェブに公開する

▼【第20日目】UnityとPUN2とC#で書いたスクリプト一覧 

 

おわりに

それでは、20日チャレンジ開始します!

応援よろしくお願い致します!

 

おすすめの記事