原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【Unity】ParticleのRenderingModeについて

水泡に帰す

気合を入れてゲーム開発をしていたのに、うっかりシーンをセーブすることを忘れて三時間の苦労が水の泡となった皆さんこんにちは。

また同じ作業を同じ時間だけしなきゃいけないと考えると全くモチベーションが上がりません。

 

あと、Kingdom of AmalurのPS4リマスター版を購入しました。難易度選択が「イージー → ノーマル → 困難 → ベリーハード」なのがツボです。

まぁ、UIの翻訳とロード時間以外は神ゲーなんですがストーリーはちっともわかりません。

 

タイトル画面を修正

そんなこんなで週末はゲーム本編を作るのが億劫になったので、気分転換も兼ねてタイトル画面の変更を行っていました。

変更前はunity1weekに間に合わせるために適当に作ったので非常にシンプルな画面でした。

 

f:id:Karvan:20200915220654p:plain

こんな感じ。白地にタイトル文字だけ

 

これだけは味気ないのでアセットストアから画面全体に光子が散らばるようなパーティクルのアセットを購入。

これをベースにして白の背景に黒い光子が漂うような感じに変更しようと挑んだわけです。

 

f:id:Karvan:20200915220745g:plain

これがベースとなったアセットのパーティクル

 

 パーティクルの色を変える

パーティクルの色変える場合、ParticleSystemのstartColorを変える、加えて、colorOverLifeTimeを使っていれば、そちらも変えればよいだけなので簡単に実装できる、と思ったのですが・・・

 

f:id:Karvan:20200915220915g:plain

んー、全然見えない・・・

試しにパーティクルのTextureの方も色を黒に変更してみても同じ状態で、光子が背景の白に溶け込んで全く見えません。

f:id:Karvan:20200915221201p:plainこの画像を

f:id:Karvan:20200915221224p:plain黒に変更してもダメ

 

調べてみるとParticleのRenderingModeも変更する必要があったようです

 

RenderingMode

RenderingModeとは文字通り3Dモデルのメッシュや2Dのイメージなどをレンダリングするモードの事で、MaterialのShaderの設定にあります。

当該のパーティクルは「Particles/Standard Surface」のシェーダーを使っており、このRenderingModeが「Additive」となっていました。

 

f:id:Karvan:20200915221645p:plain

 ■Additive

マテリアルのピクセルを背景のピクセルへ追加して描画するモードのようで、暗い背景の中で光輝くような表現をしたい場合に使用するため、重ねれば重ねるほど白へ近づくらしい。そりゃ今回のような白背景だと見えなくなるわ。

 

■CutOut

アルファテストによりアルファが「Alpha Cutoff」の値より小さい場所が完全に描画されなくなる。つまり半透明の領域がなくてテクスチャが100%見えるか見えないかのどちらかになる。

穴や細かいギザギザがあるようなものを表示するときに使うらしい。試しに今回のパーティクルをCutOutに変更してみると

 

f:id:Karvan:20200915221912g:plain

なるほど、白か黒か、のような世界になる

 

■Transparent

ガラスみたいな半透明な物質に使用する。背景が透過しながらも光源からのハイライトや反射などは表示されるようなります。

Transparentに変更するとこんな感じです

f:id:Karvan:20200915222029g:plain

パッと見ると問題ないように見えますが、よ~く見るとテクスチャの元画像の枠がうっすら見えます。

 

f:id:Karvan:20200915222140p:plain

画像を拡大するとテクスチャの四角い枠が見えます(キャプチャ画像だと分かりづらいかも・・・)

 

■Fade

こちらも半透明を表現するときに使用しますが、Transparentと違いハイライトや反射などはなく、背景に溶け込むように表示されます。

今回の場合はこのModeを使うのが正解だったようです。

 

f:id:Karvan:20200915222250p:plain

画像を拡大、Transparentと違いテクスチャの枠が見えません

 

タイトル画面完成

というわけで完成したタイトル画面がこちら

f:id:Karvan:20200915222433g:plain

 

なんだかホラーっぽくなりました。全然ホラーゲームじゃないのに・・・(脱出ゲームです)

 

【Unity】DOTweenを使ってTextMeshの文字を動かす

台風

毎年のように発生する数十年に一度の巨大台風が今年もやって来て、窓ガラスに養生テープを張り、食料品の買いだめやらアレコレと準備をしたけど何事もなかった皆さんこんにちは。災害は心配し過ぎるぐらいが丁度いいですね。

 

