テラシュールブログ

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

回転とか移動とか拡大縮小とか

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

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

【Unity】キャラクターから見て対象への角度を「-180~180度」の範囲で求める

対象への角度を「-180~180度」の範囲で求めてみます。 アニメーションで右向き・左向きに曲がるといった際、どちら方向に曲がれば良いのかを求めたいときに使えます。 目次 角度を求める それは何をやっているの? せっかくなので(Root Motionで)向きを変…

【Unity】Cubeを跳ねさせる

今回は小ネタというか、やってみたと言うか…豆腐を跳ねさせるという内容です。 Cubeだって跳ねる とりあえず、跳ぶ! カーブを付ける 豆腐はフルフルする 関連 Cubeだって跳ねる ゲームの仮素材ランキングがあるとしたら、多分ブッチギリで人気No1はCubeでし…

【Unity】低解像度に設定したRenderTextureを使いつつ、クリックした位置にキャラクターを動かす

今回はRenderTexturerを使用しつつ、クリックした位置にRayを飛ばし移動させるアプローチについて色々と見てみます。 低解像度なRenderTextureでゲームを描画する Camera.main.ScreenPointToRayがおかしくなる Input.MousePositionの位置を補正してやる 関連…

【Unity】変化する地形で、マップから落ちないように移動させる手っ取り早い方法

学生のUnityプロジェクトでよく見るのが、主人公キャラクターが壁から落下したり、壁を貫通して移動したりする光景です。 それは「そういったゲーム」なら兎も角、RPGの移動パートのような「キャラクターを移動させる」事が目的の場合は出来れば避けて欲しい…

【Unity】スティックを倒した方向にキャラクターを向ける

昨日に引き続き、キャラクターの向きを変える奴です。今回はマウスの位置ではなく、スティックを倒した方向にキャラクターを向けてみます。 tsubakit1.hateblo.jp スティックを倒した方向にキャラクターを向ける スティックを用意 スティックの方向を向く、…

【Unity】キャラクターの向きをマウスのある方向に向ける(2D/3D)

今回は上から視点で、マウスのある方向にキャラクターを向けようと思います。 マウスの位置にキャラクターの向きを変える サバイバルシューターから学ぶ 地面からColliderを取っ払う 2Dの場合でも同じようにしてみる 2Dって画面だけで向きとれるんじゃね…? …

【Unity】同じモデルなのに片方だけベイクした影が汚い場合の対処法

【問題】上の画像には赤い2本の棒がある。これらは同じメッシュを使用している。これらの棒に影をベイクした際、左の赤い棒にかかる影はハッキリしているが右の棒にかかる影はボケている。このこの違いが発生する理由を記入欄にry。 【答】左の棒はスケー…

【Unity】【uGUI】Screenの座標とWorld(3D)座標の変換について

HUDのように、UIをキャラクターの上に表示する方法について、少し悩んだのでメモします。 World SpaceとScreen Spaceについて World座標をUIの座標へ変換する World Space を Screen Space Overlayへ World Space を Screen Space Cameraへ World SpaceをWor…

【Unity】オブジェクトの大きさを一括で変更する

オブジェクトのサイズを一括で変更します。 これは「ゲームのサイズを適正なサイズに設定する」事に特に効果があります。 Unityのボックスの1は1mとして扱われています。このため、物理演算を2dチックなゲームに組み込むと動きが「ふわっと」や「モッサリ」…

Unity上でMMDモデルを独自アニメーションで走らせる

MMDモデルをRoot移動の無い、独自のモーションで走らせる方法についてです。この記事は以前に書いたUnity内でMMDモデルを自由に走らせる手軽な方法 の続き的な位置づけです。 目次 目次 MMDモデルおよびモーションの登録 RootMotionとアニメーション スクリ…

Unity初心者が知っておくと少しだけ幸せになれる、シーンにオブジェクトを配置する時に使える18のTips+10

Unityエディタでオブジェクトを操作する上で、知っておくと少しだけ幸せになれるTipsを幾つか紹介します。個人的に重要と思うものには★を設定しました。 目次 目次 オブジェクトの操作に関するTips コライダーの上に載せる感じで配置する Vキー&移動で他モ…

Unityで画面の指定位置にモデルを移動させる

先日ゲームジャムでメンバーの一人が「3Dモデルを特定の位置に移動」させる事に四苦八苦していたので、作った。スクリプトを。 このスクリプトは指定したスクリーン座標へモデルを移動させる為の物です。スクリーン座標的に(x:45, y:0)の位置へモデルを移…

FreeLookCameraRigで超簡単なモデルビューワーを超簡単に作るのは超簡単

今回は簡単なモデルビューワーを作ります。 機能は単純にモデルを外から眺めるだけ。 今回もSample Assetsを使用します。 新 Standard Assets候補、Sample Assets (beta) - テラシュールブログ 新 Standard Assets候補、Sample Assets (beta) - テラシュール…

UnityのベクトルとQuaternionによる回転について

Quaternionでベクトルを回す Quaternionの加算 Quaternionを求める サンプル その他 Quaternionは回転情報です。transform.rotationに格納されています。 このQuaternion(回転)ですが、Vector3(ベクトル)と合わせると、Vector3を回転させる事ができます…

UnityのCameraが使う3つの座標系

目次 目次 3つの座標系 スクリーン座標 ワールド座標 ビューポート座標 各座標系を使用するケースと変換 WorldToViewportPoint ScreenToWorldPoint ViewportToWorldPoint 関連 3つの座標系 Unityの使用するカメラでは、3つの座標系があります。すなわち「ス…

Unityで接触したブロック達を吹っ飛ばす

物理演算的には正しくなくとも、表現的に物体がぶつかった時にふっとばすのはよくある事だ。また爆弾等でふっ飛ばしたい場合もある。そんな時は「周囲のコライダーを全部持ってきて、その中でrigidbodyがあるオブジェクトに対してAddForceを実行」みたいな事…

Unityで特定のオブジェクトをシーンビューから選択出来ないようにする

意外と知られていないことだが、シーンビューからオブジェクトを選択不可にする方法は2つある。一つ目はHierarchyViewから非表示にしてしまうこと。例えばLockObjectのように、アタッチしたオブジェクトの子オブジェクトを非表示にする事で、特定階層から下…

rigidbodyの落下位置を予測するには…

剛体の落下位置を物理学で予測する。 powerの分だけ左にふっとばす感じのソースコードを用意。rigidbody2dでもrigidbodyでも良い。rigidbody.AddForce(Vector3.left * power, ForceMode.Impulse); もしくは rigidbody2D.AddForce(Vector2.right * -power, Fo…

親オブジェクトのスケールを変化させても子オブジェクトを変化させたくない場合

Unityの親子構造では、子は親の影響を受ける。つまり、親のスケールが(2,1,1)みたいな場合、子は(1,1,1)でも実際は(2,1,1)のようになる。ただ稀に、親のサイズ比率の影響を受けたくない場合がある。例えば親オブジェクトを引き伸ばした状態で文字を置く等々…