Raspberlyのブログ

Raspberlyのブログ

Unityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。そろそろブログタイトル決めたい

【アセット紹介】Dreamteck Splines でスプライン曲線に沿った移動をさせる【Unity】

今回はアセットの紹介をしていきます。
紹介するのはDreamteck Splines
スプライン曲線を作成するアセットです。

f:id:Raspberly:20210916221442p:plain

 

どんなアセット?

スプラインを使って曲線を作るアセットです。
曲線に沿ってオブジェクトを移動させたり、メッシュを生成するコンポーネントも含まれています。

Dreamteck Splinesは、使い慣れたツールとインターフェイスを活用して、Unityのネイティブ部分のように感じるように設計されています。設計者にとってもプログラマーにとっても使いやすく、独自の動作の迅速なプロトタイピングと実装が可能です。柔軟性、使いやすさ、パフォーマンスに重点を置いており、小規模、中規模、大規模の両方のプロジェクトに適しています。

 

主な機能:
-エディターとランタイムスプラインの作成
-エルミート、ベジェ、Bスプラインおよび線形スプライン
-一定速度でのパス追跡
-メッシュ生成
-ジャンクション
-オブジェクトと粒子の制御
-スプライン投影
-モバイルフレンドリー
-プリミティブとプリセット
-インポートとエクスポート機能
-モーフ状態
-マルチスレッド
-簡単に拡張可能な機能
-例を含む広範なユーザーマニュアル
-オープンソース

f:id:Raspberly:20210917020448g:plain

f:id:Raspberly:20210917020423g:plain

ドキュメントはこちら

 

Humble Bundleのバンドルに含まれているアセットです。
マイアセットへの追加方法はこちら

www.asset-sale.net

 

 

 

開発環境

Unity2020.3.14f1

Dreamteck Splines ver2.09

 

 

 

インポートの確認

アセットインポート完了時はこんな感じ。

f:id:Raspberly:20210915225144p:plain

デモシーンの確認

デモシーンを確認するには付属のunitypackageをインポートする必要があります。

f:id:Raspberly:20210915225344p:plain

AudioVisualization

AudioClipに合わせてウェーブを変形させるシーン

f:id:Raspberly:20210916230245g:plain

 

Following

スプラインに沿ってカメラが移動するシーン

f:id:Raspberly:20210915232039p:plain

f:id:Raspberly:20210916221523g:plain

 

Junctions

スプラインに沿って線路を生成するシーン

f:id:Raspberly:20210916223300g:plain

 

LengthEvents

2つのボールをつなぎ、距離に応じてイベントを行うシーン

f:id:Raspberly:20210916223508g:plain

他にもいくつかデモが用意されています。

 

 

 

 

 

実際に試してみる

実際にスプラインを作成して、カメラやエフェクトを移動させてみます。

ステージの用意

同時期にパブリッシャーセールで配布されていたPOLYGON Cityをステージとして使います。

f:id:Raspberly:20210916235557p:plain

 

 

スプラインの作成

スプラインを作成します。
Hierarchy右クリックから3D Object/Spline Computerを選択。

f:id:Raspberly:20210916230645p:plain

Spline ComputerコンポーネントがアタッチされたGame Objectが作成されます。

 

スプラインポイントの作成

Spline ComputerのEditを開き、+ボタンを押すとポイント作成モードに入り、

f:id:Raspberly:20210917000907p:plain

シーンビューで左クリックするとその場にスプラインポイントを作成します。

f:id:Raspberly:20210917002333g:plain

再度+ボタンを押すとポイント作成モードを終了します。

f:id:Raspberly:20210917001640p:plain

お察しの方もいる通り、-ボタンを押すとポイント削除モードに移行します。

 

スプラインポイントの調整

Spline Computerの以下のボタンを押すと、ポイントの移動・回転・拡大が行えます。

f:id:Raspberly:20210917002617p:plain

f:id:Raspberly:20210917003005g:plain



Cameraの移動

Cameraをスプラインに沿って移動させます。
CameraにSpline Followerコンポーネントをアタッチ。
これはオブジェクトをスプラインに沿って移動させるコンポーネントです。

f:id:Raspberly:20210917003735p:plain

最初に作ったSplineを割り当てゲームを再生するとスプラインに沿って移動します。

f:id:Raspberly:20210917004721g:plain

Spline Followerでは、移動速度の設定、速度ではなく時間に合わせて移動させたり終点についたときのループ処理などが行えます。

 

 

パーティクルを移動させる

次はパーティクルエフェクトをスプラインに沿って移動させます。

新しくParticle Systemを作成しパラメータは以下の通りに、大きさと角度をバラバラにしているのがポイント。

f:id:Raspberly:20210917011610p:plain

さらにCubeを描画するようにします。(とと様の記事を参考)

f:id:Raspberly:20210917011647p:plain

qiita.com

 

さらにParticle Controllerをアタッチ。
Particle Systemをスプラインに沿って移動させるコンポーネントです。
スプラインを割り当て、Volumetricにチェックを入れScaleを大きくします。

f:id:Raspberly:20210917012610p:plain

Volumetricにチェックを入れると、スプラインに対して立体的な追従を行います。

f:id:Raspberly:20210917020604g:plain

 

 

これで完成です。スプラインに沿ってパーティクルが移動しました。

f:id:Raspberly:20210917020423g:plain

 

カメラとパーティクル2つ合わせるとこんな感じ。

f:id:Raspberly:20210917020448g:plain

 

 

 

まとめ

・Dreamteck Splinesはスプライン曲線を作るアセット
・オブジェクトやパーティクルをスプラインに沿って移動させるコンポーネントも含まれている

 

今回は3Dのみでしたが2Dでも使えるアセットです。
まだまだ使っていない機能もいっぱい!

 

以上です。

 

 

 

参考資料

www.youtube.com

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。

【アセット紹介】Space Graphics Toolkit で宇宙空間を作る【Unity】

今回はアセットの紹介をしていきます。
紹介するのはSpace Graphics Toolkit
宇宙空間を作成するアセットです。

f:id:Raspberly:20210906143005p:plain

 

 

お得なセール情報

現在アセットストアでは、Unity Technologies Japan創立10周年を記念したメガバンドルを発売中!終了しました
最大54.99ドルで14の人気アセットが入手できちゃいます!詳しくは↓のバナーからどうぞ

f:id:Raspberly:20210906221633p:plain

いつもより期間が短いためお早めに!今日まで!

今回紹介する「Space Graphics Toolkit」も対象アセットです。

www.youtube.com

 

 

どんなアセット?

リアルなあるいはファンタジーな宇宙空間を作成できるアセットです。
宇宙空間を構成する様々なエフェクトを表現できます。全SRPに対応。
モバイル、コンソール、WebGLVRもサポートされています。

Space Graphics Toolkitを使用して、夢の宇宙シーンを作成します。この膨大なエフェクトのコレクションは、あらゆる方法でカスタマイズおよび組み合わせることができるため、リアルな世界やファンタジーの世界をすばやく作成できます。

f:id:Raspberly:20210907033405p:plain

オンラインドキュメントはこちら

 

 

開発環境

Unity2020.3.14f1

Space Graphics Toolkit ver3.9.2

 

 

 

インポートの確認

アセットインポート完了時はこんな感じです。

f:id:Raspberly:20210907031224p:plain