TextMeshとDOTween

元々DOTween(Pro版のみ)にはTextMeshに対するTweenのメソッドが用意されていましたが、それらはText全体に対するアニメ動作を実装するもので、Textを1文字ずつ個別にアニメーションさせることはできませんでした。

しかし、最近のアップデートで文字個別に対するTweenのメソッドが実装されました。(Pro版のみ)

 

これは従来のTextMeshに対するTweenメソッドが拡張された(追加)というよりは、TextMeshをラップしたクラスを生成し、それに対してTweenを行う方式で実装されています。

このTextMeshをラップするクラスがDOTweenTMPAnimatorクラスです。

 

DOTweenTMPAnimator

前述のようにTextMeshの文字を個別にTweenさせるには、対象となるTextMeshをラップしたDOTweenTMPAnimatorクラスに対してメソッドを発行して行います。

 

TextMeshProUGUI MyTextMesh;

public void OnClick_Color()
{
    MyTextMesh.text = "Stab of Bee Project";

    // DOTweenTMPAnimatorの生成
    DOTweenTMPAnimator textAnim = new DOTweenTMPAnimator(MyTextMesh);
    textAnim.DOColorChar(0, Color.red, 2f);
    textAnim.DOColorChar(8, Color.red, 2f).SetDelay(0.3f);
    textAnim.DOColorChar(12, Color.red, 2f).SetDelay(0.6f);
}

 

上のソースの場合、MyTextMeshの0,8,12桁目の文字を赤色に変化させています。
また、順に変化させるためにSetDelayで8,12桁目には遅延が発生するように設定しています。

f:id:Karvan:20200908213720g:plain

 

個別に桁数をせずにforループを使用したい場合はtextInfo.characterCountを使うと文字数が取得できます。
よって、前から順に赤色に変化させたい場合はこんな感じのソースになります。

 

DOTweenTMPAnimator textAnim = new DOTweenTMPAnimator(MyTextMesh);
for (int iCnt = 0; iCnt < textAnim.textInfo.characterCount; iCnt++)
{
    textAnim.DOColorChar(iCnt, Color.red, 2.0f).SetDelay(0.1f * iCnt);
}

f:id:Karvan:20200908213837g:plain

 

その他のメソッド

色を変えるだけでなく他にも色々なメソッドが用意されています。 

DOTweenの公式のDocumentの「TextMeshPro per-character animation」の項目を見ると

 

  • DOFadeChar
  • DOColorChar
  • DOOffsetChar
  • DORotateChar
  • DOScaleChar
  • DOPunchCharOffset
  • DOPunchCharRotation
  • DOPunchCharScale
  • DOShakeCharOffsetadeOut
  • DOShakeCharRotation
  • DOShakeCharScale
  • SkewSpanX
  • SkewSpanYwRight
  • ResetVerticesShift
  • SetCharColor
  • SetCharOffset
  • SetCharRotation
  • SetCharScale
  • ShiftCharVerticeshtShift
  • SkewCharX
  • SkewCharY

これだけのメソッドがあります。代表的なものを紹介すると

 

■DOOffsetChar

文字のOffset値を変えることで文字を平行移動させることができます。
例えば文字を順に上へ移動させる場合は

DOTweenTMPAnimator textAnim = new DOTweenTMPAnimator(MyTextMesh);
for (int iCnt = 0; iCnt < textAnim.textInfo.characterCount; iCnt++)
{
    textAnim.DOOffsetChar(iCnt, Vector3.up * 30.0f, 1.0f).SetDelay(0.1f * iCnt);
}

f:id:Karvan:20200908214716g:plain

他にも、Rotate(回転)、Scale(拡大縮小)など通常GameObjectに対するTweenと同じ様なメソッドもあります。

 

 ■DOPunchCharOffset

ゲーム内のUIとして使用するならPuch系のメソッドの方が使い勝手が良いかと思います。

Puch系とは同じアニメ動作を減衰しながら繰り返してくれる動作で、最後には開始位置に戻ってきて来れます。

先程のDOOffsetCharをDOPunchCharOffsetに変えた場合

DOTweenTMPAnimator textAnim = new DOTweenTMPAnimator(MyTextMesh);
for (int iCnt = 0; iCnt < textAnim.textInfo.characterCount; iCnt++)
{
    textAnim.DOPunchCharOffset(iCnt, Vector3.up * 30.0f, 1.0f, 1).SetDelay(0.1f * iCnt);
}

