テラシュールブログ

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

はじめてゲーム開発する前に知っておくべきこと

「ゲーム開発を初めた時、大体躓くケースって似てるなー」と思ったら、素晴らしい動画があったので、この動画に自分の経験も混ぜた物をココにメモします*1。 元動画は本当に素晴らしいので、是非一度見るのをお勧めします。なお、ピンポイントで日本語字幕の…

【Unity】ShaderGraphで頂点シェーダーを使用してみる

Unity 2018.2から使用できるShaderGraph 3.0から頂点シェーダーの機能が使用できるようになったので、使ってみました。 ShaderGraph3.0 とりあえず上下に移動するだけのシェーダーを作る 旗も作ってみる 感想 ShaderGraph3.0 これを動かすには、ShaderGraph…

【Unity】チュートリアルやデモ作成に使えるかな? ゲームの動きをTimelineで再現する方法

前回はRigidbodyの動きをTimelineに格納することで、物理演算の負荷軽減やタイミングの調整などを行いました。今回はゲームの動きをAnimationClipとして格納しておき、Timelineで再生してみます。 ゲームの動きを再現したい やり方 再現できるのはInspector…

【Unity】Timelineで物理演算のような動きを使いたい

今回はTimelineで物理演算のような動きを再現するアプローチについてです。 物理表現的な動きをTimelineで使いたい 物理演算の動きをAnimationClipに変換してしまおう GameObjectの動きをレコードする Timelineに使用する Rigidbodyとか、その辺りを全て外す…

【Unity】カメラを常に揺らしたり、だんだんと揺れを強化したりする演出

以前紹介したカメラを振動させるアプローチの少し異なるバージョンです。 tsubakit1.hateblo.jp 瞬間的ではない振動を表したい 連続した揺れはCinemachine Noiseを使う 振動の状態を切り替える(Timeline) 振動の状態を切り替える(Timeline以外) 瞬間的で…

【Unity】衝撃があった時にカメラを揺らす / 振動させる

今回は、何らかの衝撃があったときにカメラを振動させる方法についてです。 カメラの振動 CinemachineのImpulseを使う 衝撃を発行する(コライダー編) 衝撃を発行する(コード) Timelineから振動を呼ぶ 感想 関連 カメラの振動 何か衝撃があったとき、カメ…

【Unity】multi-object editing not supported(複数のオブジェクトを選択したときに編集できなくなる)をエディター拡張無しに一気に編集する

コンポーネントのエディター拡張によっては、複数のオブジェクトを選択したときに「multi-object editing not supported」と表示され編集が出来なくなる物があります。 これがPrefab化しているならPrefabの大本をイジれば良いという話になるのですが、Prefab…

【Unity】Unity 2018.2でMacのVS Codeが入力補完してくれなくなった時の対処

Unity 2018.2にしたところ、MacのVS Codeが入力補完をしてくれなくなったので、その対策についてです。 結論としては、下のパッケージを入れればOKでした。 http://www.mono-project.com/download/stable/ WindowsのVisual Studioの場合はこちら tsubakit1.h…

【Unity】TimelineからAnimationEventのようにメソッドを呼び出したい UnityTimelineEvents

AnimationEventのように、Timelineのイベントを実行する方法についてです。 UnityTimelineEvents 実際に使ってみる 関連 Timelineを使用していると、特定のタイミングでイベントを発行したいと思う事はよくあります。例えば通常のカットシーンでは「爆発の衝…

【Unity】AnimationClipの編集が出来ない時の対策

今回は簡単なトラブルシューティングです。 AnimationClipがReadOnlyなのはFBXにAnimationClipが格納されているため TimelineがPreview中はAnimationClipをRecordにできない Optimized Game Objectが設定されたオブジェクトのAnimationは編集出来ない Animat…

【Unity】Timelineでキャラクターの「表情」を変更する時の注意点

今回はTimelineで表情を変更する場合の注意についてです。 Case 1.表情のキーがセットされない Case 2. 表情が変化しない Case 3. 表情がおかしな感じになる Timelineでキャラクターの動き等を変更していると「表情」も変更したくなります。例えばちょっとし…

【Unity】Nested PrefabやPrefabエディターが追加、新しいPrefabワークフローを触ってみた

Uniteベルリンにて、Nested Prefabが可能になるプレビュービルドが公開されたので触ってみました。 Prefabの階層化が出来るようになった Prefabのバリアント Prefabエディターの追加 プレビューのダウンロード Prefabの階層化が出来るようになった Unityでは…

【Unity】Unity 2018.2で「C# プロジェクト "Assembly-Csharp"は、このコンピューターにインストールされていない」が出たので、その対処

Unity 2018.2にてVisual Studio経由でソースコードを編集する際、「C#プロジェクト"Assembly-CSharp"はこのコンピューターにいんすとーるされていない。".NET Framework、Version=4.7.1"を対象にしています。」といった感じのダイアログが出ました。↑のダイ…

【Unity】C# Job SystemからECSのEntityやComponentDataを追加・削除・変更する指示を出す

今回はECSのComponentDataの追加や削除・変更といった動作をJobSystem上から指示する方法についてです。 C# Job SystemからComponentDataの追加・削除等を指示する BarrierSystem サンプルコード IjobParallelFotやIJobProcessComponentDataで使用するには?…

【Unity】実践的なパフォーマンス分析と最適化

今回はUnite Tokyo 2018で紹介された「実践的なパフォーマンス分析と最適化」のセッションの動画から得られた物をメモしていこうと思います。 なおセッションの音声をそのまま文字にするのではなく、メモを元に自分なりの理解を文章に起こしています。内容の…