まずはGUIDEからドキュメントを確認しましょう。
アセットの動作確認をしたい場合は、Features及びPacksにあるサンプルシーンが参考になります。

Feature:各機能のコードとサンプルシーンがあり、動かすうえで参考になる

Packs:機能がグループごとにわかれていて、そのヴィジュアルやサンプルシーンを確認できる

 

デモシーンで機能の確認

各機能を確認します。(たくさんあるので一部のみ)

降着円盤

f:id:Raspberly:20210907031814g:plain

小惑星帯ステロイドベルト

f:id:Raspberly:20210907032032g:plain

オーロラ

f:id:Raspberly:20210907033246p:plain

Continuum 

重力作用による歪み的な

f:id:Raspberly:20210907032131g:plain

Dark Start

f:id:Raspberly:20210907032332p:plain

Elliptical Galaxy

ボリューメトリックな楕円形の銀河

f:id:Raspberly:20210907032459g:plain

Jovian

輪のある木星チックな惑星

f:id:Raspberly:20210907032736g:plain

Nebula

ボリューメトリックな星雲

f:id:Raspberly:20210907032846p:plain

 

 

 

 

実際に試してみる

実際に宇宙空間を作ってみます。
事前準備として、CameraをSolidColorにし黒塗り状態に。

f:id:Raspberly:20210907040811p:plain


SceneビューもSkyboxを非表示にし、背景を真っ黒にしておくと作業がしやすいです。

f:id:Raspberly:20210907040907p:plain

f:id:Raspberly:20210906011314p:plain

 

また、DirectionalLightがアタッチされているオブジェクトに、
SGT Lightコンポーネントをアタッチしておきます。

f:id:Raspberly:20210907040611p:plain

 

 

背景を作る

果てまで広がる星雲や星々など、背景を作っていきます。Skyboxみたいな感じ。
背景を作るには、SGT Backdropコンポーネントを使います。

 

Hierarchyビューの右クリックからBackdropを選ぶと、
SGT Backdropコンポーネントがアタッチされたゲームオブジェクトが作成されます。

f:id:Raspberly:20210905233253p:plain

f:id:Raspberly:20210905233527p:plain

作った直後はこんな感じのものが画面に表示されるはずです。

f:id:Raspberly:20210906013954p:plain

星雲を作る

星雲を作っていきます。
作成したBackdropにあるSGT Backdropコンポーネントを以下のように調整。

f:id:Raspberly:20210906231543p:plain

これでぼやけた雲のようなものができあがります。

f:id:Raspberly:20210907030929g:plain

星を作る

星雲だけだと物足りないので星々も追加します。
SGT Backdropを新しく追加し、パラメータを以下のように調整。

f:id:Raspberly:20210906232517p:plain

Star Colorsはこんな感じ、この辺は好みでいいと思います。

f:id:Raspberly:20210906020317p:plain

これで完成。BrightnessやStartCountなどを変えて自分好みするといいでしょう。

f:id:Raspberly:20210906020338p:plain

ただしこれだと星の大きさがみな均等なので、もう一つBackdropを追加します。
パラメータは以下の通り、星を大きくし生成数を少なくしています。

f:id:Raspberly:20210906232618p:plain

これでやや大きめの星がちらほら混じるようになるのでより見た目がよくなりましたね。

f:id:Raspberly:20210907030903g:plain

 

 

 

 

惑星を作る

地球のような惑星を作ります。

マテリアルの作成

最初に惑星のマテリアルを作ります。
新規にマテリアルを作成し、Space Graphics Toolkit/Planetシェーダーを設定。

f:id:Raspberly:20210906223849p:plain

Albedoに「Planet_Albedo」を、Heightに「Planet_Height」を設定。

Planetの作成

Hierarchyビューの右クリックからPlanetを選ぶと、
SGT Planetコンポーネントがアタッチされたゲームオブジェクトが作成されます。

f:id:Raspberly:20210906225032p:plain

パラメータはこんな感じ。
Radiusは大きさ、Materialには先ほど作ったPlanetマテリアルを使います。
Radius5でScale10のSphereと同じくらいの大きさです。

f:id:Raspberly:20210906232832p:plain

これで惑星が作成されました。

f:id:Raspberly:20210907030700g:plain

 

 

 

 

大気を作る

最後に惑星を取り巻く大気の層を作ります。

Planetを右クリックして、SpaceGraphicsToolkit/Atmosphereを選択。
SGT SharedMaterialとSGT AtmosphereがアタッチされたオブジェクトがPlanetの子オブジェクトとして作成されます。

f:id:Raspberly:20210907004950p:plain

SGT Atmosphereコンポーネントの下にある、ボタン2つ押します。
すると必要なテクスチャを自動的に生成してくれます。

f:id:Raspberly:20210907010945p:plain


Litにチェックボックスを入れ、下にあるボタンも押します。
ここでもテクスチャの設定を自動で行ってくれます。

f:id:Raspberly:20210907025941p:plain


パラメータは以下の通り

f:id:Raspberly:20210907030444p:plain

 

これで惑星に大気の層ができました。

f:id:Raspberly:20210907030602g:plain


ポストプロセスをつけるとさらにいい感じですね。

f:id:Raspberly:20210907033405p:plain

まだまだエフェクトはたくさんありますがひとまずここまで。


背景・惑星・大気を作成しましたが、結構省略した部分もあります。
惑星であれば地形の隆起、水の生成など非常に多くの機能が用意されています。

 

 

 

まとめ

・Space Graphics Toolkitを使うと、宇宙空間を簡単に構築できる

かなり価格の高いアセットですが期間限定のバンドルでお得に入手できます。
気に入ったエフェクトがあればぜひどうぞ。

 

 

以上です。

f:id:Raspberly:20210906221633p:plain

 

 

 

参考資料

www.youtube.com

ikeball.hatenablog.com

www.asset-sale.net

 

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。

【アセット紹介】Enemy Vision - Patrol and Line of Sight でステルスゲームを作る【Unity】

今回はアセットの紹介をしていきます。
紹介するのはEnemy Vision - Patrol and Line of Sight
ステルスゲームにおける敵の挙動を構築するアセットです。

f:id:Raspberly:20210830015458p:plain

f:id:Raspberly:20210830022515p:plain



 

お得なセール情報(終了しました)

現在アセットストアでは、プロトタイピング向けアセットのバンドルを発売中!
今回紹介する「Enemy Vision - Patrol and Line of Sight」もバンドルに含まれています。

f:id:Raspberly:20210823232118p:plain

金額に応じてアセットが異なりますが、オススメは全てのアセットが含まれた$21.99コースです。
通常の50%OFFセールで購入するよりも安く購入できるので、
気になるアセットがある場合は買っちゃいましょう!

f:id:Raspberly:20210823205628p:plain

 

f:id:Raspberly:20210823205647p:plain

f:id:Raspberly:20210823205732p:plain

 

 

 

 

どんなアセット?

ステルスゲーム向けのアセットです。
敵の視界、巡回機能システムを構築できます。