f:id:Karvan:20200908215057g:plain

第四引数は振動回数を指定します(未設定の場合は10)。

 

 ■DOPunchCharRotation

回転させる場合はDOPunchCharRotationを使います。

DOTweenTMPAnimator textAnim = new DOTweenTMPAnimator(MyTextMesh);
for (int iCnt = 0; iCnt < textAnim.textInfo.characterCount; iCnt++)
{
    textAnim.DOPunchCharRotation(iCnt, Vector3.up * 90.0f, 2.0f, 2).SetDelay(0.1f * iCnt);
}

 

f:id:Karvan:20200908215607g:plain

 

 ■DOFadeChar

文字をフェードイン、アウトさせたい場合はDOFadeCharで不透明度を変更することで実装します。

DOTweenTMPAnimator textAnim = new DOTweenTMPAnimator(MyTextMesh);
for (int iCnt = 0; iCnt < textAnim.textInfo.characterCount; iCnt++)
{
    textAnim.DOFadeChar(iCnt, 1.0f, 2.0f).SetDelay(0.1f * iCnt);
}

第二引数に最終的なアルファ値を指定します。上のソースでは文字が前から順にフェードインします。

f:id:Karvan:20200908215757g:plain

 

これを使って

折角なので現在制作中のゲームにも使ってみることにしました。

アイテムを取得した時のメッセージに対してこれまでは文字全体をフェードアウトさせていましたが

f:id:Karvan:20200908215843g:plain

 

DOTweenTMPAnimatorを使って一文字ずつ左に移動させながらフェードアウトするように変更

f:id:Karvan:20200908215927g:plain

こちらの方が良い感じですね

【Unity】DOTweenのSetLookAtオプション

残暑

今年の夏はあまりに猛暑なので首掛けの扇風機を購入して通勤中に使っていたら、満員電車の中で目の前の女性の髪を吸い込んでしまい大変なことになった皆さんこんにちは。幸いスイッチを切ったらすんなり解けたので良かったのですが、めっちゃ睨まれた。

 

unity1week

評価期間が終わり結果が発表されましたが、相変わらずお絵かきガチ勢が強いなぁという印象です。特に奇麗なピクセルアートを見せる作品は評価が高く、絵作りの強さが楽しさや雰囲気、斬新さといった他部門の評価も引っ張り上げている傾向。見た目は大事ですね。

ジャンル的には製作期間が一週間という短い期間のため、いつもはパズルや2D横スクロールといったジャンルが多いのですが、今回はガッツリとしたAVGや疑似3Dっぽいアクションゲームもあったりしてバラエティに富んでいました。

まぁこれは評価期間が二週間に伸びたので、その分を製作期間に充てて製作する人が多かった事も一因かもしれません。

ちなみに私の作品は箸にも棒にも掛からぬ、といった具合だったので特に述べることはないです。

 

段々と投稿数が増えたり(今回は500!作品)、チームを組んで挑む人が増えたり、と盛り上がり傾向にあるunity1week
レベルが上がり過ぎてビビるんですが、これからも出来るだけ挑戦していきたいと思います。

 

みんなの味方DOTween

さて、製作中の脱出ゲーム内で下の図のようなギミックを作っています。

 

f:id:Karvan:20200901222449p:plain

下のほうにある列車のおもちゃを線路に沿って走らせるのですが、こういう場合に使えるのがみんなの味方DOTweenのDOPathというメソッドです。

 

var doPath = transform.DOPath(path, duration);
var doLocalPath = transform.DOLocalPath(path, duration);

 

pathはVector3の配列です。(Listじゃない)

pathで指定された座標(WayPoint)を順に向けて移動するアニメーションを作成できます。

なので、あらかじめ線路上に列車の通るポイントを指定しておいて、各車両のtransformにDOPathを使用して移動させるようにします。

 

 下の図内の青い四角がDOPathで指定するポイント

f:id:Karvan:20200901222616p:plain

 

で、実際に動かしてみると

f:id:Karvan:20200901222754g:plain

・・・・・

確かに線路上を移動していますが、明らかに脱線しています。各車両が進行方向に沿って回転していないのが原因です。
つまり進行方向に向かわせる処理が必要なのですが、そうしたときにはSetLookAtオプションを使用します。

 

SetLookAtオプション

その名の通り、Tween中のオブジェクトの向きを動的に更新してくれる設定です

 

var doPath = transform.DOPath(path, duration).SetLookAt (0.05f, Vector3.forward);

 

