Unity

この記事はUnity アセット真夏のアドベントカレンダー 2019 Summer!の29日目の記事です。

今回はBolt、Chronosを作ったパブリッシャー、ludiqの新作アセットPEEKの紹介です!

公式サイト https://ludiq.io/peek

アセットストア https://assetstore.unity.com/packages/tools/utilities/peek/

ちょっと前まで違うアセットを紹介する予定だったんですが、たまたま目について便利そう && Boltの作者ということで興味を惹かれたので買ってみました。

Ver,1.0.0が2019年8月17日
Ver1.0.1(最新)が2019年8月24日

Ver1.1.0(最新)が2019年8月28日に来てました!
更新されまくってる新作アセットです!

出たばかりのアセットは機能や情報が少なく、ある程度こなれるまで失敗感が拭えなかったりしますが、PEEKは新作のはずなのに2019.3までテスト済み、マニュアルもしっかり用意されている高い完成度!公式サイトの仕事が丁寧なので…正直この記事より公式サイト見た方が得るものは多いです

さぁまずは公式の動画をみてください

どうです?なんか良さそうでしょ?
興味を惹かれた人のため使ってみた使用感と機能解説に入ります。

Quick Maximize

PEEKを使いたいときはまずはSceneビュー内をダブルクリックして全画面表示にします。

なぜ全画面にするか?というと、このアセットはSceneビューを全画面に表示した上で、Sceneビュー上でUnityのほとんどの機能を操作できる用にワークフローを変えるアセットなのです。

おそらくHierarchy、Inspecter、ProjectあたりはSceneビューと同時に開いてる人が多数派じゃないかと思うのですが、そうするとSceneビューが小さくなって操作しにくいことも多いはず!PEEKなら他のビューに圧迫されてた時の2倍3倍の広さのSceneビューを見ながらUnityを扱えるようになります。

この後細かな便利機能についても書いていきますが、個々の機能より使いたい機能だけに意識を向け、それ以外が邪魔にならない全体的なUXデザインが素晴らしいです。サイトのトップにあるこのコンセプトを本気で実現しようとしている印象で非常に好感が持てるアセットです。

Fullscreen Tabs

さて、大画面にすると左上にタブが表示されていますね。ここでシーンを拡大する前にUnity上で開いているタブにアクセスできるようになってます。Sceneビューだけになったからといっても機能性が劣るということはありません(サードパーティのエディタ拡張を多用する人は例外かも…)

PEEKのビュー表示には選択したタブだけが左側に表示されるPopUpと、シーン上に任意の位置に複数のウインドウを配置できるPinnedの2パターンの表示があります。Pinnedはウインドウの位置が記憶されるので邪魔になったら気軽に消しても全然問題なし!出したい時にいつでもすぐ同じ場所に出せます!

従来のUIはレイアウトを頻繁に変えることは想定されてない気がしますが、Pinnedモードでは出したり消したり重ねたり動かしたりSceneビューの上に乗せたり乗せなかったり自由自在です

これを使ってるとUnityのUIは出来が悪いのでは?と思えてきました。不要なタブを手軽に隠したり復帰させたりできず、機能同士が密接に絡んで複数タブ出してないと操作しにくいってなんか古臭くない?

Quick Create

Unityでゲームオブジェクトを作るときよくわからない位置に生成されてイラッと来ることが多々あります。ありますよね?

PEEKではShift+Command+左クリックでマウスの指し示した場所にオブジェクトを生成できます。しかもマウスが指定した場所に接地する形で生成されます

クリックするとリストが表示され、これにはUnity標準のアセットに加え、PrefabやSpriteなども検索できるようになっています。階層を辿ることもできますが、アセットの名前で指定するといつでも即座に出したいオブジェクトを出せて便利です

また、生成されるオブジェクトは生成時にクリックしたオブジェクトと同じ親をもちます

PrefabをHierarchyビューにドロップしてで置を調整して…とか、Sceneビューにドロップして親子関係を直して…とかそういった手間が減らせます。アセットの配置が楽になりますね!

ついでに言うとQuick Createで生成されるゲームオブジェクトはCube(1)みたいな連番が付与されることはありません!!!あれ邪魔以外の何物でもなかったので地味に嬉しい。

Groups

複数のオブジェクトを選択しCommand+GでTransformのみが設定されたGameObjectを親に持つローカルグループとしてまとめることができます。この親オブジェクトのPositionは選択した各要素の中間位置に設定されます。

親がTransformのみのを持つゲームオブジェクトであればCommand+Shift+Gでグループを解除することもできます。

Command+Alt+Gを押した場合はシーンのルートにグローバルグループが作成されます。この場合は親のPositionはワールド原点です。