コンテンツ-
敵のビジョンコーン-ビジョンコーン
は障害物に適応します-
敵の行動:パトロール、アラート、チェイス-パトロール
:設定されたパス
に従って移動します-アラート:好奇心をそそられ、疑わしい場所に
歩きます
-チェイス:プレイヤーに向かって走ります-地面の高さ、敵は高台にいるときにのみあなたを見ることができます。
-オプションの2レベルのビジョンコーン(
近視と遠視-近視範囲は、警告を受ける代わりにプレーヤーを即座に検出します。
-ノイズゾーン(プレイヤーがそれを踏むと、近くの敵に警告します)。
-ノイズを放出するために任意のオブジェクトおよび関数呼び出しに追加できるノイズソース。
-使用と構成が簡単

-2D および3Dのサポート-優れたパフォーマンスと最適化の設定

 

2D、3D両方で使えるアセットですが今回は3Dをメインに扱います。

 

すぐに動作確認ができるデモが用意されています。

2Dデモ

3Dデモ

 

 

 

 

開発環境

Unity2020.3.14f1

Enemy Vision - Patrol and Line of Sight ver2.02

 

 

 

インポートの確認

アセットインポート完了時はこんな感じです。

f:id:Raspberly:20210830015250p:plain

 

URPプロジェクトの場合

このアセットはSRP関係なく動きますがデモシーンはBuilt-inを想定したものになっています。
そのためURPで動かす場合はマテリアルのアップデートを行っておきましょう。

f:id:Raspberly:20210829221039p:plain

 

デモシーンの確認

Assets/IndieMarc/EnemyVision/Scenesにデモシーンが用意されています。
ステージ内を警官がパトロールしていて、視界に入ると追いかけてきます。

f:id:Raspberly:20210830022533g:plain

ノイズを発生させる赤いポイントがあり、そこを踏むと近くの敵が調べにやってくる機能もあります。

 

 

 

 

主要コンポーネント

このアセットを使いこなすうえで重要なコンポーネントを紹介します。

Enemyコンポーネント

Enemyの移動を管理するコンポーネントです。
移動速度、NavMeshAgentの有無、ステージの巡回機能もあります。

f:id:Raspberly:20210830013721p:plain

 

EnemyVisionコンポーネント

視界を管理するコンポーネントです。
視界の範囲、発見状態に移行するまでの時間、見失ってから追跡終了までの時間などを設定できます。

f:id:Raspberly:20210830013928p:plain

UnityEventが用意されているので、発見時や警戒時に何かさせたい時はコールバック関数を登録しましょう。
これに関してはEnemy Demoコンポーネントが参考になります。

 

VisionConeコンポーネント

視界を可視化して表示するコンポーネントです。
Assets/IndieMarc/EnemyVision/Prefabs/VisionConesに最初から用意されているので、直接触ることはないと思います。

f:id:Raspberly:20210830014858p:plain

 

VisionTargetコンポーネント

Playerにアタッチするコンポーネントです。
これがないとEnemyに検知されません。

f:id:Raspberly:20210830013635p:plain



 

 

実際に試してみる

3Dのシーンで実際に試してみます。

ステージとキャラクターの配置

壁用の適当な仕切りとしてCubeを、敵用のキャラクターとしてSDユニティちゃんを配置します。

f:id:Raspberly:20210830001156p:plain

NavMeshを生成するため壁、地面オブジェクトのNavigation Staticを有効にします

f:id:Raspberly:20210830001909p:plain

その後、NavMeshをBake。

f:id:Raspberly:20210830003200p:plain

これでステージ作りは完成です。

f:id:Raspberly:20210830003315p:plain

 

Enemyの設定

空のGameObjectを作成し名前を「Enemy」にします、SDユニティちゃんを子オブジェクトにします。
視点の位置用に空のGameObjectを作成し名前を「Eye」にします。

f:id:Raspberly:20210830003607p:plain

EyeはSDユニティちゃんの目元当たりに置いておきます。

f:id:Raspberly:20210830005607p:plain

 

Enemyオブジェクトには、EnemyコンポーネントEnemyVisionコンポーネントNavMeshAgentコンポーネントEnemyDemoコンポーネントをアタッチします。

f:id:Raspberly:20210830010601p:plain

 

Enemyコンポーネント

デフォルトでは移動速度が速いのでSpeedを調節し、Use_pathfindを有効にします。
これが有効だとNavMeshAgentを使って移動します。

f:id:Raspberly:20210830011257p:plain

 

Enemy Visionコンポーネント

視界の範囲はデフォルトのまま、参照だけ設定します。
Eyeには先ほど作ったEyeオブジェクトをアサイン、
Vision_prefabにはAssets/IndieMarc/EnemyVision/Prefabs/VisionCones/VisionConeアサインします。

f:id:Raspberly:20210830011533p:plain

 

Enemy Demoコンポーネント

Exclama_prefabAssets/IndieMarc/EnemyVision/Prefabs/Others/Exclamationアサイ
これでプレイヤー発見時に「!」マークが出ます

f:id:Raspberly:20210830012317p:plain

 

アニメーションの設定

AnimatorとAnimationはアセットで用意されているものをそのまま使います。
SDユニティちゃんのAnimatorAssets/IndieMarc/EnemyVision/Animations/3D/Characterをアタッチします。

f:id:Raspberly:20210830012508p:plain

 

ただし、このアニメーションはHumanoidではなくGenericなのでAnimationTypeを変更します。
Assets/IndieMarc/EnemyVision/Modelsにある以下のオブジェクトのAnimationTypeをHumanoidにしてApply。

f:id:Raspberly:20210830010442p:plain

 

Playerの設定

PlayerにはVisionTargetコンポーネントをアタッチします。

f:id:Raspberly:20210830013635p:plain

 

これで完成です。
Playerが視界に入るとEnemyが追いかけてきます。

f:id:Raspberly:20210830022906g:plain

 

 

 

巡回機能を使う

せっかくなのでEnemyを巡回させてみます。
ステージ上の巡回させたい位置に空のGameObjectを作成します。

f:id:Raspberly:20210830020634p:plain

f:id:Raspberly:20210830020652p:plain

作成したGameObjectをEnemyコンポーネントPatrol_pathアサイン。

f:id:Raspberly:20210830020737p:plain

 

これで完成です。

f:id:Raspberly:20210830023835g:plain

 

明るいと見えにくいですが、シーンビュー上でも赤い線で巡回箇所が表示されます。

f:id:Raspberly:20210830021057p:plain

 

トロールタイプ

巡回する時の動き方が3種類用意されています。

f:id:Raspberly:20210830021430p:plain

Rewind:最後のPatrol_pathまで移動したら、順番に引き返す

Loop:最後のPatrol_pathまで移動したら、最初の位置に戻り同じルートで巡回を開始する

Facing Only:移動はせず、Patrol_pathに登録した位置を向くだけ

 

 

 

 

まとめ

・Enemy Vision - Patrol and Line of Sightはステルスゲームにおける敵の挙動を構築するアセット
・2D、3D両方で活用できる
・視界と巡回機能が用意されている

 

いろいろさわってみてわかりましたがかなり丁寧に作られています。
ドキュメントは簡素で、コンポーネントやデモ用スクリプトがとてもわかりやすかったです。

 

 

 

 

他の方の解説記事

temoshiblog.com

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。

【アセット紹介】Enviro Lite - Sky and Weather で天気を操作する【Unity】

今回はアセットの紹介をしていきます。
紹介するのはEnviro Lite - Sky and Weather
空と天気を構築するアセットです。

f:id:Raspberly:20210824010554p:plain

f:id:Raspberly:20210824021825p:plain

 

 

お得なセール情報(終了しました)

現在アセットストアでは、プロトタイピング向けアセットのバンドルを発売中!
今回紹介する「Enviro Lite - Sky and Weather」もバンドルに含まれています。

f:id:Raspberly:20210823232118p:plain

金額に応じてアセットが異なりますが、オススメは全てのアセットが含まれた$21.99コースです。
通常の50%OFFセールで購入するよりも遥かに安く購入できるので、
気になるアセットがある場合は買っちゃいましょう!

f:id:Raspberly:20210823205628p:plain

 

f:id:Raspberly:20210823205647p:plain

f:id:Raspberly:20210823205732p:plain

 

どんなアセット?

動的で軽量な空と天気を構築できるアセットです。

非常に簡単なセットアップ:

新しいマネージャーコンポーネントを使用すると、シーンにEnviroLiteを簡単にセットアップできます。

 

プロファイルシステム

EnviroのLiteプロファイルシステムを使用すると、空をできるだけ簡単に調整できます。実行時に設定を微調整し、プロファイルに保存します。設計および実行時にプロファイルをロードします。シーンごとに異なるプロファイルを作成するか、構成を他のユーザーと共有します。

 

昼夜サイクル:

Enviro Liteは、現実的な昼夜サイクルをサポートします。緯度と経度による完全な位置サポートを備えた正しい太陽と月の位置。システム時刻を使用するか、リアルタイムの分に基づいてenviroに時刻を更新させるかを選択できます。

 

スカイボックス:

Enviro Liteには、見栄えのするダイナミックな空を実現するためのライトスカイボックスシェーダーが含まれています。地平線用と上空用の2つのグラデーションしかないため、簡単に調整できます。いくつかのミー散乱と一緒に、すべてのプラットフォームでサポートされ、非常に軽量なリアルな空を手に入れることができます。

 

点灯:

Enviro Liteは、太陽の高度に基づいてシーンをリアルに照らします。エディターでカーブとグラデーションを変更することで、光の強度と色を完全に制御できます。もちろん、さまざまな環境光モードから選択することもできます。

 

季節:

Enviro Liteは季節を変更し、Unity地形のゲームオブジェクト、マテリアル、テクスチャを交換するためのコンポーネントを取得します。あなたは現実的な設定に制限されていません!各シーズンの開始日と終了日を設定できます。Enviroは、季節、時刻、現在の天気に基づいた温度シミュレーションもサポートしています。

 

雲:

ダイナミックな空のための美しいパーティクルベースのスカイボックスクラウド。これらの雲は速く、見栄えがします。Enviro Liteは、スカイボックスで直接レンダリングされた巻雲もサポートしています。3層の雲を使用すると、プロジェクトに驚くほどダイナミックな空を見ることができます。

 

霧:

見事な霧が必要ですか?Enviro Liteには、距離、高さ、スカイフォグをサポートする高度な光散乱フォグイメージエフェクトが含まれています。透明な素材に霧が必要ですか?問題ありません。数行のコードで、独自の透明シェーダーを変更して正しく曇らせることができます。そして、あなたが始めるために、いくつかのパーティクルシェーダーと透明シェーダーがすでに含まれています!ただし、パフォーマンス上の理由から、特にモバイルでは、Unityフォワードフォグを使用することもできます。霧の色は空の地平線に一致し、リアルでダイナミックな外観になります。

 

天気:

Enviro Liteには、非常に強力な気象システムが含まれています。独自の天気タイプを作成して、光、空、霧、雲を運転することができます。Enviroは、あらゆる種類の統一手裏剣パーティクルエフェクトをサポートしており、考えられるあらゆる天候効果を自由に作成できます。これには、晴天、曇り、雨、嵐、雪、霧の天気など、11種類の既成の天気が含まれます。雷雨を有効にし、スムーズな遷移で天気ごとに異なる周囲音と天気音を選択できます。

 

ネットワーキング:

Enviro Liteは、すぐに使用できるUNet、Mirror、およびPhotonをサポートします。それはあなたのすべてのプレーヤーと時間と天気を同期させます。Enviro Liteには、ヘッドレスサーバーが時間と天気のみを計算し、それ以上は計算しない最小モードもあります。

 

バーチャルリアリティ

Enviro Liteは、マルチパスおよびシングルパス/インスタンス化された立体視レンダリングをサポートします。OculusRiftでテスト済み。

多数のサードパーティアセットとの連携機能があるのも大きな特徴ですね。 

 

 

Enviroには通常版Lite版の2バージョンが存在します。今回紹介するのはLite版です。
通常版はPC・コンソール向け、Lite版はモバイル向けになっています。

通常版にはLite版が含まれているので、持っている方はLite版を購入する必要はありません

 

 

 

 

 

開発環境

Unity2020.3.14f1

Universal RP ver 10.5.1

Enviro Lite - Sky and Weather ver2.3.3

 

今回はURPプロジェクトで使用しますが、Built-inでも同じ手順で動作確認済みです。

 

 

インポートの確認

アセットインポート完了時はこんな感じです。

f:id:Raspberly:20210813010614p:plain

 

サンプルシーンの確認

Assets/Enviro - Sky and Weather/Samples/Sceneにサンプルシーンがあります。
一人称視点で動き回れるTerrainのあるシーンです。

f:id:Raspberly:20210822234558p:plain

右側のUIから、時間・天気・ビジュアルの品質を設定できます

f:id:Raspberly:20210822235509p:plain


デフォルトで用意されている天気のプリセットは10種類。
雨音や風の音など環境音もあります。

f:id:Raspberly:20210823003832g:plain

 

f:id:Raspberly:20210823003941g:plain

 

 

 

実際に試してみる

一から始めて実際に雨を降らせてみます。

初期設定

シーンに「Enviro Sky Manager」を配置します。
UnityメニューバーのAssets/Create/Enviro/Enviro Sky Managerから、
EnviroSkyMgrコンポーネントがアタッチされたゲームオブジェクトが生成されます。

f:id:Raspberly:20210813011439p:plain

f:id:Raspberly:20210813011633p:plain

 

これは、Enviroインスタンス(以下インスタンス)の管理、レンダリングパイプラインの切り替え、サードパーティのサポートを行うマネージャークラスです。

f:id:Raspberly:20210823012500p:plain

 

URPの設定

※URPプロジェクトのみ

Enviro Sky MgrのActivate URP Supportボタンを押します。

f:id:Raspberly:20210823010251p:plain

Scriptのコンパイル後、Enviro Sky MgrのCurrent Render PipelineがURPになっていれば完了です。

f:id:Raspberly:20210823010438p:plain

ドキュメントではURP Assetの設定など書いてありますが必要なさそう(そもそもURP Assetsがない)

 

 

雨を降らせる

インスタンスの作成

Enviro Sky MgrのCreate Lite Instanceからインスタンスを作成します。
インスタンスはビジュアルの構成、時間や天気の制御、各機能のオンオフを設定できます

f:id:Raspberly:20210823012702p:plain

インスタンスはEnviro Sky Mgrの子オブジェクトに作成されます。
f:id:Raspberly:20210823233753p:plain
作成後は非アクティブ状態になっているので、Enviro Sky MgrからActiveボタンを押します。

f:id:Raspberly:20210823234750p:plain

 

この時、PlayerかCameraの設定がされていないと警告がでます、
Auto Assignを押すと自動で設定してくれるます。

f:id:Raspberly:20210823161003p:plain

これで空が表示され太陽も動いているのが確認できます。

f:id:Raspberly:20210823235207p:plain

 

天気の設定

インスタンスのShowから、インスタンスオブジェクトのInspectorを開きます。

f:id:Raspberly:20210823235832p:plain

Enviro Sky LiteのWeather Controls/Weather/Start Weather Presetで最初の天気を設定できます。

f:id:Raspberly:20210823235938p:plain

天気はプリセットとして設定でき最初からいくつか用意されています。(自作も可能)
今回は雨を降らせたいのでHeavy Rainを設定します。

f:id:Raspberly:20210824000024p:plain

これで雨が降るようになりました。

f:id:Raspberly:20210824002912g:plain

 

 

天気プリセットを自作してみる

プリセットの作成

最初から用意されている天気プリセットを使いましたが、これを自作してみます。
今回は「天気雨」を作ってみます。

Projectビューで右クリックからCreate/Enviro/WeatherPresetを選択、新しいプリセットが作成されます。

f:id:Raspberly:20210824000735p:plain

 

名前を「Sun Shower」に変更。
名前はインスタンス側から識別するのに使われます。

f:id:Raspberly:20210824001532p:plain

 

雨のエフェクト

雨が降るようにします。雨のエフェクトはEnviroに含まれているものをそのまま使います。
個別に雨用エフェクトを持っている場合はそれを設定してもいいですね。


General Config/Paricle EffectsAddを押し、「Medium Rain HQ」をアサイン。
上から降るようにしたいので、PositionとRotaionをそれぞれ設定

f:id:Raspberly:20210823204152p:plain

 

雲の設定

天気雨なので雲は出さないようにしますが、デフォルトで快晴状態なのでそのままでOK。
設定自体はプリセットのClouds Configsから行えます。

f:id:Raspberly:20210824003928p:plain

 

雨音の設定

プリセットのAudio Configsから音の設定ができます。
Weather Soundeffectに「sfx_enviro_heavyrain」を設定。

f:id:Raspberly:20210824005536p:plain



プリセットの設定

作成したプリセットをインスタンスに設定します。
インスタンスオブジェクトにあるWeather ZoneコンポーネントWeather Configs/Weather PresetsにSun Showerを追加します。

f:id:Raspberly:20210824004249p:plain

 

最後にEnviro Sky LiteのWeather Controls/Weather/Start Weather PresetにSun Showerを設定します。

f:id:Raspberly:20210824005157p:plain



これで完成。
実行してみると雲がない快晴状態で雨が降っているのが確認できます。
(晴れているとわかりにくいので夕方にしています)

f:id:Raspberly:20210824003020g:plain

 

パラメータに関しては既存の天気プリセットを参考にするとよさそうです。
プリセットはAssets/Enviro - Sky and Weather/Core/Profiles/Weather Presetsにあります。

f:id:Raspberly:20210824005709p:plain

 

 

時間を調整する

インスタンスEnviro Sky Lite/Time and Location Controlsから時間を設定できます。

f:id:Raspberly:20210824005804p:plain

Progress TimeをNoneにすると時間の流れが止まり、System Timeにすると現実の時間が反映されます。

 

 

 

 

 

まとめ

・Enviro Lite - Sky and Weatherは空と天気を構築できるアセット
インスタンスのパラメータとプリセットの設定でノーコーディングで環境を構築できる

 

 

以上です。
 

 

 

参考資料

forum.unity.com

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

同じ天候操作系アセット「Weather Maker」も解説しています(やや古い) 

raspberly.hateblo.jp

raspberly.hateblo.jp

 

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。

【アセット紹介】Oriental Sword Animation【Unity】

今回はアセットの紹介をしていきます。
紹介するのはOriental Sword Animation
刀を使った戦闘用アニメーションアセットです。

f:id:Raspberly:20210816022530p:plain

クーポンコード「ANIMATE2021」を入力すると今だけ無料で入手できます。
※アニメーションアセットなので一口サイズの紹介記事です。

f:id:Raspberly:20210816042603p:plain

 

 

 

 

お得なセール情報(終了しました)

現在アセットストアではパブリッシャーセールが開催中!

6目となる今回はアニメーションアセットで人気のパブリッシャー
Kevin Iglesias」「Explosive」「we make the game」提供の全アセットが50%オフになります。

f:id:Raspberly:20210816024414p:plain

 

さらにクーポンコード「ANIMATE2021」を入力すると、
以下のアセット3つが無料でもらえます!


決済画面でクーポンコード「ANIMATE2021」を入力すると無料で入手できます。

f:id:Raspberly:20210816023913p:plain

パブリッシャーセールは日本時間で8月16日15時59分まで

 

 

どんなアセット?

刀を使った戦闘用アニメーションアセットです。 

f:id:Raspberly:20210816034704g:plain

24のアニメーション:
-8つのコンボ攻撃。
-8つの通常攻撃
-2つの防御
-待機
-移動
-被攻撃
-Strafe Back / Left / Right

攻撃、防御、移動モーションが含まれています。

 

注意

ヒューマノイドリグが正常に動作していません

アニメーション自体は動作しますが、動作テスト用のプレハブの挙動に難があります。
これはいくつか修正する必要があります。

 

以下ストアレビューから引用

1) お好みのLTSバージョンで、組み込みのRPテストプロジェクトを開始する。
2) 無料のUnityちゃんを「購入」し、ダウンロードして、インポートする。警告はすべて無視/クリアしてください。
3) generic folder, unitychan folder, controller with abbreviated for "generic" like gnr のチェックを外した状態で、ダウンロードしてインポートする。
4) unity chanプレハブをシーンにドラッグします。
5a) 公式unity chanダウンロードからのものを使用する場合。フェイスコントロール/アニメーション表示用のスクリプトを削除します。残しておきたい場合は、Blinkは問題なく動作します。
5b) sword packのものを使用する場合。 階層にあるikの参照オブジェクトを削除または無効化してください。 ヒューマノイドではないリグ(子供用のbip...のような名前がついている)を削除または無効にします。
6)剣を削除または無効にしてください、完全に壊れています。適切な剣のサイズに合わせた立方体に置き換えます。 子供の手の下のリグを変形させます。
7) ヒューマノイドアバターを設定します。
8) 汎用性のないコントローラーをアニメーターにドラッグしてテストします。