第一引数で指定した秒数先の方向が第二引数で指定した向きになります。
上のコードの場合なら、正面方向が0.05秒後に移動する位置の方向を向く、という指定になります。

 実際に動かしてみるとこんな感じ

f:id:Karvan:20200901223118g:plain

 

各車両が進行方向に沿った向きを向いてくれるようになりましたが、カーブ辺りの動きに違和感があります。連結部分が切れるような感じ。

こういった場合には、第一引数の値を小さくします。調べると最小値は0.0001fらしいので思い切って0.001f辺りを指定します。

 

f:id:Karvan:20200901223307g:plain

今度はカーブでもスムーズな動作になりました。

 

【雑記】STGを作り直している話

デジゲー博

今年こそはデジゲー博に出展しようかと思っていたのにコロナ禍の収束の兆しが見えないのでどうしようか迷っている皆さんこんにちは。

いつも「行ってみたいなぁ」と思っていたのですが今時は東京へ行くこと自体が憚れる情勢で、11月末ともなると第二、三波が来ている恐れもあるので判断に迷うところです。

 

unity1week

夏休み期間という事もあってunity1weekの方は過去最高の投稿数(今のところ450オーバー)となっており、評価期間が一週間延長されています。

私のゲームも半ば強引な形ですが参加させて頂いていますが、案の定、450もある作品群の中に埋もれきっていて閲覧数も伸びていません。

やっぱり毎回頻繁に上位にランクインされている常連さんの作品や初参加でもレベルが高い作品が多々あって、それらと比べ自分の作品を鑑みると反省しきりです。

 

まぁ、比較的パッと遊べる脱出ゲームとなっているので、是非遊んでみてください。(PCで遊ぶことが出来ます)

unityroom.com

 

450もあるので全ての作品を遊んだわけではありませんが、ランダムにプレイした中で私が個人的に気になった作品を紹介すると

 

コロコロポン | フリーゲーム投稿サイト unityroom

クリックで転がっている四角を増やしながらゴールに導くゲームです。
いわゆるカジュアルゲームですが、シンプルで洗練されているゲームデザインには憧れます。

 

ヒメをゴールへつれてって | フリーゲーム投稿サイト unityroom

毎回ピクセルによる絵作りが凄いRyosukeさん
今回もGBを思わせるようでオシャレな画面構成
増えていく仲間を利用して仕掛けを解除しながらゴールへ向かうパズルゲームです。

 

がんばれ!ソラコくん | フリーゲーム投稿サイト unityroom

こちらもunityroom常連のフィズさん
立体的なステージをジャンプアクションで進みアイテムを集めるゲーム
スプライトでここまで立体的に作れるのかと驚きました、とにかく作りこみが凄いです。

 

かたぐるまクローンズ | フリーゲーム投稿サイト unityroom

分身を増やして位置を入れ替えながらゴールへ向かうパズルゲーム
ジャンプの代わりに分身を積み重ねて位置を入れ替える、といった操作を思いついたのが凄い
各ステージのレベルデザインも秀逸です

 

SAMURAI・THE・WORLD | フリーゲーム投稿サイト unityroom

ジョジョの「THE WORLD」よろしく、範囲内に入った敵の動きを止め、コマンド形式で敵を切っていくゲーム
敵をバッサバッサと切っていくのは爽快感があります。

 

UNITEMAN | フリーゲーム投稿サイト unityroom

ステージ最後尾にいる敵にたどり着く前に武器を集め、その武器を「投げつける」ことで敵を倒します。
武器の挙動、軌道にはそれぞれ個性があるので、投げる時にそれを把握しておく必要があります。
意外と中毒性があってハマります。

 

隕星アルファルズ | フリーゲーム投稿サイト unityroom

ぞくぞくするようなカッコよさ。厨二病っぽい世界観もSTGに非常にマッチしています。
2Dと3Dの中間のようなフラットな絵柄のゲームは私も目指しているところなので参考にさせて頂きます。
あと難しい。

 

そんなこんなで

unity1weekの投稿作品で遊んでいたせいでゲーム制作の進捗はあまり進んでいないのですが、脱出ゲームの製作と並行して去年一年間作っていた2.5DSTGの作り直し作業も進めています。

作り直しとなった原因は色々あるのですが、一番は作家性(自分がこう作りたいんだ、という仕様)を強く意識しすぎて、ゲームとしては楽しくない事に気づいたことでしょうか。

 それに加えて、今年の初めunity1weekに投稿した作品(Helios Orbit)が自分の中ではよく出来た作品だったので、こちらをベースに作り直したほうが面白い物が作れるんじゃないかと。