これグループっていうかただのGameObjectのペアレントじゃんと一瞬思いましたが、PEEKではGroupの親にはPositionの情報だけを持たせ、子要素への影響を最小限にすることを想定しているようです。
それを実現するため親オブジェクトをただのグループとして扱う機能、つまり親のTransformが子要素に及ぼす影響をリセットする機能がいくつか用意されています。

親のスケール変えたら子も変に伸びた!とか、
親は45度回転してるけどこれから追加する子は回転して欲しくない!とか、
子を動かしまくってたら親の中心がめっちゃ離れちゃった!
という時に2クリックで子の配置はそのまま親をいい感じに子の中心に戻せる機能があります。

ロードマップとか出てないので正確なことはわかりませんが、おそらくグループ周りの機能拡張はメインの売りとして強化されていくのではないかと思われます。たぶん目指してるのは一度グループ化したら中身は意識せずグループ単位で操作でき、同時に意識しなければいけない要素を最小限にしつつ、ユーザーが望む単位のグループで操作できるようにすることじゃないかな、そうしてくれないと不便だし。

まだ未確認ですが右クリックで親を選択する機能が追加されたっぽいです、仕事早すぎ

Hierarchy Popup

ゲームオブジェクトを選択した状態でSpaceを押すと選択されたオブジェクトと親子関係にあるゲームオブジェクトのみが表示されるローカルヒエラルキーを表示できます

ESCを押して何も選択してない状態でSpace、またはCommand+Fでグローバルヒエラルキー(普通のやつ)が表示されます

マウスの近くに表示されるのでカーソル移動の手間と時間はかなりせつやくできますし、ステージがでかくなればHierarchyで一目で確認できない数のオブジェクトが溜まっていくので一部だけ表示できる機能は有用です。
これ使いこなしている前提で操作感を設計したアセットだと思うんだけどまだ全然慣れない😭

Mass Replace

選択したオブジェクト(複数可)を一発で別のオブジェクトに入れ替える機能。
スケールは継承されず、位置や回転はシーンにある置換元のオブジェクトに合わせて再配置されます。
地味に便利です。
これくらいUnityの標準機能で用意してほしい


実際使えるアセットなのか?

まだ登場したばかりで最低限の機能が実装された段階でしかないとは思いますが、現時点でも素のUnityが持つワークフローを大きく変えるアセットです。

ここに書いた他にもシーン上のドラッグ操作だけでコンポーネントの参照を設定できたり、参照しているオブジェクトをポップアップで表示できたり、アイコンがモデルのプレビュー画像になってたりヒエラルキーからコンポーネントにアクセスできたりと細々とした改良があって普通のUnityに戻るとあーなんでこの機能は標準で搭載してないんだろう?と不満を感じるようなしっくりくる機能が多いです。

買う価値は十分にあると思います。実用的です。
ただ、現時点ではシーンの構築をサポートする機能以外は弱いので、3Dでステージ作る人にはいいと思うんですけど2Dとか、シーンでの作業が重くないノベルゲーとかではむしろ不便になるかも?

以下、残念ポイント

プレイモードへの移行が不便

基本的にUnityでPlayモードに入るとGameビューが表示されると思いますが、PEEKで全画面表示だと何も出ません。Sceneビュー上にオーバーレイでGameビューが出せるはずなのですがPlayモードに入った瞬間何処かに消えてしまい、改めて出そうとしても表示できません。

プレイモード中はシーンいじっても反映されないのでシーンビューを大画面表示する意義は薄いし、いい感じにGameビューに切り替わってほしい…ていうかプレイモードの変更を保存する機能を公式で用意してほしい。

グループ機能の半端さ

親のGameObjectをただのグルーピングの機能として扱いたい、という設計思想はなんとなく伝わってきますし、発想は良いと思うのですがまだまだ機能が足りてない印象です。

机の上に小物を配置した、今後はこれをグループ化してグループ単位で扱いたい!と思っても不可視の親オブジェクトはSceneビュー上のクリックで選択できないのでHierarchyビューでしかグループを選択できません、Hierarchy Popupで通常のUIよりはマシになってるとはいえ手間です。

昨日更新でまだ未確認ですが選択に関する不便さは最新版で追加されたProbeで解決されているようです。

ProGridとの相性が悪い

UIが重なってしまっているしCreator Toolによって生成されたものはグリッドにスナップされてないので逐一動かさないと意図通りの位置に揃いません。Group機能も中心位置が子要素の配置によって決まるので正確なコントロールが難しいです。

シーン構築に主眼を置いたアセットではないとはいえ、現時点ではほぼそんな感じの機能しかないのに角ばった建造物を作ったりするのには使う気にはなりません。ProBuilderとの連携は推してるのでProBuilderで部屋を作って、その中にアセットを配置する、といった感じのワークフローが想定されているのかも。