アニメーションをクリーニングして使用する。
1) エディター内のアニメーションアセット、またはBlenderを使って、アニメーションだけをコピーします。私はたまたまVery Animationを持っていたのでそれを使いました。(推奨ではなく、専門家でもありませんが、今回の目的には適していました)。)
2) ルートモーションの使用に変更します。
3) オリジン(スケルトンではない)を使うように変更します。アバターが T Pose を強制していることを確認してください。オフセットが0であることを確認します。
4) 回転を正規化し、クォータニオンに変換する。
5) 必要に応じて、異なるクリップを別々のファイルにカットします。

www.DeepL.com/Translator(無料版)で翻訳しました。

 

 

 

 

実行環境

Unity2020.3.14f1

Oriental Sword Animation ver1.5

 

 

 

インポートの確認

アセットインポート完了時はこんな感じ。

f:id:Raspberly:20210816031716p:plain

 

 

動作確認

デフォルトの刀は真っ白なので、こちらのアセットを使用しました。

 

前述したとおり、アセットに含まれているプレハブをシーンに置いてもアニメーションが正しく再生されません
実際にHumanoidのUnityChanをシーンに配置して実行すると、アニメーションと刀が同期していないのがわかります。

f:id:Raspberly:20210816041324g:plain

 

応急処置として、刀のAnimatorを無効化し手のボーンに直接紐づけるようにしました。