結果として去年一年の作業は実を結びませんでしたが(エターなる?)、これまでの資産が活用出来たらな、と思っています。

 

こんな感じのゲームになります。

f:id:Karvan:20200825220213g:plain

今週はSTGらしく自機から弾丸を発射できるようになりました。

 

【Unity】unityroomにアップロードしたのにゲームが起動しない場合の対処

口を開けば愚痴ばかり

これまで幾つか作成したゲームをunityroomに公開していますが、思った以上に閲覧されなくて評価もコメントも殆どもらえない皆さんこんにちは。

同じ時期に投稿された他のゲームと比べても閲覧数は伸びてないと感じるし、まるでサムネ画面に人を寄せ付けないオーラでも放っているんじゃないのかと思うぐらい。

今回はunity1weekにも半ば強引に参加してみましたが相変わらず閲覧数は少な目です。

 

評価が欲しいと言うよりは不具合や改善点等の第三者の意見を求め、unityroomで公開しているのですが狙った通りには行かないみたいです。

もしよろしければ、以下のリンクから飛べるので何かしらコメントをお願い致します。

unityroom.com

 

自作ゲームをunityroomで公開する

さて、unityroomで自作ゲームをアップロードして公開するには

  1. プロジェクトのプラットフォームをWebGLに変更、Buildを実行
  2. unityroomのアカウントがない場合は開発者アカウントを登録
  3. 投稿ゲーム用のページを新規登録し、情報(タイトルとか説明文等)を入力
  4. 手順1でBulidフォルダに出力された各ファイルを専用ページから順次アップロード

という手順を行います。

 

アップロードが終われば、手順3で指定したURLを開くとゲームがダウンロードされて遊ぶことが出来るのですが、今回の「W.T.」をアップロードした時はちょっとうまく起動されませんでした。

 

ダウンロードのローディングバーが伸びたと思ったら、「An error occurred runnning the Unity content on this page,・・・」のポップアップメッセージが表示され、80%ぐらいローディングバーが伸びた状態のままでいくら待ってもゲームが開始されません。


最初は「ネットワークが混んでいるのかなぁ、夏休みだしなぁ」とか気楽に考えていたのですが・・・

 

1時間

f:id:Karvan:20200818222249p:plain

 

2時間

f:id:Karvan:20200818222319p:plain

 

3・・・

f:id:Karvan:20200818222346p:plain

 

というわけで、ちょうどGhost of Tushimaをクリアしたタイミングだったこともあり、重たい腰を持ち上げて調査することにしました。

 

調査と対処

表示されているエラーメッセージは「このページのUnityコンテンツの実行中にエラーが発生しました。詳細については、ブラウザのjavaspriptコンソールを参照してください。」と何の役にも立たないメッセージなので、手掛かりを求めてunityroomの質問掲示板を覗きます。
すると意外と同じような問い合わせがあってラッキーでした。

 

原因は単純なことで、アップロードファイルが違う事。

プラットフォームがWebGLの場合、Bulidフォルダに幾つかファイルが出力されますが、unityroomで指定するwasm.framework.unitywebファイルでなく、asm.framework.unitywebファイルが出力されており、このasmのファイルをアップロードしていたことが原因でした。

 

wasmでなくasmのファイルが出力されるのはBuild設定のせいですが、これはUnityEditor上で指定するものではなく、ProjectSettings/ProjectSettings.assetファイルで指定する設定です。

 

f:id:Karvan:20200818222707p:plain

このProjectSettings.assetファイルをテキストエディタで開くと"webGLLinkerTarget:0"という設定が記載されています。
「0」という値はasmを出力する設定なので、wasmを出力する場合には「1」を設定する必要があるようです。

 

f:id:Karvan:20200818222746p:plain

上のように「1」に変更する

 

バージョンアップが原因?

これまでWebGL版のビルドは何度が行っていますが上記の設定をいじったことはありません。

ちょうどUnityのバージョンを2019.4.6fから2019.4.7fにバージョンアップした直後だったので、2019.4.7fのデフォルト設定が"webGLLinkerTarget:0"だったのかもしません。

ただ、2019.4.7fから2019.4.8fにバージョンアップした直後にもBuildを行いましたが、こちらではwasm.framework.unitywebファイルが出力されました。

 

