読者です 読者をやめる 読者になる 読者になる

テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

Unity 1 Week Game Jam、再び。今回のお題は「転がる」

Unity 1週間ゲームジャム | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう 「1 Week Game Jam」が再び開催されました。 一週間でゲームを作るぜ1 Week Game Jam お題は「転がる」 進捗はスクリーンショットや動画で、#unity1week…

【Unity】AnimationController間でStateMachineBehaviourのインスタンスを共有するSharedBetweenAnimatorsの挙動

SharedBetweenAnimatorsというAttributeがあります。 簡単に言えば「StateMachineBehaviour」のインスタンスを共有するAPIです。少しだけ動作に疑問があったので確認してみました。 インスタンスを共有するSharedBetweenAnimators パラメータはシェアされる …

【Unity】ステージのギミックをアニメーションで作る際に便利な設定

今回は、現在位置からの相対距離で動くアニメーション設定という小ネタです。この使い方に気づかなかったので色々面倒な事をしていましたが、不要やったんやってお話です。 ステージギミックとアニメーション 初期設定ではAnimationの位置は親オブジェクトか…

【Unity】モバイル向けシェーダー見え方比較メモ

ふと思いついて、モバイル向けシェーダーの見え方を比較します。自分メモ用 使用アセット 比較 使用アセット 今回登場頂いたのは、Adam氏。…のLOD版 本家Adam氏は大量のMaterialを(主に目に)使用しており、変更が面倒なので、Material二つしか使ってないAd…

【Unity】uGUIの自動レイアウトが分かりにくいと評判なので解説してみる

uGUIには自動レイアウトなシステムが積まれています。ただ、このシステム便利ではあるんですが色々と複雑なので、少し補足です。 UIの大きさを動的にフィットさせる、オートレイアウト UIの大きさはLayoutElementで決まる Minは最低限サイズ、Preferredは変…

【Unity】Unite 2017 Tokyo の資料が逐次公開されてる模様

Unity 2017 Tokyoで使用された資料が逐次公開されはじめています。タイムテーブルから取得出来ます。 events.unity3d.jp デモがベースで資料だけ見てもナンノコッチャという物もあるかもしれませんが、割と良い感じです。 ただまぁ、タイトル画像が全て一緒…

【Unity】Unity 2017の新しいスプライトをパッキングする仕組み、”SpriteAtlas”について

Unity 2017でSpritepackerの仕組みが新しくなったみたいです。 新しいパッキングの仕組み、SpriteAtlas パッキングの単位はフォルダ・テクスチャ・スプライト 圧縮フォーマットはSpriteAtlasで一括指定 SpritePackerはLegacy扱い パッキングしたAtlasの運用 …

【Unity】生成した瞬間は勢いがあるが、すぐにゆっくりになるパーティクル

生成した瞬間は勢いがあるが、すぐに速度が落ちてゆっくりになるパーティクルについてです。 作り方をど忘れしたので、ココにメモしておきます。 パーティクルの速度は生成時に決まる 速度をLimit Velocity Over Lifetimeで制限する カーブでパーティクルの…

【Unity】1週間ゲームジャムに参加しました。メイキング・オブ・超速ブロック崩し(仮)