f:id:Raspberly:20210816041105p:plain

f:id:Raspberly:20210816041843p:plain

きちんと刀も動かしたい場合は、上で引用した方法をお試しください。

 

一応アニメーション自体に問題はありません。
攻撃も移動も再生できます。SDキャラでも行けますね。

f:id:Raspberly:20210816034704g:plain

f:id:Raspberly:20210816041914g:plain

 

 

 

 

まとめ

・Oriental Sword Animation は刀を使ったアニメーションアセット
・アニメーションは再生できるが、付属のプレハブは正常に動作しないことに注意
・今だけクーポンコードを入力することで無料で入手できる

 

 

以上です。

残り時間わずかなので、無料アセットを3つとも今すぐ購入処理をしておきましょう!

 

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

※この記事はユニティちゃんライセンス条項の元に提供されています

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。

【アセット紹介】Grabbitでオブジェクトを配置する【Unity】

今回はアセットの紹介をしていきます。
紹介するのはGrabbit - Editor Physics Transforms
物理ベースでオブジェクトを配置するデザインツールアセットです。

f:id:Raspberly:20210801000349p:plain

 

 

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

f:id:Raspberly:20210729193647p:plain

2日目はNakaji Kohkiさんの
【Unity】NatShareでツイート後に報酬を付与する #アセットアドカレ2021」です。

 

 