基本的にUnityのバージョンアップはこまめに行っているのですが、unity1weekのような短期間で開発を行う場合はリリースが終わるまでバージョンアップを控えたほうが良いかもしれません。

 

【進捗報告】unityroomに投稿した件

夏休み期間につき報告だけ

Ghost of Tsushimaをクリアしてしまい夏休み開始早々手持ち無沙汰になってしまった皆さんこんにちは。
コロナ禍もあり買い物にも映画にも出掛ける事が憚れるので、仕方なくゲーム作りに専念しています。

 

f:id:Karvan:20200728222755g:plain

 

まぁ、そのおかげで開発中のゲームの一部をunityroomに公開するところまでこぎ着けました。

unityroom.com

 

上の動画通り、3Dの探索型の脱出ゲームです。

全5ステージの予定ですが、unityroomで投稿できたのは最初のステージのみとなっています。(残りは現在開発中)

 

1ステージだけなので10分ぐらいで終わると思います。
不具合や改善点等の意見を今後の開発の参考にしたいと思っていますので、上のリンクのコメント欄に投稿して頂けると幸いです。

 

unity1week開催

現在、unity1weekが開催されています。

unityroom.com

今回のお題は「ふえる」だそうで、私と同じく暇を持て余している開発者の方は暇つぶしがてら参加してはいかがでしょうか。
私は先ほどのゲームにお題に沿った構成のステージでも追加して見ようかと思ったり・・・

 

【Unity】アセット紹介:Look Animator

終わらない夏

長かった梅雨がようやく終わって夏が始まったばかりですが、コロナ禍が全く収まる気配がないのでたとえ夏休みでも何処にも行けないし行く予定もない皆さんこんにちは。部屋に閉じこもるしかなさそうですね。ハイそこ、通常通りとか言わない。

 

IKと言えば

Unityで「IK」と言えば「Inverse Kinematics」の事を指します。階段を登る歩幅を合わせたり、物を掴む指の動きを合わせたり、細かなアニメ動作を表現するために使われる技術です。

 

この技術を実装するアセットでは「Final IK」というアセットが有名で、先程の足幅や指、腕の制御だったり、2本足用,4本足用,射撃モーション用など様々なIKコンポーネントが含まれている非常に有用なアセットなのですが、なにせ価格が90ドル(消費税を含むと99ドル)と高いのでなかなか手が出ません。

 

なので、「Final IK」のように体の各部位の制御は必要なくて、首や顔の制御だけで良い、という方に紹介するのが今回取り上げる「Look Animator」となります。

assetstore.unity.com

 

 Look Animator

このアセットはアセット名の通り、首や顔の視線制御に特化したアセットです。
ヒューマノイド(人型)だけでなく、トカゲや蛇のような多関節のモデルにも対応しており、Generic、Humanoid、およびLegacyのすべてのリグで機能します。


また、セットアップはヒューマノイドなら顔のボーンと視線先の対象物を設定するだけなので非常に簡単で、価格も11.99ドルで「Final IK」よりはお手軽な値段かと思います。

 

www.youtube.com

 

 導入は簡単

Hierarchyで対象となるオブジェクト(モデル)を選択したら、メニューからComponent→FImpossible Creations→FLook Animatorを選択します。

f:id:Karvan:20200804212953p:plain

 

FLook Animatorコンポーネントがオブジェクトに追加されるので、Charactor Setup欄のLead bone/Headの項目で顔のボーンを指定します。

f:id:Karvan:20200804213031p:plain


ここでモデルの構造が複雑(子オブジェクトが多数)で顔のボーンがどれか分からないときは「AutoFind」ボタンを押します。
このボタンで自動的に顔のボーンを探して設定してくれます。

 

次に視線先の対象物をTweak Animation欄で指定します。
Object To Followの項目(黄色い網掛けの項目)にシーンビューから対象物をDrag&Dropします

f:id:Karvan:20200804213121p:plain

 

これで基本的な設定は終わりです。
多関節のモデルや、ヒューマノイドでも首と一緒に肩等も動かしたい場合はCharactor Setup欄のAdditional Spine Bonesの項目で追加、視線を動かす動作の細かい修正は先程のTweak Animation欄で設定を変更します。

 

使用例

基本設定を終えて実際に動かすとこんな感じになります。

f:id:Karvan:20200804213320g:plain

 

ヒューマノイドにはアイドル動作のアニメーションが設定していますが、Look Animatorによる視線の移動もアイドル動作と違和感なくブレンドできていると思います。

 

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。