一週間ゲームジャム(#unity1week)が面白そうなので、参加してみました。 作ったゲームはこんな感じのゲームです。 超速のブロック崩し(仮) | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう 一週間ゲームジャム 作るものを決…

【Unity】Soft Particleを使って、ポリゴンとパーティクルの交差点がハッキリ見えないようにする

今回はSoft Particleについてです。 Soft Particleはエフェクトの交差点をフェードアウトする 対応してるシェーダーとDepthTextureが必要 モバイルでも動く 関連 Soft Particleはエフェクトの交差点をフェードアウトする ビルボード(常にカメラを向くビルボ…

【Unity】Ctrl + Dで複製したオブジェクトから(1)を無くし、元オブジェクトの下に生成する

昨日のエディタ拡張で調子に乗って作ってみました。 ただ色々確認してる所、Macでは動かないかもしれません。 Ctrl + Dで複製しかし()は無し ファイルの複製(適当) コード 関連 Ctrl + Dで複製しかし()は無し Ctrl + Dでオブジェクトを複製しますが、…

【Unity】Create Emptyは何処に作られるのか?

ふと気になったので確認してみました。 空のゲームオブジェクトをを作成する オブジェクトはフォーカスしたオブジェクトと同じ位置に作られる SceneViewを動かすと、生成位置がズレる Create Empty Childは親と同じ座標 MenuItemのオーバーライドは出来なか…

【Unity】Timelineに動的に生成したオブジェクトをバインドする

今回はTimelineのデータ情報を流し込む方法についてです。 ※Unity 2017b5で実装が大幅に変わった為、動作しません。 新しい実装に修正中 Timelineは使い回せる イベントに使う事でAnimatorの構造を簡単にする 使い回しTimelineを作る時は編集用シーンを用意…

【Unity】リアルタイムな影とベイクした影を混ぜる、Shadow Mask 特集号

今回はUnity 5.6で追加されたLightingの新しい機能、特にShadowmaskについてです。 Shadow Maskは動的な影と静的な影を混ぜる手法 「影」の計算を事前に行う マスクなので輝度や色を変える事が出来る 間接光は事前にテクスチャに焼かれる 光沢が綺麗に出る C…

【Unity】シーンの変更を「無かったこと」にする

ちょっとしたTipsです。 シーンの変更を「無かったこと」にする シーンの内容を変更すると、シーン名の右にアスタリスク(*)が表示されます。この状態であれば、シーンの変更を破棄する事が出来ます。 Hierarchyのシーンを右クリック Discard Changesを選…

【Unity】Unity 2017 beta が公開。個人的に気になった部分まとめ

Unity 2017のBeta版が公開されたみたいです。 Unity 5.6の次はUnity 2017 幾つかRelease Noteで目についた機能 Timelineが着地 SpriteMask SpriteのAtlas生成機能を一新 Spriteベースのパーティクルアニメーション .NET 4.6対応 PlayableAPIのExperimentalが…

【Unity】物理シェーダーベースのパーティクル向けシェーダー、Standard Particle Shader

物理ベースシェーダー的なパーティクルエフェクトが作られたみたいです。 Standard Particle Shader Standard Particle Shaderは、PBRベースなパーティクルシェーダーみたいです。 通常のStandard Shaderよりライティング周りを簡略化した代わりにパフォーマ…

【Unity】Timelineでフェードイン・フェードアウトするTimeline Clipを用意する

とある事情で作ったTimeline用のフェードイン・フェードアウト Playableです。 これぐらい最初から用意してくれてもバチは当たらないと思いますが、まぁ。 ※Unity 2017b5で実装が大幅に変わった為、動作しません。 新しい実装に修正中 使い方 コードの説明 …

【Unity】Spriteで9 Sliceを使う

今回はUnity 5.6から可能になったSpriteでの9 Sliceについて紹介します。 Unity 5.6から搭載された 9 Slice(スプライト向け) 9 Sliceって? 9 Sliceを使ってみる スプライトの用意 タイリング(Tiled) TiledのTile Mode TiledとSlicedの違い Colliderの大…

【Unity】アニメーションと物理演算を連動させる 5.6以降

以前、アニメーションと物理演算を連動させる方法について紹介しましたが、Unity 5.6でもっとシンプルになりました。 tsubakit1.hateblo.jp Animate Physicsなる機能 Unity 5.6のアップグレードガイドを眺めていると、少し気になる項目がありました。 docs.u…

【Unity】「Unity5.6のわりと地雷なバグ」についての補足

madnesslabo.net 先日リリースされた「Unity 5.6」について、幾つか地雷なバグがあるそうなので見てみましたが、内容が少し気になったので調べてみました。 AddComponentでImageを足した際に、OnDisable→OnEnableが呼ばれる Prefabを置くタイプなら問題ない …

【Unity】WebGLとWebAssembly

WebAssembly 先日Google ChromeとFirefoxがWebAssemblyに対応しました。 この素晴らしいニュースではFirefoxが対応したのは当然として、世界で圧倒的にユーザー数の多いGoogle Chromeも対応したという事です。 dev.classmethod.jp Android環境でも「多分動か…

【Unity】AssetBundleに格納したSceneやPrefabがピンクになる問題

AssetBundleにモデルを格納した時、モデルのマテリアルがユニークなシェーダーを使用しているとモデルがピンクになる事があります。 今回はその原因と対策についてです。 モデルがピンクになるという事 AssetBundleに格納したSceneやModelがピンクになる 問…

【Unity 】Unity Collaborate のScene・Prefab マージ機能テスト日記

以前グローバルゲームジャムでCollaborateを使用したのですが、単一のシーンをみんなで一斉に弄りまくってたのに競合が起こらなかったので、少し実験。 詳しくは後日まとめる予定。 オリジナルなシーンとPrefab 同一シーン・別オブジェクトの変更 ユーザー1…

【Unity】公式の「テキストベースなアドベンチャーゲーム」を作るチュートリアル

先日、ついにUnity公式のテキストベースなアドベンチャーゲームのチュートリアルがチュートリアルムービー一覧に追加されました。 「テキストベース」なアドベンチャーゲーム テキストベースなアドベンチャーと言えば、現状日本製のモバイル・コンソール(AA…

【Unity】ゲームのビルド直前に "ファイルの退避" や "シーンの最適化" 等の処理を挟む

今回はUnityでゲームをビルドする前にプロジェクトやシーンに何らかの処理を行い、、ビルド完了後に戻す方法についての紹介です。 Unity 5.6以降で動作します。 作る際に便利なものとパフォーマンスに良いもの ビルド前とビルド後に処理を行う(全体) ビル…

【Unity】知っておくと少し便利な Profiler に関する小技集

今回はプロファイラーの小技についてです。 プロファイラー小技集 CPUとGPUの使用時間を確認 表示する項目を増やす・減らす CPUプロファイラの表示項目を隠す CPUプロファイラの表示順を変更する 負荷のあるオブジェクトがドレかを確認する Timelineで表示す…

【Unity】ノードベースでAssetBundleを作成するツール AssetBundleGraphTool が予想以上に高機能

今回はAssetBundleをグラフィカルに生成するAssetBundleGraphToolについて紹介します。 AssetBundleGraphTool 入手 基本は絞込と構築、あと生成 アセットの絞り込み グルーピングで、条件毎にAssetBundleのグループを構築 AssetBundleの設定と生成と AssetBu…

【Unity】ゲームに最初から含めるアセット群を圧縮するオプション

Unity 5.6から、ビルドしたゲームに含めるアセット群を圧縮するオプションが追加されました。 この圧縮をONにすることで「アプリ起動時間の短縮」や「インストール後にサイズが膨れ上がるのを防ぐ(iOS/Standalone)」効果が期待出来ます。 ビルドしたゲーム…

【Unity】Video Playerでアルファチャンネル付きムービーを使う

アルファチャンネル付きムービー、アルファムービー、透過ムービー、with alpha、αムービー、Aビデオ、呼び方は色々ありますが、背景が透明なムービーについてです。 アルファチャンネル付きムービー 使用出来るコーデック Webmを再生出来ない端末では アル…

【Unity】「被写体のどこを映して欲しいか」を元にカメラの動きをコントロールする CINE.MACHINE BASE RIG を軽く使ってみる

今回、Unity標準機能化の動きに合わせて無料で使用出来るようになったCine.machineを実際に触ってみました。 カメラの動きをコントロールする 簡単な使い方 まずはChinemachineのセットアップ。 カットの用意 注目するオブジェクトのセット ドリー的にカメラ…

【Unity】Timelineで字幕を表示する

TimelineのExperimental Buildが公開されています。 せっかくなので字幕に使ってみました。 ※Unity 2017b5で実装が大幅に変わった為、動作しません。 新しい実装に修正中 Timelineのスクリプト制御 Timelineを用意 スクリプトの用意 ウィンドウを開く タイム…

【Unity】確認までに長い時間を要求するライトのベイクを、素早く確認する Progressive Lightmapper

今回は、Unity 5.6の個人的な目玉機能、Progressive Lightmapperについてです。 ライトのベイクには時間がかかる Progressive Lightmapper という機能 ベイクの残り時間が表示される Emissiveなマテリアルで焼いた影が若干綺麗 ベイク中にゲームを再生したと…

【Unity】とあるライトマップと光沢感(スペキュラー)

Unityユーザー助け合い所で少し気になった投稿があったので、調査してみました。 Lightmapを焼くと光沢が出ない 光沢を表現したい Directional Lightの場合 PointLightやSpot Light Pixel Light Countの限界 AreaLightやEmissive Objectの場合 モバイルでは……

【Unity】Timelineエディタのプレビューリリース版その1がリリース

UnityのTimelineエディタのプレビューリリース版その1がリリースされてました。 Timeline Experimental Preview Release 1 https://forum.unity3d.com/threads/timeline-experimental-preview-release-1.455265/ 機能 現状の機能は大雑把にこんな感じです。…

【Unity】複数のColliderを結合するComposite Collider 2Dを使って少し遊ぶ

今回はUnity 5.6に追加されたComposite Collider 2Dについてです。 Compound Collidersという機能 CompositeCollider2Dという機能 ダイナミック洞窟生成 作り方 関連 Compound Collidersという機能 Rigidbodyの下にColliderが複数ある時、実はUnityはCollide…

【Unity】Area Lightと、Emissiveな材質を持つ発光するオブジェクトが輝けと囁く

Unityのライティングシステムの隅にひっそりと存在するArea Light(エリアライト)、その知られざる生態系について、今回は踏み込んでみようと思います。 影の表現が柔らかくなるAreaLight 広い範囲からの照射ばぼんやり、狭い範囲からの照射はハッキリ Area…

【Unity】コンポーネントのイベント実行順についてのTips

GameObjectにアタッチしたスクリプトの実行順番は、特に何もしなければ割とランダムです。今回はその辺りについて少し整理します。 スクリプトの実行順番 スクリプトの実行順を制御する Script Execution OrderをGUIで設定 メタデータに直接書き込む Default…

【Unity】Statemachinebehaviourの処理の実行順について

Statemachinebehaviourをステートに貼り付けた際、Statemachinebehaviourはどのような順番で呼ばれるのか。 確認してみました。 Statemachinebehaviourを呼ばれる順番 SubStateMachineのStatemachinebehaviour 関連 Statemachinebehaviourを呼ばれる順番 ル…

【Unity】Display 1 No cameras rendering を消す方法

小ネタです。 Display 1 No cameras rendering Cameraが不要なケース Display 1 No cameras renderingを消す方法 関連 Display 1 No cameras rendering 画面のこの表示は、要するにCameraコンポーネントで何も描画してないよという意味です。つまりCameraを…

【Unity】エディタ拡張でstaticなフィールドに置いたインスタンスが、コンパイル/再生時に初期化される問題の対策について

長ったらしいタイトルですが、その通り「エディタ拡張で、staticなフィールドに置いたインスタンスがコンパイル/再生時に初期化される問題の対策について」です。 初期化されるパラメータ 例:シリアライズしないデータがある場合 解決方法 シリアライズ出来…

【Unity】アニメーション中、指定の位置に到達するように位置を補正する

ジャンプやダッシュジャンプを用いて障害物を登るというケースはよく有ります。この高さにアニメーションが一致すれば問題は無いのですが、任意の段差や距離をジャンプしたいといったケースは多々あります。 そういったケースの場合、幾つか解決の手法はあり…

【Unity】知らないと面倒くさい事になるかもしれないAnimatorの「Write Defaults」の動作について

今回はWrite Defaultsについて。 この挙動は少し分かりにくいので、少し補足します。 Write Defaultsという項目 キーが未定義なアニメーションは起動時のパラメータをデフォルト値として使う Write Defaultsという項目 注意点 デフォルト値が保持されるケー…

【Unity】AnimationControllerのAnyStateを使用してる際、現在のStateへ何度も移動しないようにする

今回は小さなTipsです。 例えば上のように「どれか一つのUI状態を持つ」UIをAnimationControllerで管理し、かつAnyStateから呼び出すように作成した際、Triggerを叩くと何度もUI表示アニメーションが再生されてしまうといった事があります。 AnyStateの先へ…

【Unity】Unity-VR360-OverlayGridで、全方位写真の一部にポスターを貼ったり動画を仕込んだり

今回は全方位写真(360度写真)で用意した風景の一部に動画を仕込む方法についてです。 全方位写真 Unity-VR360-OverlayGrid 使い方(下準備) 使い方(物の配置) より馴染ませる為に 動画を仕込もう(Unity 5.6版) マテリアルのMainTexにムービーを流し込…

【Unity】スケルタルアニメーション用のアセット、Anima2Dが無償公開

Anima2Dが、パブリッシャーがUnityTechnologiesになりUnity Anima2Dに名前を変えて無償公開されました。 https://www.assetstore.unity3d.com/jp/#!/content/79840 Anima2Dはスケルタルアニメーション(FateGOやSprineのような物)を実現するアセットの一つ…

【Unity】当たり判定の有無や形状、物理演算の状態を視覚的に確認する Physics Debugger【5.6】

物理演算を使用している際に、現在Rigidbodyがスリープしているかや物理演算に使用するコライダーの形状等を確認したく鳴る事があります。 Unity 5.6で、そういったケースで便利なPhysics Debuggerが追加されたので、少し紹介します。 Physics Debugger 実際…

【Unity】ベイクした影とリアルタイムな影を混ぜる新しい幾つかの手法と、その他諸々【5.6b3】

Unity 5.6(b3)より、Experimental(実験的)で提供されていた新しいライトマップの機能がベータ版に統合されました。 ライトのMixedモードがStationaryモードに変化 ベイクした影を表現しつつリアルタイムな影も使いたい 事前計算した影を「マスク」として準…

【Unity】7.5時間を約3分に。ライトマップ(Realtime GI)のベイク時間を短縮する為のチュートリアル

Unityでライトマップをベイクする場合、何も考えず初期設定でベイクすると非常に時間がかかります。それを短時間でベイクする為のチュートリアルとチュートリアルを行う為のアセットが公開されてました。 チュートリアルとアセット 7.5時間が2.25分に 補足 B…

【Unity】ハンドカメラ風カメラの挙動を実現するHandheldCamera

飛行機の制御を作ったら、ハンドカメラ風のカメラ挙動が欲しくなります。で、StandardAssetsに含まれるCameraにソレっぽい挙動があったので、試しに使ってみます。 HandheldCamera HandHeldCamコンポーネント Target Field Of View 関連 HandheldCamera Stan…