どんなアセット?

物理的なシミュレーションを行いながらオブジェクトを配置するアセットです。
公式のビデオがとてもわかりやすい。

www.youtube.com

 

機能の特長

✔️グラバーで物理学衝突トランスフォーム
✔️グループ&整列は、物理学を持つオブジェクト
✔️動的な重力の選択
✔️ローテーションAlignementシステム
✔️スマートテレポート&衝突検出
✔️全元に戻すサポート
✔️ 優れたパフォーマンスと大規模なシーン向けに最適化
✔️柔軟なインターフェイス
✔️アクティブなサポートとコマンドロードマップ
✔️1つのかわいいウサギ!

かわいいウサギ!

 

 

机の上に複数のオブジェクトを配置したい場合、通常であればSceneビューのギズモを動かし、
それぞれの位置や角度を調整し、他のオブジェクトと重ならないように配置しなければなりませんが、
これはなかなか面倒な作業です。

f:id:Raspberly:20210731230914p:plain

Grabbitを使うとメッシュとの衝突を考慮して素早くオブジェクトを配置したり、
重力落下をシミュレートした自然な配置が実現できます。

f:id:Raspberly:20210731232228g:plain

Grabbitのもう一つの特徴は、衝突判定はGrabbit側が自動で調整してくれる所です。
ColliderやRigidbodyが設定されていないオブジェクト同士を衝突させて配置してくれます

(作業時にメッシュを計算して自動的にColliderを設定し、作業終了後は削除される)

 

VRChatでも使える?

このアセットはUnity 2018では動作しません
Unity ProjectをUnity 2019(厳密にはUnity2019.4.16以降)にアップデートしてあれば使えます。

vrc.wiki

インポートする前にUnityのバージョンをご確認ください。
間違ってインポートした場合は、Assets/Plugins/Grabbitフォルダを削除すればOK。

f:id:Raspberly:20210802161025p:plain

 

 

開発環境

Unity2020.3.14f1

Grabbit - Editor Physics Transforms ver2021.0.5

※GrabbitはUnity2019.4.16 以降が対象です

 

 

インポートの確認

アセットインポート完了時はこんな感じです。
Pluginsの中に入っています。

f:id:Raspberly:20210731233818p:plain

 

セットアップ

インポート直後はこのようなセットアップウィザードが表示されます。
ここではGrabbitを使うための初期設定を行います。設定は後から変えることができます。

f:id:Raspberly:20210730005359p:plain

 

コライダータイプ

使用するコライダータイプの設定
Grabbitでは、オブジェクトを配置する時に凹型コライダー(より精密な衝突が取れるコライダー)を生成します。
ただし、このコライダーを生成するには事前にメッシュのスキャンが必要になります。

f:id:Raspberly:20210730030337p:plain

正確に衝突を再現したい場合は凹面コライダーを使用しましょう。
そこまで正確さを求めないのであればデフォルトコライダーでも構いません。

 

シーンスキャン

シーンをスキャンする時に、シーン全体をスキャンするかどうかの設定
Grabbitは起動時にシーンをスキャンします。大きいシーン(20000以上のオブジェクトがあるもの)の場合は約0.8秒(CPUによる)かかります。
これが長いと感じる場合、スキャンする範囲を限定してより早くスキャンを終わらせることができます。

f:id:Raspberly:20210730030425p:plain

 

衝突設定

高精度な衝突をシミュレートするかどうかの設定

Grabbitでは高精度な衝突をシミュレートしスムーズな衝突を行うことができます。
ただし一度にたくさん移動させると動作が遅くなるのでフレームレートがすでに低い場合はオフにしましょう。

f:id:Raspberly:20210730030546p:plain

 

これで設定は終わりです。
簡単にまとめるとよほど処理負荷が高くない限り全部左を選んでおけばOK

 

それ以外の細かい設定はオプション画面から設定できます。
・Grabbitと連動するレイヤーやタグのチェック
・Grabbitが大きすぎるオブジェクト(地形など)を選択しないようにする
など

 

設定しなおしたい時

Tools/Grabbit/OpenStartupMenuからセットアップウィザードを表示できます

f:id:Raspberly:20210731213552p:plain

 

 

 

実際に試してみる

実際にオブジェクトを配置してみます。
今回はこちらのアセットを使用して、机の上にノートを配置してみます。

f:id:Raspberly:20210731224254p:plain

 

ツールウインドウの表示

ツールバーにGrabbitのウサギマークのボタンが追加されているのでこれを押します。

f:id:Raspberly:20210731224843p:plain

これでツールウインドウが表示されます。
ここからGrabbitの機能を利用できます。

f:id:Raspberly:20210731225014p:plain

 

 

Placement Mode

配置を行うモードです。

f:id:Raspberly:20210731231157p:plain

 

まず机の上にノートや辞書のオブジェクトを適当に配置しておきます。

f:id:Raspberly:20210731230914p:plain

Grabbitのツールウインドウが表示されている状態で、オブジェクトを選択するとSceneビューにウサギマークがでます。
このマークが出ていればGrabbitは正常に動作しています。

f:id:Raspberly:20210731231256p:plain

この状態でオブジェクトを移動するだけで簡単に配置できました。
机や他オブジェクトとの衝突も考慮されていますね。

f:id:Raspberly:20210731232228g:plain

Rotationギズモの無効化

Placement ModeではPositionとRotation両方のギズモが表示されます、
操作しにくいときはRotationのみ無効化できます。

f:id:Raspberly:20210731233033p:plain

 

 

