!?(簡単に3Dオブジェクトを作れてUnityに採用できるPaint3Dってなんだ……?)Markdown修正版
※この記事はTCU CTRL場外乱闘 Advent Calender 2017の記事の修正版です。
※Markdownとそれっぽいはてなブログの書き方を習得したのでそれを使ってみた
(一応記念に?比較用?前の記事も残したままにすることにした)
(おまけにgifを追加した)
はじめに
どうも、タイムトラベラーのあるみにです。
設定日の翌日に登録。未来からのアクセスを許してくださった場外乱闘に感謝。
ちょうどそれっぽい書くことが降ってきたのでアプリゲームの攻略情報から一転して開発に使えそうなソフトの紹介(というか出会いの記録)をすることで、ブログ書き処女を散らすことにします。
というわけで紹介するのが『Paint3D』です。
Paint3Dとは
Windows10の Creators Updateで新たに標準搭載されたという新しい3DCGソフトとのことです。
Creators Updateなんてそういえばあったな、という程度ですがどうやらWindowsの『ペイント』に3D要素を加えた進化版だそうで、3D関連はもちろんのこと、従来の2Dのペイントの機能も強化されているとかされてないとか。ペイントとは別アプリの扱いでこれからはペイントに成り代わって標準搭載されるそうですよ。
経緯
どうしてこんなの知ったの?っていう経緯です。
現在同じサークルのメンバー一名とペアでゲームを開発していまして、まあ進捗過程の画像を見てください。
いわゆる『コインプッシャー』というゲームです。ゲームセンターとかによくあるヤツですね。開発環境はみての通りUnityです。
Unityも複数人で一つのゲームをつくるのも、ほぼ経験ナシだが簡単そうなのいっこつくっぞ!という感じです。けっこう楽しいです。
そんなとき「Unityでコインプッシャー?ならコインの3Dオブジェクト作ったからどうぞ」とペアのひとりが友達からファイルを貰ってきたそうで。
??
なんだクリエイティブ過ぎでは?サンタクロースかな?
もらったファイルはこんな感じ。
textureの中身はこう。
…なんだかよく分からないが送り主の指示通りに我らがゲームに適用
こうなりました
!?
積み木を組み立てたような安っぽい色合いのステージが申し訳なくなる紛れもないコインですね。
ここで自分が苦心して作り上げたcoin君と比較。
円柱を薄くして黄色く着色しただけの出来の悪いクッキーみたいなものに対して、
こちらは銀の金属光沢があり、それっぽい模様まで施されている。しかも枠、模様の凹凸まである。比較すること自体が失礼。
こんな細かい部分、自分が未熟なだけかも知れないですが、Unityで再現するのは厳しいでしょうね?Unity自体細かいオブジェクトの作成は外部ツールに頼るのが良いみたいですよ。
しばらく自分たちのレベルを超えたテクノロジーにキャッキャッしたのち、どうやって作ったんだろうこれ?と。
それが今回紹介する『Paint3D』なわけです。
Paint3D実践記録
では少し真面目に実装手順を自分の例に沿って見せていきたいと思います。
Paint3Dの起動
Windows10であればCortanaに聞けば出してくれるでしょう。『Paint3D』を起動します。
早速開いて新規作成を選べばこんな画面になります。2Dのペイントができそうですね。
従来どおりペイントもできそうですが、今回はこれが本題ではないです。
3Dオブジェクトをつくってみる
3D図形というものを選択。早速横に3Dモデルというのがあるので、魚の形したものを選んでみます。
魚が爆誕しました。2Dで使っていたブラシなどでかきこんだり、塗りつぶしで着色できます。
後ろのキャンパスは消すことができますね。
オブジェクトをまわしながらかくことができます。あるみにのセンスが光ります。
3DオブジェクトをUnityに適応する
さて、3Dオブジェクトは完成したので保存して早速Unityに組み込んでいきましょう。
Unityでオブジェクトを使用するために、ファイルのエキスポートを行います。
「3D FBX」を選んで保存しましょう。
なお、「名前を付けて保存」の場合、この『Paint3D』内に保存されるようです。
指定がなければ「3Dオブジェクト」というファイルに入るようです。ここから作ったファイルを選んでUnityのプロジェクトにドラッグアンドドロップ。
Projectにドロップしました。上の二項目が追加されます。
このうち、オブジェクトはfishの方なので、これをScene画面内にドロップしてみましょう。
ドロップされたら更にそれをSceneにドロップでfish(1)がHierarchyに、実物がSceneの空間に現れます。(適当に大きさを変えたり位置を調整する必要はあった)
一度コピーしなおして「fish(1)」となっていますがお気になさらず。
中にはふたつオブジェクトが入っており、それぞれ「root1」「root2」となっていて、先ほど作成したキャンバスと魚オブジェクトでふたつということです。魚の方を「fish」に改名しています。
このオブジェクトに物理法則、当たり判定などを追加しました。
自分お手製のオブジェクトがUnityのプロジェクトのなかでコインに埋もれているのを見る、感慨深いものがありますね。
もちろんプレハブ化して複製も可能です。Unityの説明の方に逸れるのでプレハブ化については省きますが、プレハブはオブジェクトとそのコンポーネントやプロパティをひとつに格納したもので、要はクラス定義みたいなので同じ動き方をするオブジェクトをインスタンス生成してたくさん複製出来ます。
先ほどのfishをプレハブ化したものを、そのまま「Fをクリックするとひとつインスタンス生成する」というようなスクリプトに、このオブジェクトを登録して活用したりすると良いでしょう。
大漁大漁。
このへんはUnityの通常のオブジェクトの扱いとほとんど同じになります。
というわけで今回はここまでとさせていただきます。
まとめ
いかがでしたでしょうか。実はPaint3Dを使っている事が分かったこと以降は適当に操作したら何とかなった部分であり、3Dオブジェクト作成から適応までそれはど時間は要していないのです。
どれもこれも素人な自分がここまで出来るので、「お手軽簡単」といっていいように思いますね。
実は謎のオブジェクト提供者のコインは光沢、色合い、凹凸の情報が三つに分かれており、Unity内でもそれらの適応をする操作をする必要があります。今回自分が実践したものより高度なことをしていそうです。もしそちらに関しても知識が得られればブログに書くかもしれません。
まだこの『Paint3D』、なにが、どこまで出来るのかよく分かっていないので、調べていく価値がありそうです。
最後に、逐一我々のプロジェクトを気にかけ、コインまで提供してくださったペアフレンズに感謝を。世話になってばかりではいけないので今度ペアと焼き肉でも食べましょう(?)
おまけ
もともとあるアプリゲームの攻略情報を書くつもりだったのでそのキャラクターを軽く作ってみました。
🄬は著adventar.org作権に怯えているわけではないですよ?
かわいいにゃ~
……と思ったら耳以外突き抜けていってしまった……なんでや…………
各部位にあたり判定付けたぞ付けたぞ~~~~~
お わ り