!?(簡単に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作権に怯えているわけではないですよ?
かわいいにゃ~
……と思ったら耳以外突き抜けていってしまった……なんでや…………
各部位にあたり判定付けたぞ付けたぞ~~~~~
お わ り
Markdownを始めてみた
Markdownを始めてみたい
ブログを始めて一か月、、、たったけどブログ更新してみてくださいよ!!!!というメールがはてなから届きました。
冬休みに5本は書くぞ!!!とか思ってたんですけどね。。
ぼくはね、うわさに聞くMarkdown記法とかいうやつを使って、目次を付けたりしちゃって、この前作ったようなの何の工夫もしない
カスブログを卒業しておきたい!!!!!
ほら、さっそくどうですか!?見出しっぽく大文字だ!やった!!!!
※Markdownとブログに必要そうな表現を体験に基づいて覚え書きしているだけなので、まずMarkdownについて知りたいということであれば目次の「Markdownとは」に飛ぶといいと思います。
Markdownを始める
はてなブログの編集オプションには、
があり、このMarkdown記法を選んで編集してます。
編集の様子ですが、ご覧の通り特別な開始タグ\begin
だとか<\>
なんて必要ないようなので、とにかく地の文を書いていけますね。
見出しをつけたい
さっそく使っている見出し、これはHTMLならh3タグともいうみたいで
###Markdownを始めてみたい
と記述。
#
の数で見出しの種類もいくつか変えられるらしい。
例えば、
#見出し1 ##見出し2 ###見出し3 ####見出し4 #####見出し5 ######見出し6
で、
見出し1
見出し2
見出し3
見出し4
見出し5
見出し6
のように大きさの異なる見出しを使い分けられるみたい。#
の数だけで分けられるのは楽そう!
見出し1あたりが線もついていて見やすそうなので使っていくことにしよう。
箇条書きしたい
箇条書き、というか項目のリスト化は*
や-
を使い、半角スペースを一つ挟んで項目を記述する。
あるみにのやりたいことリスト * モンハン * 進捗(ゲーム作り) - コインゲーム - 缶蹴り * ブログ更新
とか記述すると、
あるみにのやりたいことリスト
* モンハン
* 進捗(ゲーム作り)
- コインゲーム
- 缶蹴り
* ブログ更新
と箇条書きできた!わーい
って、
出来てねえじゃねえか!!!!!
あるみにのやりたいことリスト * モンハン * 進捗(ゲーム作り) - コインゲーム - 缶蹴り * ブログ更新
……とすると
あるみにのやりたいことリスト
- モンハン
- 進捗(ゲーム作り)
- コインゲーム
- 缶蹴り
- ブログ更新
はい、うまくいきました。空行を両側に空けてあげることが重要なんやね。こんなミスするのは自分だけか。
コードとかをあえて表示させたい
技術系のブログを書くなら必須。みんなやってるやつ、
printf("Hello,World!!!!!!!!!!!!");
っつって、色変わってて、いいなあ、見やすいしかっこいい。 特に今回は、Markdown記法のメモ帳なので、「どのように記述したか」がそのまま適用されてしまうとなにも伝わらなくなってしまう。
```挟まれているところはそのまま反映されるよ♪ ```
というように、
`
3つで挟む。「`」は「Pキー」の隣。すぐ見つけられなかった
引用したい
~って言ってたよ、みたいな引用は便利だけど、引用した事がわかるようにしないといけない。
引用は>
を文頭付ける。引用部分は全ての段落につける!!!。
>はてなブログの編集オプションには、 >* そのまま編集 >* はてな記法 >* Markdown記法 >があり、このMarkdown記法を選んで編集してます。
と記述すれば、
はてなブログの編集オプションには、
があり、このMarkdown記法を選んで編集してます。
のように雰囲気が変わり。箇条書きにも容赦なくつける。
実践してみる
覚えた事を使って以下に「Markdownとは」というような項目を作ってみました。
Markdownとは
Markdownとはなにか?調べてみればきっとこんなものを見つけると思います。
日本語Markdownユーザー会!?ずいぶん強そうな団体ですが、Markdownを知りたければ彼らのサイトを見るのが一番でしょう。(丸投げ)。
Markdown(マークダウン)は、文章の書き方です。デジタル文書を活用する方法として考案されました。特徴は、
- 手軽に文章構造を明示できること
- 簡単で、覚えやすいこと
- 読み書きに特別なアプリを必要としないこと
- それでいて、対応アプリを使えば快適に読み書きできること
:引用 http://www.markdown.jp/what-is-markdown/
文章構造については後述の基本事項参照のこと。 簡単なことについても、これまで書いてきた見出しの付け方だったり、基本事項を見れば覚えることがそう多くないことがわかると思います。 読み書きについても後述(ry
Markdownの基本事項
Markdownの記載ルールについて、簡単に引用で説明しておきます。
Markdownの代表的なルールには:
:引用 http://www.markdown.jp/what-is-markdown/
とまあ、そんなに特別な事はないということです。
それこそ、パソコンで文章作成するならば、「改行をあける」「箇条書きにしてわかりやすくする」なんていうのは当然のことで、 そういった「当然のこと」から逸脱しない程度の書き方で見出し、引用等も表現出来ることが、「文章構造が分かりやすい」、「簡単」ということなのだと思います。
Markdown対応の変換がなされていれば、より見やすい表現が適応されますが、そうでない地の文だとしてもそう見ずらいものではないはずです。
HTMLやTexではそうはいかないと思います。いちいち<>とか\begin みたいなもので包んで記述する場合、地の文書は変換がない場合見ずらいでしょうし、変換できる対応アプリは編集するにしろただ読むにしろ必須ということです。
あくまで個人の感想ですが、Markdownを体験してそんなことを思いました。
他の記法と組み合わせ可能
これがけっこう強力だと思ったので最後に紹介しておきます。
あえて空行を開けたい
文章を見やすくしたいために乱用したい空行ですが、Markdown記法でこれを編集していて、空行改行何回つけてもないものとして扱われてしまいました。
例↓↓
改行がある↑↓
プレビュー↓↓
改行がある↑↓
なくなっちゃう。
そこで、Markdown記法はそのままHTMLの記法を使う事ができるため、
<br />
をいっぱい打てばその分空行を出すことができます。(HTMLで空行を表すもの)
もちろん全角スペースと改行を組み合わせて空行を作ることもできますが、編集中と比べて空欄の間隔が調整しずらかったので、 打っただけ反映され、見て分かるコイツを使おうかなと思ってます。
HTMLが使えるということで、Markdownでカバー出来ない部分は使ってしまっていいと思います。(Markdownで記述するうまみも、その程度の使用なら影響ないと思います。)
本ブログ編集であれば、編集ツールで勝手に使えるHTML表記もバリバリ使うのがよさそうです。
目次とかつけたい
冒頭ですでについていますが、はてな記法も使えるので、編集ツールの「目次」を使えばいいと思います。
まとめ
Markdownを多分習得しました。
やる気なさ過ぎて公開に至るまで一か月かかってますねこれ()
そんな調子で不安すぎるけど四月までにはあと2,3の記事を公開できたらいいなと思います。
あと、自分が初めて作成したブログもMarkdownで書き換えておこうとおもいまーーーす。
!?(簡単に3Dオブジェクトを作れてUnityに採用できるPaint3Dってなんだ……?)
※この記事は[TCU CTRL場外乱闘 Advent Calender 2017](https://adventar.org/calendars/2322)の記事です。※
※Markdownを使って作り直したやつ※
どうも、タイムトラベラーのあるみにです。
設定日の翌日に登録。未来からのアクセスを許してくださった場外乱闘に感謝。
ちょうどそれっぽい書くことが降ってきたのでアプリゲームの攻略情報から一転して開発に使えそうなソフトの紹介(というか出会いの記録)をすることで、ブログ書き処女を散らすことにします。
というわけで紹介するのが『Paint3D』です。
Windows10の Creators Updateで新たに標準搭載されたという新しい3DCGソフトとのことです。
Creators Updateなんてそういえばあったな、という程度ですがどうやらWindowsの『ペイント』に3D要素を加えた進化版だそうで、3D関連はもちろんのこと、従来の2Dのペイントの機能も強化されているとかされてないとか。ペイントとは別アプリの扱いでこれからはペイントに成り代わって標準搭載されるそうですよ。
どうしてこんなの知ったの?っていう経緯です。
現在同じサークルのメンバー一名とペアでゲームを開発していまして、まあ進捗過程の画像を見てください。
いわゆる『コインプッシャー』というゲームです。ゲームセンターとかによくあるヤツですね。開発環境はみての通りUnityです。
Unityも複数人で一つのゲームをつくるのも、ほぼ経験ナシだが簡単そうなのいっこつくっぞ!という感じです。けっこう楽しいです。
そんなとき「Unityでコインプッシャー?ならコインの3Dオブジェクト作ったからどうぞ」とペアのひとりが友達からファイルを貰ってきたそうで。
??
なんだクリエイティブ過ぎでは?サンタクロースかな?
もらったファイルはこんな感じ。
textureの中身はこう。
…なんだかよく分からないが送り主の指示通りに我らがゲームに適用
こうなりました
!?
積み木を組み立てたような安っぽい色合いのステージが申し訳なくなる紛れもないコインですね。
ここで自分が苦心して作り上げたcoin君と比較。
円柱を薄くして黄色く着色しただけの出来の悪いクッキーみたいなものに対して、
こちらは銀の金属光沢があり、それっぽい模様まで施されている。しかも枠、模様の凹凸まである。比較すること自体が失礼。
こんな細かい部分、自分が未熟なだけかも知れないですが、Unityで再現するのは厳しいでしょうね?Unity自体細かいオブジェクトの作成は外部ツールに頼るのが良いみたいですよ。
しばらく自分たちのレベルを超えたテクノロジーにキャッキャッしたのち、どうやって作ったんだろうこれ?と。
それが今回紹介する『Paint3D』なわけです。
では少し真面目に実装手順を自分の例に沿って見せていきたいと思います。
Windows10であればCortanaに聞けば出してくれるでしょう。『Paint3D』を起動します。
早速開いて新規作成を選べばこんな画面になります。2Dのペイントができそうですね。
従来どおりペイントもできそうですが、今回はこれが本題ではないです。
3D図形というものを選択。早速横に3Dモデルというのがあるので、魚の形したものを選んでみます。
魚が爆誕しました。2Dで使っていたブラシなどでかきこんだり、塗りつぶしで着色できます。
後ろのキャンパスは消すことができますね。
オブジェクトをまわしながらかくことができます。あるみにのセンスが光ります。
さて、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』、なにが、どこまで出来るのかよく分かっていないので、調べていく価値がありそうです。
最後に、逐一我々のプロジェクトを気にかけ、コインまで提供してくださったペアフレンズに感謝を。世話になってばかりではいけないので今度ペアと焼き肉でも食べましょう(?)
※おまけ
もともとあるアプリゲームの攻略情報を書くつもりだったのでそのキャラクターを軽く作ってみました。
🄬は著作権に怯えているわけではないですよ?
かわいいにゃ~
……と思ったら耳以外突き抜けていってしまった……なんでや…………
各部位にあたり判定付けたぞ付けたぞ~~~~~
お わ り