Rotation Mode

衝突を考慮しながらオブジェクトを回転させるモードです。
Placement Modeでも回転させることはできましたが、こっちは位置を無視します。

f:id:Raspberly:20210731234547p:plain

f:id:Raspberly:20210731235828g:plain

 

 

Align Mode

オブジェクトを整列させるモードです。 

f:id:Raspberly:20210801005640p:plain

ギズモのスケールハンドルを操作することで、選択したオブジェクトの中心を軸に整列させることができます。

f:id:Raspberly:20210801010518g:plain

 

 

Fall Mode

オブジェクトを重力で落下させるモードです。

f:id:Raspberly:20210801000539p:plain

初期状態ではPausedになっているので、Resume Grabbitボタンを押して落下させます。
物理的に自然な感じで配置したい時に便利そうですね。

f:id:Raspberly:20210801002131g:plain

 

 

Point Mode

マウスの位置に合わせてオブジェクトを追従させるモード
ドキュメントには載っていないので比較的新しい機能らしい。

f:id:Raspberly:20210801012035p:plain

Fall Modeと同じくデフォルトでPausedになっているのでResume Grabbitで停止を解除します。
オブジェクトを選択すると、マウスカーソルに合わせて地形や他オブジェクトに沿った移動が可能です。

f:id:Raspberly:20210801020147g:plain

 

 

 

 

まとめ

・Grabbit - Editor Physics Transformsを使うと、オブジェクトを物理的シミュレートして配置できる
・Sceneビュー上で移動、回転、重力落下など複数の方法で配置できる
・オブジェクト側にColliderやRigidbodyをつける必要はない

 

以上です。

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。

【勉強会レポ】: Gotanda.unity #19

勉強会のレポート(メモ)です。
参加したのはこちら「Gotanda.unity #19」

meetup.unity3d.jp

ハッシュタグ : #gotandaunity

 

 

アーカイブはこちら

www.youtube.com

この記事は私の主観でのまとめです。
重要な情報を削っていたり、解釈違いの場合があるのでアーカイブの動画と合わせてどうぞ。

 

Gotanda.unityとは

都内近郊を中心に活動を行うUnityユーザのコミュニティです
Unityに興味がある人であれば、どなたでも気軽にご参加いただけます!
(五反田発の勉強会であることから「Gotanda.unity」というネーミングになっております)

 

 

 

LT#1 (スポンサー枠) tetsu: MirrativでのUnity as a Library活用事例

MirrativでのUnity as a Library活用事例についてお話します

Unity as a Library(UaaL)とは

Unityをネイティブアプリのライブラリとして利用する技術です。
Mirrativのエモモ(3Dアバター)で使用しています。
・ギフト(アイテムやスタンプ)機能の処理はアプリ側で、演出をUnityで行っています。

メリット

・Unityの3D機能が使える
・デザイナーがそのまま作れる
・Unityだけで完結し、確認する時アプリビルドの必要がない

演出の難しさ

・Unityの初期化中やロード中にもアプリ側の処理が行われる→キャンセル処理を適切にいれる必要がある
・演出のタイミングや順番を制御する仕組みが必要
・演出の豪華さと負荷のバランスが大事(許容判断と負荷の改善が必要)

UaaLは×演出はこんな人におすすめ

・Unity+ネイティブ両方の機能を使ってみたい人
・新しい演出で驚きを提供したい人
・新しい技術の先端を追いかけたい人

 

 

 

LT#2 (初登壇枠) Denik: 新MLAPI(v0.1.0)でマルチゲームを作ってみた

MLAPI Quick Start

MirrorのQuick Startを新MLAPIに対応したサンプルを作りました。

xrdnk.hateblo.jp

MLAPIとは

Unityが買収したGameObject向けマルチプレイヤーソリューションです。
TISの「XR Campus ツアーサービス トライアル版」で採用中です。

www.tis.jp

新旧の違い

詳しくはこちら

xrdnk.hateblo.jp

機能紹介

・NetworkObject、NetworkTransformなど同期コンポーネントが用意されています
・1シーンに一つ必要な管理クラスNetworkManagerがあります
・同期させるScriptはNetworkBehaviourを継承する必要があります
・変数の同期を行いたい場合はNetworkVariable型を使用します
・RPCも使用できます

CunstomMessagingManager

NetworkObjectやRPCは、NetworkObjectがアタッチされていてNetworkBehaviourを継承したクラスでないと利用できない。
それらがなくても同期処理を行いたい場合はCustomMessagingManagerを利用する

詳しくはスライドをどうぞ

 

 

 

LT#3 むろほし: Unity 2021.1でのUnityパッケージの名称変更について

Unityのパッケージの名称、区分の変更についてお話します

2020.3以前のパッケージ区分

検証済み(Verified):実際のプロジェクトに導入できるもの

プレビュー(Preview):検証中のもの、仕様変更やサポートが終わる可能性があるなど実験的なものも含める

2021.1以降のパッケージ区分

リリース済み(Released):検証済みに相当。PackageManagerから導入できる

プレリリース(Pre-release):その年のLTSリリースまでにReleasedになることが期待されるパッケージ
ProjectSettingから設定しないとPackageManagerに表示されない

実験的(Experimental):実験的、手探り状態のパッケージ。リリースされないかもしれないパッケージ。
PackageManagerには表示されない。2020.3LTSの時点でPreviewだったパッケージは原則Experimental。
そのうちのいくつかは公式ドキュメントの方法で導入できる

リリース候補(Release Candiate)

公式リリースの有力な候補であるパッケージ

Unity - Manual: Release Candidates

非推奨(Deprecated):サポートしていないパッケージ

 

詳しくはこちら

blog.unity.com

まとめ

・パッケージの名称が変わりました
・プレビューはプレリリースとエクスペリメンタルに分かれてわかりやすくなりました

 

 

 

LT#4 こりん: UnityのVR開発環境の現状整理

UnityのVR開発環境の状況が込み入っているので整理して、今どうすればいいのか答えを出しておきます

先に結論

UnityのXR Interaction Toolkit + OpenVR PluginマルチプラットフォームVR開発の未来です

しかし、Oculus IntegrationやSteamVR Pluginを使わなければならないケースがまだある

全体的な動向

UnityはXR Plugin Managementによるプラグイン方式に変更されたが、
実際には特定のSDKプラグインを組み合わせないといけないものが多い

・Oculus Integration + Oculus XR Plugin
・SteamVR Plugin + OpenVR Plugin
・MRTK + OpenXR Plugin + Miced Reality OpenXR Plugin
・XR Interactiobn Toolkit + Oculus Plugin、OpenXR Plugin等
・WebXR Export + プラグインはまだなし

プラグインにはヘッドセットごとの低レイヤーAPIやサポートAPIが入っています。
ヘッドセットごとにバラバラだと大変なので標準化したOpenXR規格が誕生しました。


その後、UnityのXR Plugin ManagementではOpenXRに対応したOpenXR Plugin
Unity純正XRツールキットXR Interaction Toolkitが生まれました。

この二つはUnityの新しい入力システムInput Systemに移行しています。

forpro.unity3d.jp

 

XR Plugin Management、OpenXR Plugin、XR Interaction Toolkit、Input SystemがUnityの標準VR方式になる見込みです

制限と課題