不可視、大きいオブジェクトに弱い

通常はHierarchyを意識せず、Sceneクリックで色々できることが売りのアセットですが、シーンの大部分に重なるような形でCanvasとかフォグを出しちゃったりするとめっちゃクリックの邪魔になります。オブジェクトの選択などでHierarchyの操作に囚われてしまいこのアセットを使う旨味ががっつり減ります。特にキャンバスは標準がでかいのでマジで邪魔です。

2019.2くらい?で追加されたシーン上の可視性コントロールがあればいいんですがそれ以前のバージョンだと…あんまり使いたくはないかも…

昨日更新でまだ未確認ですが選択に関する不便さは最新版で追加されたProbeで解決されているようです。


まだ気になる点も多いですが、この操作感が気にいる人は結構いると思うので、ぜひ試してみてほしいです。

機能性もさることながら、パブリッシャーがLudiqというのがいいですね。
今必要な機能がなくてもちゃんと成長しそうなので安心して買えます。(こういう発想してると積みアセットが増えるんけど楽しいからしょうがないよね!)

VR

バーチャルフェスティバル2018に落選してからどこかでキャッチアップできる機会がないかとずっと待ち望んでいたなみたさんのパーティクルライブを見に行きました!

これこれ!こういうのが見たくてVRをやってるんだ!って感じ
リアルだと予算がいくらあっても足りないようなスケールでリアルの経験からは想像もできない演出が見れて大満足です。

Inner Artsの歌詞もいいね
伝えよう 新感覚のイメージを
始めよう 未体験のステージを
なんて歌詞はゲームとかVRでなんか作ろうとしてると刺さるなぁ

なみたさんはあんまりライブやらないみたいなのでそれだけが残念

VR

アルテマ音楽祭に行きました!VRで!
最高に楽しいイベントだった!
子供の落書きを具現化したような桁外れのスケール感とやりたいことをとにかく詰め込んだようなごった煮感が最高
リアリティなんて要らんのです

アルテマ音楽祭 アルバム

UnityUnity,メモ

Unityで3Dゲームを作りたいと思ったら避けて通れないのがアニメーション。
センスと経験が問われる分野だと思われるので得意でないなら手を出さず適当なアセットを購入して済ませるべき要素かもしれない
でも私は自分で作るものは全て自作したいと考える狂人なので時間がかかっても自分でできるようになりたい!

そんな思考回路でアニメーションの勉強を緩やかに始めました。
手持ちのソフトでアニメーション作るのに使えそうなのはBlender、Akeytsu、Poser、Mosketchの4つ。
ざっと操作を学びましたが、機能性ではBlender、簡潔さではAkeytsuが優れていて良さそう。
(Poserは使うメリットがよくわからず、Mosketchはバグりまくりだった)

おそらくは3Dソフトの扱いを覚えるのがゲーム開発的には王道。
しかし、最近はVRMがいい感じに成長しそうだしVRMをUnity以外のソフトウェアで扱うのはとてもめんどくさい。
そんなわけでUnity上でアニメーションを扱う方法を学ぶことにします。

今後調べるかもしれないアセット一覧

汎用性の高そうなアニメーション関連アセット

特定箇所のアニメーションに特化したアセット

Tween系アセット

おそらくアニメーション関連の
よく知らないアセット

Unity,ゲーム開発Unity,ツール

結論

  • UnityのマニュアルではPerforce、Plastic SCM推し
  • Perforceは個人向けのサービスには見えない
  • Plastic SCMはゲーム開発向けの機能多めで良い
  • GitHubで十分、安い

バージョン管理とは?

何らかの作業を長期にわたって行うとき、自分が行った作業にラベルをつけて作業内容を段階的に記録していくこと、過去に行った作業にどんな意義があったかを明確にすることです。
バージョン管理を行うことでどの手順でどんな作業を行ったかを調べることができ、必要に応じて目的とする状態に戻すことができます。
あるいはリリース用/テスト用の環境、またはモバイル向け/PC環境向けの製品など、複数のバージョンが必要な製品などをスマートに管理できます。

要するにトラブルや機能変更にめっちゃ対処しやすくなります。
また各人の作業内容が把握しやすくなり、複数人で同じ物を改良するのが簡単になるという効能もあります。

Let’s バージョン管理!

(上記はバージョン管理初心者の意見なので正確ではないです。
詳しく知らない人はあまり参考にはせず使うと便利っぽいという雰囲気だけ理解してください)

まずGitHubを試す