【Unity】ドット絵に照明効果を追加する

今回はドット絵にライティングを追加するアプローチについてです。 ドット絵 は 光の演出 を手に入れた!!! 光が届く範囲が明るくなるだけで良い 光の陰影や光るパーツなどを表現するのも欲しい ドット絵に影もつけたい 感想 関連 ドット絵 は 光の演出 を…

「Unityテストを完全に理解した」の動画とスライドが公開

先日行われた「Unityテストを完全に理解した」の動画とスライドが公開されてました。 Unity テスト完全に理解した - connpass 動画 動画はこちら。動画では少しスライドが見にくいので、スライドは別に見るのをお薦め www.youtube.com 各セッションのスライ…

【Unity】ECSのメモリレイアウトとその周辺

今回はECS(Entity Component System)とはどういった機能かといった話について書いていこうと思います。この情報はハッキリ言えば知らなくても問題ない情報なのですが、知っておくとECSを採用するべきケースや作り方に迷ったときに助けになるかもしれません…

【Unity】Unite tokyo 2018の講演動画とスライドが公開

Unite tokyo 2018のセッション動画が公開されました。 セッション動画が公開 個人的お薦め 関連 セッション動画が公開 タイトル通りで、イベントの講演動画が公開になったみたいです。セッションのタイムテーブルからYoutubeやSlideshareのページへジャンプ…

【Unity】UnityでOSにインストールされてるフォントを使いたい

今回は「OSにインストールされたフォント」をUnityで使用する方法についてです。 フォントはゲームの第二の顔 そうだ、全部システムフォントを使おう 手順 フォールバックのやりすぎにご注意 CreateDynamicFontFromOSFontは使わないの? WebGLは? 関連 フォ…

【Unity】ドット絵でゲームを作る時に使いたい、ピクセルパーフェクトなスプライト表現するPixelPerfectCamera

今回は先程公開された、ピクセルパーフェクトなスプライト表現をするために(想定)ピクセルに合わせてスプライトやカメラの位置を調整してくれる機能PixelPerfectCameraについてです。現在はPackageManagerのstagingで提供されています。 想定解像度に合わ…

【Unity】Unityでベクターグラフィック(SVG)を利用する

https://github.com/Unity-Technologies/vector-graphics-samples/blob/master/Documentation/vectorgraphics.md UnityのPackageManagerにSVGを利用するライブラリが追加されました。Unity 2018.1でプレビュー版を使用することが出来ます。 どんな事が出来る…

【Unity】Allocator.TempJobで作ったNativeArrayを自動的に開放する

今回はNativeArrayの開放の方法についてです NativeArrayの削除 .Tempは普通に開放 .TempJobは少し楽 サンプル NativeArrayの削除 NativeArrayでコンテナを作る際、アロケータのモードに「Temp」「TempJob」「Persistent」の3つを選択することが出来ます。 …

Gobe2というフィットネストラッカーについての私見

Gobe2というフィットネストラッカーを購入してからそろそろ半年になるので、ここでレビュー的なものを書いてみようと思います。 Gobe2はフィットネストラッカーの一つ デザインは…厚い 時計として使えなくはない 一日の摂取カロリーは、多分あってるような気…

【Unity】構造体の配列(NativeArray)と参照渡し

今回は構造体を配列(NativeArray)にした時の、そのアクセスについてです。 ECSとJobSystemは構造体の配列を使う 配列からrefやoutで参照を貰う事は出来ない そうだ、unsafeを使おう ArrayElementAsRefで要素のrefを取得する 関連 ECSとJobSystemは構造体の…

【Unity】ECSで簡単なゲームを作ってみたので、その解説

ECSで技術デモ的な物は結構あるのですが、ゲーム的になっているものが余り無いので、ECSで簡単なゲームを作ってみました。 そうだ、ECSで球転がしを作ろう ステージの作成は今までどおりシーンに作る 球のコントロールはGameObjectをシステムからコントロー…

【Unity】Timelineと移動を連携して、特定のタイミングから"指定の座標"へ移動させる

今回はTimelineの機能を使用するが、「目標地点が異なる」場合を対処する方法についてです。例えば「距離の異なる崖をジャンプで超える」や「位置が毎回異なる敵に攻撃を仕掛ける」といった物をTimelineで制御する場合の話です。 Timelineアニメーションの「…

【Unity】Unity 2018.1でunsafeなコードを使う

今回はunityでunsafeなコードを使う方法についてです。 以前はUnityは公式的にはUnsafeはサポートしていませんでしたが(unsafeを使う手順は存在して、IL2CPPもunsafe向けコードを出力していた)、Unity 2018.1辺り?からオプションとしてunsafeに対応したみ…

【Unity】ProBuilderがなんか重い対処

ProBuilderでステージを作るときに何か重い…というものの対処についてです。 ProBuilderで作成…あれ重い? ライトを焼いてるせい 対策1:自動的にベイクするのを止める 対策2:ライトマップを最初から諦める 対策3:Enlightenを使用する 対策4:ライトの…

【Unity】知らないと苦労するかもしれない、Timelineと座標の話

Unity 2018.3以降の場合 Unity 2018.2までのTimelineの座標系の話 AnimationControllerがAnimatorにセットされていれば現在位置から移動、無ければ絶対座標からアニメーションを開始する ApplyTrackOffsetはAnimationControllerの有無で用途が異なる Animati…