タグ

penguin_niisanのブックマーク (846)

  • 【UE5.3】MetaQuest2向けにAndroidでPackage化したい - Qiita

    はじめに この記事はUE5.3で作ったVRアプリをパッケージ化してみる記事です。 利便性の為一部公式のドキュメントから逸脱した手段を踏んでいます。また、4や5.1、5.2とは手順に互換性がありません。この手順でセットアップを行うと、5.2などでビルドできていた環境を損なう可能性があります。 参考 公式ドキュメント:Android SDK および NDK を設定する DeveloperForum質問:Error when install the build file of UE5.1 VR 環境 ・Windows ・UE5.3.2 ・AndroidStudio Koala(2024.1.1.11) Android Studioをダウンロードする 公式ではAndroid Studio Flamingo | 2022.2.1 Patch 2 May 24, 2023の使用を想定していますが、最新

    【UE5.3】MetaQuest2向けにAndroidでPackage化したい - Qiita
  • 【Unity】エディターで再生中に外部ツールで変更したファイルを自動で反映させる覚書【FileSystemWatcher】

    はじめに Unity を利用していくと外部ツールや json ファイルなどで出力したファイルを読み込みゲームに反映したいことが多々あります。 ScriptableObject や MonoBehaviour で [Serializable] 設定した メンバ をHierarchy で変更すればいいやん。と思われるでしょう。Unity的にはそれが正解ですが、コンバータなどで一括変換して Unity に読み込ませたいこともあります。 ファイルの状態を監視する FileSystemWatcher System.IO.FileSystemWatcher はファイルの状態を監視して 変更された時に通知が来るよう設定ができるクラスです。 例 エディットでプレイ中に Assets/StreamingAssets/config.json ファイルが手動・外部ツールでコンバートされた場合に リアルタイムで反

    【Unity】エディターで再生中に外部ツールで変更したファイルを自動で反映させる覚書【FileSystemWatcher】
  • ゲームプログラミングのための数学 - ベクトル

    プログラマの視点で言えば,ベクトルはn個の浮動小数点数型のメンバ変数を持つ 構造体になります.n個のメンバ変数は,x,y,zのような名前を付けることもあれば, 配列にすることもあります. 一方で,単なる数値をスカラーと呼びます. それぞれのメンバ変数を成分(component)と言います. 成分の数がnの場合,n次元(dimension)のベクトルと言います. つまり,3D(3-dimension)のベクトルは成分が3つのベクトル,ということになります. ゲームプログラミングで扱うベクトルは,成分が2つ,3つ,4つの場合が一般的です. ここでは,3次元ベクトルを取り上げて,C++のコードを交えつつ説明してみます.

    ゲームプログラミングのための数学 - ベクトル
  • Unity でプロジェクト外部の参照を追加したい - なつねこメモ

    ここでいう外部の参照っていうのは、 NuGet ライブラリだったり、 .NET Framework には含まれてるけど追加参照が必要なものを指します。 NuGet ライブラリを使う場合 公式ドキュメントでは nuget.org から DL する方法が紹介されていましたが、 いちいち落としてくるのも面倒なので、専用の拡張を導入します。 ここから NuGetForUnity の最新版をダウンロードし、インポートします。 インポートしたらツールバーに NuGet の項目が増えているはずなので、 Manage NuGet Packages から入れたいものを入れてあげれば OK。 この方法で導入した場合、良い感じに csproj にも追記してくれるので楽でした。 追加参照ライブラリを使う場合 System.IO.Compression.dll みたいなのを使う場合は、 csc.rsp を作ります。

    Unity でプロジェクト外部の参照を追加したい - なつねこメモ
  • UnrealEngine UI 「ミニマップのアイコン」や「頭上のHPバー」など動くUIの作り方 - Qiita

    UE Tokyo .dev #3 (2024.06) ほしいもん 合同会社パレットイブ 奥井 健 X、Qiita:@hoshiimonn はじめに 今回お話するのは アクションゲームによくある 「ミニマップのアイコン」や 「頭上のHPバー」 など常に動き続ける2Dをいかに効率的に描画するかというお話です。 エンジニア向け、C++が出てきます。 例 ミニマップのアイコンや記号 頭上のアレ 弾幕シューティングの弾 ヒットダメージ こういうやつです。 結論 Widgetを個々に作らずSlateの関数を直接使おう! どういうことかと言うと、専用のWidgetを1つだけ作ってそのOnPaint関数内で Slateの関数を呼び出して矩形を描画するという方法です。 こんな感じで複数のアイコンを描画できる1つのWidgetを作成します 使う関数はこれです static void MakeBox( FSla

    UnrealEngine UI 「ミニマップのアイコン」や「頭上のHPバー」など動くUIの作り方 - Qiita
  • Chronosを用いたポーズ処理の実装 - ns64's blog

  • [Unity] ポーズ動作をTime.timeScale=0を使わずに実現する(その2)

    前回の記事でTime.timeScale=0を使わずにポーズ動作を実現する方法について書きました。 しかし、Rigidbodyコンポーネントを持ったゲームオブジェクトでは、ポーズしてもそのまま物体をすり抜けて慣性で動き続けてしまいます。 逆にRigidbodyを使わないゲームオブジェクトであれば前回の記事で公開したスクリプトだけでも十分でしょう。 今回はRigidbodyのポーズ動作も考慮したポーズ動作の実現方法について書きます。 結論から言うと、rigidbodyコンポーネントのSleep()、WakeUp()メソッド呼び出しで実現できます。 しかし、上記だけではWakeUp()メソッドの実行時に物体の速度と角速度が0になってしまいます。 この問題を解決するために、WakeUp()呼出し後にSleep()呼び出し前の物体の速度と角速度に戻す必要があります。 これらを考慮することで、綺麗な

    [Unity] ポーズ動作をTime.timeScale=0を使わずに実現する(その2)
  • 【Unity】GameObjectの透明度をコード変更する方法(SpriteRendererを使わない)2D - テクノモンキー(サブ)

    UnityでGameObjectの透明度をコードで変えようとしたらつまづいてしまったのでメモ。 やりたいこととしては、 「未入手のアイテムを半透明の状態にしておいて、アイテムをゲットしたら半透明状態を元に戻す」 ってことです。 GameObjectの透明度を変える方法を調べていたんですが、調べてみると3Dでやる場合の方法ばっかりが出てきてしまいます。。(僕の検索法の問題もある) vend9520-lab.net qiita.com その後、ようやくUnityの2Dでオブジェクトの透明度を変更する方法を見つけたんですが、 Unity2Dメモ2 スクリプトからSpriteの透明度を変える d.hatena.ne.jp やり方的には、GetComponentでSpriteRendererを取得して、colorの値を変えるという方法。 ただ僕が透明度を変えたいゲームオブジェクトは「Hierarch

    【Unity】GameObjectの透明度をコード変更する方法(SpriteRendererを使わない)2D - テクノモンキー(サブ)
  • 【Unity】プレイヤーがダメージを受けた時に点滅させる方法 - テクノモンキー(サブ)

    Unityでアクションゲームを作っているんですが、 「プレイヤーが敵に当たった時、点滅させて一定時間無敵状態にする」っていうのをやってみました。 using System.Collections; using System.Collections.Generic; using UnityEngine; using DG.Tweening; public class PlayerManager : MonoBehaviour { private bool isDamaged = false; //敵に当たったか void Start () { //テスト用 isDamaged = true; } void Update () { } void FixedUpdate () { //ダメージを受けた時の処理 if(isDamaged){ float level = Mathf.Abs(Math

    【Unity】プレイヤーがダメージを受けた時に点滅させる方法 - テクノモンキー(サブ)
  • 【Unity】Timescaleを変更しないRigidbodyの時間制御 - 原カバンは鞄のお店ではありません。

    終わりが見えない 総プレイ時間は100時間を超えているのに未だにエルダの王になれない皆さんこんにちは。先日は足場の狭い高い塔を登ったり下りたりで1時間以上を費やし、地下の白いベールを被ったボスの撃破に2時間以上かかりました。時間溶けすぎ。 UnityのTimescale Unityではゲーム中の一時停止などを行うときにTimeクラスのTimescaleの値を変更して各オブジェクトの動作を停止状態にしますが、このTimescaleはシーン内の時間に対して影響を及ぼすので、例えばオブジェクトの動きは止めてもUI等は動いてほしい場合にはTimescaleではなく、別の対処が必要となります。 オブジェクトがDOTweenを使って動いている場合やAnimationで動いている場合などは、それぞれのコンポーネントのspeed値を変えることで停止・加速等を実装できますが、Rigidbodyを使っている場

    【Unity】Timescaleを変更しないRigidbodyの時間制御 - 原カバンは鞄のお店ではありません。
  • 【さらばTime.timeScale】バトルにおける複雑なスピード制御を実現するための設計思想【Unity】 - Qiita

    この記事は サムザップAdventCalendar2022 の12/23の記事になります! はじめに 株式会社サムザップでUnityエンジニアをしているレオです。(Twitter) いきなりですが、皆さんはこんな経験ないでしょうか? 開発中のゲームに一時停止機能やスローモーション機能をつけたいと思ってググってみると、Time.timeScaleについての記事がいっぱい出てくると思います。 ここで少し『スターオーシャン2』のバトルを スピード制御 という点に注目して見てみましょう。(20秒ほどでOKです。) 動画で確認できるスピード制御をちょっと書き出してみます。 特定のスキル演出中は周りを停止している コマンド選択中はUI以外停止している UIは常に動いているものもあれば、止まるものもある スタン中はキャラのアニメーションが停止している それ以外にも、世の中にあるゲームでよくあるスピード制

    【さらばTime.timeScale】バトルにおける複雑なスピード制御を実現するための設計思想【Unity】 - Qiita
  • 【Unity】NavMeshAgentの経路だけを参照して移動処理に利用したお話 | ゴマちゃんフロンティア

    すごく今更ながら、最近Unityの「NavMesh」を触ってみました。 以前私の作ったゲームでは後ろからアザラシがついてきますが、「障害物に詰まり続ける」「前に海 (落下するとダメージ) があっても突撃する」など、その挙動には大きな問題があります。それをNavMeshで解決できないか考えました。 しかしNavMeshAgentの位置はTransformでもRigidbodyでもない、言わば「第3の位置情報」のようなもので、私が今まで作っていた処理との組み合わせがやりにくいです。 そこでNavMeshAgentが計算して出した経路だけを利用できないか考えてみたのが今回のお話です。 やったこと NavMeshAgentで移動しないようにする 普通にNavMeshAgentを使うとエージェントがオブジェクトを動かしてしまうので、パラメータを弄って動かないようにします。 ここを変えても特に経路に影

    【Unity】NavMeshAgentの経路だけを参照して移動処理に利用したお話 | ゴマちゃんフロンティア
  • 【Unity】ポーズ機能をTime.timeScaleを変えずに実装したお話 | ゴマちゃんフロンティア

    今回はUnityの「ポーズ機能」の実装に関するお話です。 Unityでポーズというと、「Time.timeScaleを0にする」といった内容のページが多くヒットします。単純なポーズ機能だけならこれで実現できますが、 ポーズ時にメニューをアニメーションさせながら表示したい メニュー画面でキャラクターをアニメーションさせたい などの場合に「timeScale=0」で実装していると、それらのアニメーションまで止まってしまいます。 それを抜きにしても、Tween系ライブラリのアニメーションやパーティクルまで止まると厳しいので、他のやり方を考えてみた次第です。 ということで、やってみた感じでは「ポーズ時とポーズ解除時にイベントを用意し、各コンポーネントがイベントを登録して通知してもらう」でいけそうです。 デザインパターンでいう「Observerパターン」ですね。 ポーズを管理するクラスの作成 まずは

    【Unity】ポーズ機能をTime.timeScaleを変えずに実装したお話 | ゴマちゃんフロンティア
  • Time.timescaleを変更せずにRigidbodyの一時停止&再開処理【Unity】【拡張メソッド】 - (:3[kanのメモ帳]

    拡張メソッドとは この記事でのバージョン Unity 5.3.0f4 Personal はじめに ゲーム中にオブジェクトを一時停止したい、みたいな場合はよくあると思います。 その時、一番楽なのはTime.timeScaleを0にして時間を止める事ですが、 これをするとtimeScaleが影響している全ての動きが止まってしまうため、 使える場所が限られています。 移動処理をプログラムで記述している場合は、その処理を実行しなければいいため簡単ですが、 Rigidbodyを使っている場合は、移動処理が自動で行われてるためそうもいきません。 isKinematicを有効にすれば、一時停止する事は出来ますが。 rigidbody2D.isKinematic = true; 速度が0になるため、物理運動の再開は出来ません。 なので、今回はRigidbodyの一時停止&再開処理を拡張メソッドで作ってみま

  • 【Unity】シーン遷移時のフェードを自作する - Qiita

    はじめに Unityで普通に画面遷移すると、とても質素で安っぽくなってしまいます。画面遷移時に一瞬だけ暗転するとそれだけで結構いい感じになります。 アセットのようなものもあるみたいですが、それ程難しくない気がしたので今回は自作してみました。 完成イメージ 環境 構成 今回はシーン1とシーン2を用意してここに実装します。スクリプトは以下を用意します。 SceneController:MainCameraにくっつけます FadeManader:暗転パネル用Canvasにくっつけます 一応シーン1は赤、シーン2は青にしてあります。 あとスクショにはありませんが、シーン切り替え用のボタンも配置してあります。 流れ 先におおまかな流れを書いておくと、 1.暗転用のパネルを作る 2.暗転用のパネルを召喚 3.パネルのフェードイン、アウトの仕組みを作る 4.シーン切り替え時にフェードするようにする の4

    【Unity】シーン遷移時のフェードを自作する - Qiita
  • Unityの最強シーン遷移管理フレームワーク『Navigathena』と画面管理の設計思想について解説

    はじめに Unityにおいて、シーンの遷移・管理は開発の中核的な役割を担います。それ故に、適切な設計なしで開発に踏み込むと、複雑で扱いづらいプロジェクトになるリスクが高まります。しかし、効果的なシーン管理の設計と実装をするには、それなりに時間と知識を要します。 この課題を解決するため、「高機能」「拡張性」「堅牢性」を念頭に設計・実装した画面管理フレームワークの 『Navigathena』 をオープンソースライブラリとして公開しました。 [GitHub - mackysoft/Navigathena] 記事では、Navigathenaの特徴や使い方を紹介しつつ、Unityにおけるシーン管理の設計について深掘っていきます。 シーン管理には何が必要か? 実際に、Unityでの開発を行う際、どのような機能や考慮点が必要となるでしょうか? これまでの経験や開発事例を踏まえると、大まかに以下のような

    Unityの最強シーン遷移管理フレームワーク『Navigathena』と画面管理の設計思想について解説
  • 【Unity】一目でわかる! カメラの複数アスペクト比対応3D(全7パターン)|鈴木ジョン@ゲーム開発

    こんにちは、鈴木ジョンです。 今回は、カメラの複数アスペクト比対応についてまとめたので公開します。 今回の記事は、3D用のカメラを対象にしています。 (カメラのProjectionの設定がPerspective) 2D用のカメラ(Orthographic)は次回の記事で。 簡単にできる! カメラの複数アスペクト比対応2D(全7パターン) はじめにパターンごとに比較画像とサンプルコードを用意しました。サンプルコードはカメラにアタッチするなどして使ってください。すべて9:16をベースのアスペクト比としています。 【デフォルト】 高さ固定+幅可変 どの端末でも高さ方向の表示量は同じです。アスペクト比によって、幅方向の表示量が増減します。 デフォルトなのでスクリプトは必要ありません。 幅固定+高さ可変 どの端末でも幅方向の表示量が同じです。アスペクト比によって、高さ方向の表示量が増減します。 pu

    【Unity】一目でわかる! カメラの複数アスペクト比対応3D(全7パターン)|鈴木ジョン@ゲーム開発
  • 【Unity】簡単にできる! カメラの複数アスペクト比対応2D(全7パターン)|鈴木ジョン@ゲーム開発

    こんにちは、鈴木ジョンです。 今回も前回に引き続き、カメラの複数アスペクト比対応についてまとめたので公開します。 今回の記事は、2D用のカメラを対象にしています。 (カメラのProjectionの設定がOrthographic) 3D用のカメラ(Perspective)はこちらから 一目でわかる! カメラの複数アスペクト比対応3D(全7パターン) はじめにパターンごとに比較画像とサンプルコードを用意しました。サンプルコードはカメラにアタッチするなどして使ってください。すべて9:16をベースのアスペクト比としています。 【デフォルト】 高さ固定+幅可変 どの端末でも高さ方向の表示量は同じです。アスペクト比によって、幅方向の表示量が増減します。 デフォルトなのでスクリプトは必要ありません。 幅固定+高さ可変 どの端末でも幅方向の表示量が同じです。アスペクト比によって、高さ方向の表示量が増減しま

    【Unity】簡単にできる! カメラの複数アスペクト比対応2D(全7パターン)|鈴木ジョン@ゲーム開発
  • 【Unity】それは危険! シーン間でデータを安全に共有する方法|鈴木ジョン@ゲーム開発

    こんにちは、鈴木ジョンです。 今日は、Unityのシーン間でデータを安全に共有する方法を、解説していきたいと思います。 なぜこんな記事を書こうと思ったかと言うと、シーン間でデータを共有する方法、これをGoogleで調べても、恐ろしいほど、その方法が出てこなかったからです。 検索して出てくる記事は、なぜか、安全ではない方法ばかりが勧められていました。もちろんその方法でも動くことは動くのですが、バグの原因になってしまったり、テストがしにくかったり、とデメリットも多いです。 安全ではないシーン間のデータの共有方法・staticなオブジェクトを使用 ・DontDestroyOnLoadを使用 ・シングルトンパターンを使用 ・PlayerPrefsを使用 これらの方法はいずれも、どこからでもアクセスできるオブジェクト、すなわちグローバルなオブジェクトを持つ方法になります。 単純です! 簡単です! 楽

    【Unity】それは危険! シーン間でデータを安全に共有する方法|鈴木ジョン@ゲーム開発
  • Unity シーン遷移の機構を作った話 - Qiita

    今回の話 自分が過去に開発したゲーム、及び現在開発しているゲームで利用しているオレオレシーン遷移管理機構の紹介です。 何かの参考になれば。 (こういう「蓋絵」を上に重ねて画面を隠している間にシーン遷移するアレです) シーン遷移管理機構 必要なもの 必須 UniRx : イベント発行、コルーチンのタイミング制御に必要 別のもので代用可能 Easy Masking Transition : トランジションエフェクトの再生に利用 Easy Masking Transitionは有料アセットです。無料で実装したい場合はテラシュールブログさんなどを参考に自分で実装する必要があります。 備えている機能 シーン名を指定して遷移 マルチシーン読み込み シーン間のデータ共有 蓋絵を表示したまま一時停止&任意のタイミングで解除 シーンロード完了イベントの発行 トランジションアニメーション終了イベントの発行 シ

    Unity シーン遷移の機構を作った話 - Qiita