プログラマはみんな知ってる定番のWebサービス。
Gitというバージョン管理ソフトをネット経由でいい感じに扱えるようになる。
複数のハードや遠隔地のユーザー同士で共同作業がやりやすくなる。超有名。

しばらくGitHubを使っていたのですが、私の場合は大きなメリットがなかったので他のバージョン管理サービスについて調べることにしました。
なおこの記事は前提として、ごく少人数(正確には一人)のプロジェクトであり予算は少ない(あってもあんまり金をかけたくない)人を想定してます。

ちなみにGitHubについての私の印象はこんな感じ

  • (重要)GitHub for Unityという公式アセットがあり連携が容易
  • 一人プロジェクトなので便利機能の大部分は使えない、使わない
  • アセット使ってるので基本的に公開できない、するとしたら結構な手間
  • 公開できないからプライベートリポジトリが必要、7ドル/月 (無料化!)
  • Git LFS周りでちょいちょいトラブルの噂を聞くので怖い
  • Git LFSの容量制限は将来的に面倒ごとの要因になりそうで怖い

必要十分な機能はあるけど最適ではないのでは?という印象です。

一番良さそうなやつを探す!

unityのマニュアルにはこう書いてある

Unity は Perforce や PlasticSCM など、よく使用されているバージョン管理ツールをサポートしています。

Unity はアドオン製品として アセットサーバー (チームライセンス) を提供し、 バージョン管理の統合(チームライセンス) を容易にします。なんらかの理由で Unity Asset Server を使用できない場合も、PerforcePlasticSCM といった外部のバージョン管理システムにプロジェクトを格納することができます。なんらかの理由でこれらのシステムが使用できない場合は Subversion や Bazaar も使用することが可能です。

Unity 2017.1 以降、Asset Server のサポートは廃止される予定です。 ~Unity プロジェクトのバージョン管理には Plastic SCM か Perforce の使用を推奨します。~

https://docs.unity3d.com/ja/2018.3/Manual/UnityManual.html

Unity的には明確にPerforce/Plastic SCMを推しているようだ
というわけでPerforceかPlastic SCMを使おう!

Perforceとは?

  • Gitベースのバージョン管理システムっぽい
  • 法人向けっぽい
  • 製品多すぎて何が適してるのか全然わからん
  • 価格は見積もりで明確に書いてない

うん、まだ詳細を把握してないけど価格が見積もりって時点でとりあえず個人で使うものではなさそうなことは理解した。
調べるのはやめよう。

Plastic SCMとは?

Plastic SCM – The Distributed Version Control for Big Projects
とりあえずトップページの下の方にある比較表を見ましょう。
Plastic, Git, Perforce, Subversionの比較が載ってます。
実に自信ありげで他社に軽く喧嘩を売ってる感じが好感を持てますよね?
早速調べました。

  • (重要)ゲーム開発者が利用することも想定されてる、もちろんUnityとの連携も公式アセットで可能
  • 独自仕様のバージョン管理システムっぽい
  • マージ機能が優れているらしい
  • 独自仕様なのでGitLFSみたいな容量制限はなし
  • 大容量ファイルの扱いも簡単、作業中のファイルのロックも可
  • アーティスト向けに使いやすく機能制限されたGluonというツールがある
  • Git、GitHubの機能は大部分を網羅してそう
  • Unityのプラグインを利用する場合は約7ドル/月のプランから
  • クラウドストレージは5GB,15GB,100GB
  • 30日間の無料トライアルあり

調べました。調べましたが…書いてること多すぎてまとめられないのでもし気になった人がいたら直接サイト見て…

ストレージの容量には難があるけど機能的には優秀そう。
+4.95ドルで15GB、+19.95ドルで100GBのクラウドストレージが使えるらしい
刻むだろ…普通もっと…!段階をっ……!
クラウドストレージは15GBあれば十分だと思うし合計12ドル程度なら利便性が本当に良いなら払っても全然後悔しない金額なので試すことにしました。

今Plastic SCMを無料体験中なので詳細な使用感はそのうち書きます…たぶん

Plastic SCMの感想

Plastic SCMが提供しているソフトの操作性は良かったけどUnity用アセットの使い勝手が微妙でした。
とはいえ機能的には満足だったのでPlastic SCMに傾いていたところにGitHubのプライベートリポジトリが無料化!

一番重要なのは非公開でクラウド上にデータを保存できることなのでそれ以外の機能が充実してても約7ドル分の価値の差は感じなかった…
いやチーム開発ならいいと思うんだけどね?自分の場合はアーティストいないし、ファイルのロックもしないし、マージも頻繁にはしないし…自分はPlastic SCMが想定している顧客ではなかったと思われます。
アーティスト、プログラマ混在チームでゲーム開発するならGit/GitHubよりも便利なサービスだと思う!たぶん!