サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
www.urablog.xyz
最近暑くなってきましたね。 今回はそんな夏の暑さを吹き飛ばすべく、Rigidbody.AddForceAtPosition()を使ってオブジェクトを吹き飛ばしていこうと思います。 きっと暑さは吹き飛ばないでしょうけど……。 この記事にはUnity2017.1.0f3を使用しています。 AddForceAtPositionって何だろう? AddForceAtPositionで指定する位置について まとめ AddForceAtPositionって何だろう? Rigidbody.AddForceAtPosition()とは何なのでしょうか。 僕自身、あまりRigidbodyを使ってきていないので、少し調べて見ましょう。 Rigidbodyの有名どころにAddForce()がありますよね。 docs.unity3d.com これを使うと、指定した方向に飛んでいきます。 using UnityEng
僕は今NavMeshを勉強しているんだ。 分からないことばかりだけど、一生懸命頑張って勉強しているよ。 今回はエリアとコストについて勉強するよ。 さあ、今日も頑張るぞー。 この記事にはUnity2017.2.0f3を使用しています。 前回を振り返ってみよう 巡回してみよう エリアを作ってみよう コスト設定してみよう 追いかける敵を作ってみよう 入れないエリアを作ってみよう 今日の勉強終了 前回を振り返ってみよう 前回はNavMeshObstacleを使うことで障害物を作成することに成功した。 www.urablog.xyz 巡回してみよう 今回はNavMeshのエリアとコストについて勉強したい。 docs.unity3d.com 勉強を始める前に、同じルートを通り続ける挙動を作っておく必要がありそうだ。 前回作ったスクリプトを改良し、複数の目的地を順番に移動するスクリプトを作成しよう。 u
Unityで作ったゲームが、外部の実行ファイルを起動しなきゃいけないとき、たまにあるよね。 うん、僕は最近あったんだ。先月のゲームジャムのときにね。 ただ何も考えずに外部の実行ファイルを起動する処理を作成してしまうと、エディタで遊ぶ時と、実行ファイルで遊ぶ時で処理が違ってしまい、痛い目を見ることもあるからね。 うん、僕は最近あったんだ。先月のゲームジャムのときにね。 というわけで今回は外部の実行ファイルをUnityプロジェクトに含めてビルド出力時にビルドに含めるようにすることをやっていきます。 僕はMacを持っていないから、今回の記事の起動テストはWindowsでしか行っていないので悪しからず。 時間があるときに、自分の知っている情報をきちんと纏めておかないと、その情報が必要な時にテンパって、うまく生かせないことがあるからね。 うん、僕は最近あったんだ。先月のゲームジャムのときにね。 この
オンラインマルチプレイゲームが作ってみたいなぁー……、と唐突に思ってきました。 というのもUnityまとめにまとめられている情報の中に、ときおりPhotonの使い方をレクチャーしてくれているブログを見かけることがあります。 Photon……、Unityと組み合わせることで簡単にオンラインマルチプレイゲームが作れるという話は以前からいろんなところで聞いていたのですが、なかなか手を出せずにいました。 せっかくだからPhotonを使ってゲームを作ってみようではありませんか。 Photonの内容のブログなんて何番煎じかわからないぐらいなので、味の薄ーい話になりそうですけど。 この記事にはUnity5.4.1f1及びPUN1.75を使用しています。 PUN Assetをインポート、そして再生 なんとなく繋げた気がする。ただ…… いろいろあるよ、Connect()関数 ConnectToMaster(
京都で行われるUnity技術者の集いである京ゆににて、アセット読書会なる会が開かれました。 kyotounity.doorkeeper.jp 各自好き勝手Unityを触っているもくもく会とは違い、Unityの特定の技術を一緒に勉強していこうよ、という会です。 僕のような残念な頭しか持っていない人間にとって、とても助かる勉強会です。 記念すべき第一回の読書会では、Job Systemについてです。 ちょうど読書会の開催一週間前ぐらいにテラシュールブログ先生がJob Systemを解説してくださったこともあり、読書会はとてもスムーズに進みました。 tsubakit1.hateblo.jp 一人でやる場合なら三週間ほどかけて学ぶことも、このような会で学ぶことで三時間ほどで学べるというのは素敵なことですね。 やはり集中力が違います。 現に読書会の感想であるこの記事を書くまでに三週間掛かっていますし
ゲームジャム中の会話にて 「では僕の方で、音の挙動を制御するサウンドマネージャー的なものを作っておくよ。」 「サウンドマネージャーですか。それなら後でもよくありませんか。」 「おや、どうしてだい?」 「だって、そういうゲーム中でずっと必要なものって、全シーンに置かなくちゃいけないじゃないですか。まだ全てのシーンが揃っていませんし後でもよくないですか。」 「いや、全てのシーンに置く必要はないかな。ゲーム開始時に生成し、DontDestroyOnLoad()を使えば、 シーンが切り替わっても存在し続けるよ。」 「でもそうすると、必ずタイトルシーンから実行しなくちゃいけないじゃないですか。ゲームシーンのテストが面倒になります。」 ふむ、なるほど。 「ゲーム開始時に生成する」という点を、「ゲーム開始時のシーンに必要なものを配置しておく」と捉えられてしまったか。 そうじゃないんだ。 今回僕が使うのは
来週に再び、1週間ゲームジャムが開かれるみたいですねー。 次回は 05/22(Mon) 開催 | Unity 1週間ゲームジャム #unity1week https://t.co/XuECBWX89b 皆様お疲れ様でした!多くの方に好評いただけたようなので、しばらくは月1で開催していきたいと思います。— unityroom (@uni_rm) 2017年5月1日 先週はUniteがあったり、今週にはビットサミットがあったりと最近はイベントが目白押しですね。 ただ、新しい技術や知識を習得するのも良いのですが、振り返ることも大事です。 前回の1週間ゲームジャムで組み込みたかったものがあったんですよ。 それを今回振り返っていこうと思います。 最終的には、学生時代のことを振り返るはめになるのですが……。 もっと学生時代に勉強しておけばよかったなぁー……。 この記事にはUnity5.6.1f1を使用
僕はNavMeshを使ったことがない。 Unityをぼちぼち使ってきているのにも関わらず、NavMeshを使ったことがない。 そんな僕は、きっとみんなからバカにされているに違いない。 勉強しよう……。 この記事にはUnity2017.1.2f1を使用しています。 ドキュメントは読むさ メニューが無いんだが 焼けないのだが 動かないのだが いじってみるのだが 終わったのだが ドキュメントは読むさ まず、ドキュメントを読むことが大切だ。 ドキュメントを読めば八割がたNavMeshを理解したといっても過言ではないだろう。 さっそく読んでみる。 docs.unity3d.com 読み終わった。 気分はNavMeshマスターだ。 とはいえ、日本語のドキュメントはUnity5.4時代のものだ。 情報が古いかもしれない。 ここは最新の情報として、今年のUniteであったNavMeshのセッションの動画を
僕は人生においてまだ自分のドッペルゲンガーに会ったことがない。 まあドッペルゲンガーに会ったら死ぬらしいから会いたくはないけど。 そして、僕はまだ分身することが出来ない。 僕の中には十三尾が封印されているはずなので、チャクラは足りるはずなんだけどそれでも分身が出来ない。 そんな山も谷もない人生で出来ていないことを、Unity上でやってみよう。 僕の人生に何かを期待するより、ゲームでも作っていたほうがいいや。 この記事にはUnity2017.3.0f3を使用しています。 はじめに シンプルなDiffuseシェーダーを作る 描画する頂点位置をずらしてみよう いっぱいドッペルゲンガーを作ってみよう スクリプトでマテリアルのパラメーターを設定する カメラに映らないとき そもそもバグがあったよ おわりに はじめに さて、オブジェクトを複数描画したいならGameObjectが複数あればこと足りるもので
先日、デジゲー博に行った際に購入した「Unityマニアックス」。 bootlegstore.stores.jp これは、とても勉強になる。 なかでも特に気になったのが、この部分だ。 using UnityEngine; public class TestComponent : MonoBehaviour { private void Start() { PrintEnumList<EPet>(); PrintEnumList<ELanguage>(); } private void PrintEnumList<T>() where T : struct { System.Type type = typeof( T ); T[] values = (T[])System.Enum.GetValues( type ); Debug.LogFormat( "{0} enum list.", ty
ゲームを皆で遊べば楽しいですよね。 複数人で遊べるゲームを作る場合、一画面に収まるタイプのゲームならいいのですが、プレイヤー一人につき一画面必要な場合だってあるわけです。 そうなると、画面をプレイヤー人数分で分割するか、プレイヤー人数分のディスプレイを用意して表示する必要がありますね。 なんとなくやってみましょう。 まあ、ぼっちの僕には何も関係のない話ですがね。 この記事にはUnity2017.2.0f3を使用しています。 画面を分割する 複数のディスプレイに表示する 試してみた 画面を分割する まず画面を分割してみましょう。 CameraコンポーネントのViewportRectの値を変更することで、カメラの画面表示位置とサイズを変更できます。 ちなみに、Viewportは左下が(0,0)、右上が(1,1)になりますよ。 下記の画像のように値を設定すれば、ディスプレイの左四分の一にカメラの
ゲームを作っていると、いろんなパラメータが必要になってきますよね。 敵の最大体力、各ステージの制限時間、デフォルトの移動速度、最大で植えれる髪の毛の数……、などなど。 各キャラクターなど一つ一つ異なるパラメータを設定する必要があるときもあれば、共通で使いまわすパラメーターもありますよね。 今回は共通で使いまわすパラメータを、ScriptableObjectを使ったパラメータテーブルを利用する方法について紹介します。 僕がゲームジャムなどでよく使う手法の一つです。 この記事にはUnity5.5.2f1を使用しています。 ScriptableObjectって何だろう ScriptableObjectを使っていいことあるの? ScriptableObjectを作ってみよう staticのInstanceプロパティを追加して、どこからでも参照できる形に アセットはオリジナルを使うかコピーを使うか
2021-12-07 ローカル対戦ゲームを作ったけど、CPU戦用のAIも必要なことを強く感じたお話 ゲーム開発 デジゲー博 Unity 今日の記事は「ゲーム制作者が自由な記事を作るAdventCalendar2021」の12/07参加記事です。 先日開催されたデジゲー博2021に出展した「ギッタンバッタンバトル」のお話です。 #Unity #ゲーム開発 2021-11-06 【Unity】 色の16進数情報とタグを使ってカラフルな人生を送る Unity Unity-Utility ColorUtility と使ったお話。 ColorUtility を初めて使ったわけでもないのですが、このクラスの存在をよく忘れてしまうのでメモ書き。 #Unity #ゲーム開発 2021-11-05 【Unity】 セーブファイルのパスを開くメニューを作る Unity Unity-Editor 指定したパスを
現実世界の自分の敵はなかなか見つけにくいけど、ゲームの中ではサクッと敵を見つけ出したいものです。 というわけで今回は索敵機能を作ります。 敵、どこにいるのかなぁ、僕の敵。 この記事にはUnity2017.2.0f3を使用しています。 索敵するモノとされるモノ 僕らは近くにあるものは何でもわかるんだ でも僕らは念能力者ではないんだ でも僕らは透視能力者ではないんだ 結局僕らの敵はなんなのだろう 索敵するモノとされるモノ まずは索敵処理を記述するスクリプトを作りましょう。 SearchingBehavior.cs using UnityEngine; using System.Collections.Generic; public class SearchingBehavior : MonoBehaviour { public event System.Action<GameObject> o
最近僕はNavMeshの勉強に力を注いでいます。 今回勉強するオフメッシュリンクでNavMesh基本的なことは一通り使えるようになるはずです。 これで僕だけ遠足のお昼ご飯の時に仲間外れにされることがなくなるはずだ! さあ、頑張るぞー。 この記事にはUnity2017.2.0f3を使用しています。 前回を学んだことを信じる オフメッシュリンクの力を信じる 自動生成できるという噂を信じる Jump Distance Drop Height 俺の方がうまく移動処理が作れることを信じる ワープ ジャンプ そして更なる高みへ 前回を学んだことを信じる エリアとコストを扱えるようになった。 www.urablog.xyz オフメッシュリンクの力を信じる オフメッシュリンクを学ぶ前に、前々回から使っている巡回用のスクリプトを組み込もう。 using UnityEngine; using UnityEng
こういう質問をされました。 「Vector3の関数にLerp()とSlerp()というものがあるんですけど、違いって何なんですか」 僕はこう答えました。 「そうだなぁ、SlerpはLerpにSが足されているだろ。LerpよりS(すごい)ってことさ!」 King of 適当な返しです。 若い子には、僕のような駄目な大人にはなって欲しくないな、と思いました。 少しLerp()とSlerp()について調べます……。 この記事にはUnity5.5.1f1を使用しています。 Lerpってなんぞ、Slerpってなんぞ LerpとSlerpの違いは? Lerp(線形補間)ってどんな補間方法をするの? Slerp(球面線形補間)ってどんな補間方法をするの? Slerpってどんな時に使うの? (おまけ)UnityでLerpやSlerpってどう使うの? Lerpってなんぞ、Slerpってなんぞ えーっと、確か
もう夏本番になってきましたね。 というわけで、今回はちょっと怖い話をしていこうと思います。 これは友達の友達から聞いた話なんですが……。 この記事にはUnity2017.1.0f3を使用しています。 冒頭 不滅 成仏 感想 冒頭 あるところにMonoBehaviourを使ったシングルトンクラスがいました。 using UnityEngine; public class Singleton : MonoBehaviour { [SerializeField] private int m_number = 0; public int Number { get { return m_number; } } public static Singleton Instance { get; private set; } private void Awake() { if( Instance != nu
シーンを管理するシステムを作りたいのですが、それにはまずUnityのSceneManagerについて詳しく知っておきたいものです。 ドキュメントを見る限り、LoadScene()ぐらいしか主に使ってないですね。 せっかくなのでこの機会に、SceneManagerで遊びつくしましょう。 この記事にはUnity5.6.0f3を使用しています。 Get関数と取得するSceneデータについて。 GetSceneByName() GetSceneByPath() GetSceneAt() GetSceneByBuildIndex() GetActiveScene() アクティブなシーンってなんぞ アクティブなシーンが無い状態ってあり得るの? SetActiveScene LoadScene() 既にHierarchy上にあるシーンは読み込めるのか 最初にHierarchy上にあるシーンとBuildS
こんにちは、うら干物です。 ネット上でコードを見ていたらInvokeという関数を見つけました。 てっきり自作された関数かと思いきや、MonoBehaviourの持つPublic関数でした。 うーむ、使ったことがない。 今回はInvoke関数について調べてみましたよ。 この記事にはUnity5.4.0f3を使用しています。 Invoke()は何する関数なの? Invoke関連の関数 Invoke() InvokeRepeating() CancelInvoke() IsInvoking() Invoke()は何する関数なの? この関数は何する関数なのでしょうか。 ドキュメントを見ると、指定した時間に指定した関数を呼び出すというもののようです。 おや、なかなか便利そうな関数ですよ。 同様のことをコルーチンなどでやろうとすると、そこそこのコードを記述する必要がありますもんね。 指定する関数には、
C#だとコールバック関数を簡単に設定できて便利ですよね。 C++を学生時代に使っていた際に関数ポインタなどでつまづいた覚えがあります。 C#ではデリゲートを使うことで簡単に設定できます。 さて、UnityではuGUIが出来たころからUnityActionとUnityEventというものが追加されました。 今まで.NETのSystem.Actionを使用していたところを特に考えもなしに置き換えていった記憶があります。 先日UnityEventの使い方についての質問をされた際に、UnityEventを詳しくわかって使っていないことに気づかされました。 うーん、よくありませんね。 というわけで今回はUnityEventについていろいろ調査してみました。 この記事にはUnity5.4.0f3を使用しています。 UnityActionとSystem.Actionの違いはなんなのさ uGUIのButt
こんにちは、うら干物です。 UnityのStandardalonやWebGL向けのゲームを完成した後、このゲームをスマホアプリとして移植したいなぁ、と思ったことはないでしょうか。 今の私がまさにそれです! とはいえ移植するとなると、操作周りを大幅に改良しなければなりません。 スマホにはコントローラーがありません。キーボードもマウスもありません。あるのはタッチパネルのみ。 そんなときUnityのStandardAssetに便利そうなAssetがありました。 その名もCrossPlatformInput。 今回はCrossPlatformInputについてお話ししたいと思います。 ちなみに今回は話が長くなりそうなので、記事をいくつかに分割しています。 この記事にはUnity5.4.0f3を使用しています。 Importしてみよう CrossPlatformInputをImportすると起こるこ
このページを最初にブックマークしてみませんか?
『徳島ゲーム開発ごっこ 技術ブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く