・Oculus Questのハンドトラッキングには未対応
・SteamVRのViveトラッカーをサポートしていない
・SteamworkのターゲットSDKにOpenXRがないため審査に通るか不透明
・OpenXRに対応したランタイムが複数あるがどのランタイムで起動されるかわからないし動作が異なる

結論

・まだ移行期
・アプリをリリースしたり、ヘッドセット固有の機能を使いたい場合は各プラットフォームのSDKを使う状況が続きそう
・学習用途であればXR Interaction Toolkit+OpenXR Pluginを使ってもいいのでは

告知

XR Interaction Toolkitのページを作りました

framesynthesis.jp

 

 

 

 

LT#5 もんりぃ先生: GraphView のすゝめ

GraphViewの基本やカスタマイズについてお話します

GraphViewとは

ShaderGraphやVFXGraphなど、ノードベースなヴィジュアルプログラミング環境を作るためのAPI/UIを提供するものです。
コードを書かなくてもプログラミングできるようになるのが特徴です。

GraphViewの構成要素

・GraphView:GraphViewを作るためのもの
・Node:一つ一つのノードを作るための機能
・Port:ノードの入出力先をつかさどるもの
・Edge:ポートとポートをつなぐための線
・ISearchWindowProvider:検索窓を作るための機能

GraphViewのTips

数が多いのでスライドをどうぞ

まとめ

・現状Experimental
・最低限ノードベースなグラフを構築することはできる
・カスタマイズするにはUIElements力が求められる

リンク

light11.hatenadiary.com

www.youtube.com

qiita.com

creator.game.cyberagent.co.jp

https://virtualcast.jp/blog/2020/04/playwithgraphview/

 

 

 

 

 

 

 

 

LT#6 (スポンサー枠) おはぎ: Mirrativ 着せ替えの仕組みを解説

エモモの着せ替えについてお話します

着せ替えの仕組み

共通の素体に対してアイテムを着せ替えています。
着せ替えるアイテムに応じた異なる仕組みで着せ替えを実現しています。

ボーンスケールの変更

・部位ごとにスケールを変更する
・素体一つにパラメータを読み込ませて実現している
・パラメータが極端だと破綻するためレギュレーションを決めている

ブレンドシェイプによる変形

・口や顔、表情など
・プリセットを渡して変形させる

テクスチャの入れ替え

・シェーダにテクスチャを渡す

メッシュとマテリアルの入れ替え

・アイテムごとにメッシュとマテリアルを入れ替える
・髪、目・衣装など必ず身に着けているものに対して入れ替える

プレハブの入れ替え

・プレハブを生成して入れ替える
・アクセサリーや置物に対して行う

エモモのクオリティアップ

・揺れ物はボーンを設定、DynamicBoneを使用
・アイテムの自由度を下げないようにお互い干渉しないようにしている

 

 

 

 

LT#7 (初登壇枠) 佐藤 英一: 執筆者になろう! & ちょっとだけUnityバイブル2の裏話

出版社から書籍を出すと何が違うのか

SNSやブログでの情報発信、同人誌の作成や勉強会での登壇と何が違うのか

・著者として名前が刻まれる→末代まで残る

・印税が入ります。電子書籍でも当然入ります。ただしあまり金額にこだわるとお願いしにくい

・(重要)開発者の輪が広がる。いろいろな方から声がかかりつながりができる

残念なお知らせ

・Unityバイブルのような多人数の書籍はほとんどない。バイブルはまたやるがしばらく先になる

・普通の場合は一人で書くか4~5名

・執筆期間は決まっているので負荷は高い

負担は大きいが達成感も大きい

バイブルのよくある質問

・著者は勉強会に登壇した方に声をかけることが多い

・執筆期間は3か月でお願いしているが場合によっては1年になることも

・Unity以外のテーマは能力不足でできません

最後に

・執筆に関心がある!

・自分は無理だけど興味がありそうな人を知っている

・このSNSをやっている人に書いてもらってほしい

などなどある方はぜひご気軽にご連絡ください

宣伝

 

 

LT#8 ナナキ: Timelineを使ってターン制RPGの戦闘を演出する

Timelineの利点

・演出を倍速にできる
・エンジニア以外の人に演出を組んでもらえる
・演出が再利用できる(攻撃する演出など)
・人型のキャラクターだとモーションも再利用できる
・テスト用シーンで演出が組める

モーションを作るのが大変な場合

Mixamoで探す
MocapForAllを使う
・アセットストアで購入する
モーションキャプチャーで作る

・人以外の場合は手付けで頑張るしかない

注意点

・キャラクターの位置、回転は親オブジェクトにやらせる
コンポーネントも親オブジェクトにつける
・エフェクトは対象のルートに持たせて、そこからローカル座標や回転を調整
・キャラの大きさによってモーションの調整が必要

PlayableDerector

Timelineの再生、行動側・行動される側を動かしたり、エフェクトを再生させる

・行動者がTimelineの再生
・Signalが対象者に演出を通知
・対象者は受け取って演出を行う
・PlayableAssetがエフェクト再生(Prefabの設定やInspectorの設定を保持できる利点がある)

 

 

 

 

LT#9 (初登壇枠) イワケン: XR時代のプレゼンテーションをUnityで構築したい

XRプレゼンの技術をお話します(内容的にはUnityとUnrealの座標変換の話)

XRプレゼンとは

XR技術を用いた表現でユーザー行動を促す技術(イワケンが定義した言葉)

UnityからUnrealへの座標変換

HoloLensアプリはUnityで、CG空間はUnrealで作る必要があるので連動させないといけない。
変換としては、反転させたり軸を入れ替えるだけ。
XRプレゼンを用いて直感的に座標変換を伝えます。

 

ここでデモ 動画をご覧ください

 

重要なこと

XRデバイスを被らせるよりも映像の方が今のユーザーには届く
スライドとシステムは分ける(組み込むと大変)

XRプレゼンの意義

リアルで見れないモノや回転をプレゼンテーションできるのが強み
情報だけでなく体験を伝えやすくなる

 

 

 

 

 

 

スポンサー企業紹介

株式会社ミラティブ

ゲーム配信ができるコミュニケーションサービス「Mirrativ」を作っています。
文化として毎週ユーザーのフィードバックに向き合い、全員で共有する会をやっています。

 

現在Unityエンジニア、IOSエンジニア、Androidエンジニア、サーバーエンジニア、
データサイエンティストを募集しています。

www.mirrativ.co.jp

 

株式会社キッズスター

子供向けのサービスを作っています。
メインのプロダクトとして「ごっこランド」を展開しています。

biz.kidsstar.co.jp

 

エンジニアに限らずさまざまなジョブを募集しています

www.wantedly.com

 

ワンダープラネット株式会社

エンターテインメント事業を生業としています。
プロダクトとしては「ジャンプチ ヒーローズ」や「クラッシュフィーバー」などシンプルだけど奥深いプロダクトの開発・運営を行っています。

 

エンジニア募集中です(クライアントもサーバーも)

www.wantedly.com

 

 

 

 

 

 

以上です。

 

今回もとてもおもしろいLTが聞けました。発表者のみなさまお疲れ様です👏

 

 

他の方の感想ブログとか

xrdnk.hateblo.jp

note.com

 

 

 

 

間違っている箇所、消してほしいツイートがありましたらコメントにお願いします。