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

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

【アセット紹介】現状では最速?のTweenアセット「LitMotion」

不慣れ

左手デバイスのボタンを右手で押してる不器用な皆さんこんにちは。購入して一週間以上経ちますが未だに不慣れで、ショートカットを登録したボタンを探す→右手でボタンを押す、の順で操作しており私の左手はちっとも活躍していません。まぁUnityでマウス操作をしながらキーを押す、というシチュエーションがあまり無い所為でもありますが。

 

フリーライドとリスペクトの間

フロムゲーが「ソウルライク」という名の下に多数の(特にインディー系の)ゲームから模倣されているように、ポケモンにおいても「ライク」としてカテゴライズされて一般化していれば、たとえ模倣の度合いが過ぎても大騒ぎには発展しなかったかもしれません。
しかし残念ながらこれまで「類似」とされてきたゲームの殆どが躓くか一時的なヒットに終わって「ライク」化するまでに至っていないので、今回のように「ぼくのかんがえたさいこうのポケモン」的ゲームが批判されるのは仕方のない事だなと思っています。

特に「ポケモン」に対して思い入れのあるファンにとっては、いくら制作側が「法的に問題ない」と強弁しても、日本で長らく愛されてきた強いIPをフリーライドしているようにしか見えないでしょうし、「ポケモン」に類似する「パル」に対して強制労働や虐待、殺害が行えるゲームデザインは許せないものでしょう。
私としては「クラフト要素のあるポケモン」「サバイバル要素のあるポケモン」というアイデアを具現化するというだけでもかなり凄い事だと思いますし、元ネタに対しても十分敬意を払っているように感じますが、今回の騒動は制作側がそれを世間一般に理解してもらえる為の努力が足りなかったのかなぁ、という感想です。

 

LitMotion

前回の記事で高速なTween系アセット「Magic Tween」を紹介しましたが、これと同じ作者の方が新しいTween系アセットを公開しています。

annulusgames.com

ECSを使用して高速化を実現した「Magic Tween」よりも更にECSの仕様に合わせて高速化を図ったアセットらしく、公開されたスペックでは「DOTweenの5倍以上、MagicTweenと比較しても1.5倍ほどと極めて高速」のようです。

このアセットの導入に必要な要件は以下の通り

  • Unity 2021.3 以上
  • Burst 1.6.0 以上
  • Collection 1.5.1 以上
  • Mathematics 1.0.0 以上

こちらのアセットもGitで公開されている為、導入する場合はGitURLを利用します。
UnityのWindowメニューからPackageManagerを開いて「+」ボタン > git URLからパッケージを追加してください

https://github.com/AnnulusGames/LitMotion/blob/main/README_JA.md

 

基本的な使い方

MagicTweenではDOTweenとほぼ変わりない使用法でTweenを生成することができましたが、こちらのLitMotionではECSのデータ指向に沿う為か全く違う指定の仕方でTweenを生成します。
具体的には

  1. floatやVector3等の値をTweenさせるMotionクラスを生成する
  2. MotionクラスでTweenされている値(floatやVector3等)の反映先を指定する
  3. LoopやEasing、完了コールバックなどのオプションはMotionの拡張メソッドで設定する

上記の手順でTweenを作成、実行します。
この為、ソースへの記述は以下のようになります。

var value = 0f;
LMotion.Create(0f, 10f, 2f)  // 開始値,終了値,動作時間
    .WithEase(Ease.OutQuad)
    .WithComplete(() => Debug.Log("Complate!"))
    .Bind(x => value = x);

上のソースの「LMotion.Create(0f, 10f, 2f)」の部分が「値をTweenさせるMotion」を意味します。
拡張メソッドの「WithEase」「WithComplete」でEasing、完了コールバックを指定しています。
最後の「Bind」の箇所で「値の反映先を指定」する事になります。
よって上のソースでは「valueの値が2秒で0から10へ変化し、完了後に"Complate!"というログを出力する」という動作となります。

LMotion.CreateでTweenさせる事が出来る変数の型は以下の通りです。

  • int
  • long
  • float
  • double
  • Vector2,Vector3,Vector4
  • Quaternion
  • Color
  • Rect

 

GameObjectを動かしたい

もっと具体的にDOTweenのようにGameObjectを動かしたい場合は、「Bind」の箇所でGameObject.transformのpositionに値を設定する事になります。

Transform target;

LMotion.Create(Vector3.zero, Vector3.one, 2f)
    .Bind(x => {target.position = x;});
上のソースだと「targetの位置を2秒で(0,0,0)から(1,1,1)へ移動させる」という動作になります、
ただ逐一、Bindの中で反映処理を記述するのは面倒くさいので、positionを動かす場合は専用のBindメソッド「BindToPosition」を利用します。

 

Transform target;

LMotion.Create(Vector3.zero, Vector3.one, 2f)
    .BindToPosition(target); // target.positionにバインドする

position以外にもLocalPositionやeularAngle,localScale等、専用のBindメソッドが幾つか用意されているので詳細は作者の方が公開しているドキュメントを確認してください。

annulusgames.github.io

 

注意点

ドキュメント方で作者の方も述べられていますが、高速化に特化して設計されたアセットであるためMagicTweenほどDOTweenと同様の機能を備えているわけではありません

特にSeqneuceは実装されておらず、今後も実装される事はないようなので、Tweenを組み合わせる場合はコルーチンやUniTask等を使用して自力で組み合わせる必要があります。
また、オプションについても残念ながら相対的(Relative)なTweenを指定するオプションはないので、相対的な動作をさせたい場合はそれを踏まえた値を指定するか、Bindの拡張メソッドを作成する事になります。
Bind拡張メソッドについて上記のドキュメントで具体的な実装方法が書かれているので、試しに相対的な移動(RelativeMotion)についてBind拡張メソッドを作ってみました。

 

まとめ

上記のように記述方法がDOTweenとは大きく異なるため、MagicTweenのようにDOTweenから直接的に移行するのは難しいかもしれません。
また、DOTweenと比較して機能は限定的であるため、使いどころ及び実装方法を事前に検討する必要があります。
それでも「DOTweenの5倍以上」というスペックは魅力的ですしドキュメント等も充実している為、これから新規にプロジェクトを起こす際には導入を検討しても良いのではないでしょうか。

【Unity】ハイパフォーマンスと噂のTweenアセット「MagicTween」を触ってみた

Reddit

海外ではXやらインスタよりもメジャーだと聞いて自作ゲームの宣伝のために導入したものの一切活用できていない情報弱者な皆さんこんにちは。無駄に通知だけは毎日受信しているのですが全てのメッセージが英語の為、全く意味が分かりません。誰か助けて。

 

左手デバイス

以前クラファンで購入予定だったもののプロジェクトが停止となり(返金された)、それ以降購入する予定がなかったのですが、ここ最近の怠惰な自分を反省し、ゲーム開発へのモチベーションを上げる為に購入してみました。

 

ack05 ショートカットリモート ワイヤレス接続 or 有線接続両方対応の左手デバイス | XPPen公式ストア

キーボードのショートカットを割り当てたり、一連の操作をマクロ的に実行する事ができるアイテムです。本来はタブレットで絵を描くような方が使用する為のデバイスなんですがUnityでもキーのショートカット割り当てやSceneビューでの拡大縮小の操作を行う事ができます。

これまではTransformのGlobal/Localの切替や、Gameビュー/Sceneビューの切替、空オブジェクトの生成などの操作はゲーム制作内で頻度が高く地味に面倒だったのですが、それらをこのデバイスのキーに割り当てることで作業効率が少し上がった気がします。

「ショートカットなんて覚えれば良いだろう」と言われたらそれまでなんですが、このデバイスなら1グループで10個ほどの操作が割り当てられ、グループを切り替えれば4グループ×10キー程の操作を扱えるので、私のような忘れっぽい方には非常に便利です。

また「どのキーにどの操作を登録したか忘れる」というような方でも、キー用のシールが付属しているのでそれなりに目印になります。
まぁ、Unityを扱う上では必須ではないのですが、有ればそれなりに有用なツールになると思います。

 

MagicTween

これまでTween系のアセットと言えばDOTween一択で使用していたのですが、調べてみると新しいTween系のアセットがソコソコ出回っているようで、その中でも「MagicTween」というアセットはECS(Entity Component System)を使用したTween系アセットらしく、かなりパフォーマンスに優れているらしい。公開されているパフォーマンスの比較を見ても圧倒で気に優れているので導入を検討することにしました。

パフォーマンス比較

このアセットはアセットストアで売られているアセットではなく、有志の方によって作成され、Gitで公開されているアセットです。

その為、導入にはアセットストア経由ではなくGitURLを利用するため、事前にGitをPCにインストールしておきます。

gitforwindows.org

また、ECSを利用するためUnityのPackageManagerから「Entities」を導入しておく必要があります


ちなみにUnityのバージョンはUnity 2022.1以上である事が必須です。

Gitをインストールし、Entitiesを導入したことを確認したらPackageManagerの「Git URL からパッケージを追加」から以下のURLを指定してインストールを行います。

https://github.com/AnnulusGames/MagicTween.git?path=/MagicTween/Assets/MagicTween

 

使い方

作者の方のHPにて詳しく解説されているのでそちらを参考にするのが一番正確なんですが、ザックリ解説するとDOTweenと殆ど同じような 記述形式で使う事ができます

annulusgames.com

例えば移動系のメソッドの場合、DOTweenと同じくtranformの拡張メソッドして使用する事が出来る為

transform.TweenPosition(終了位置, 動作時間);

の記述となり、EasingやRelativeなどのオプション指定はSetterから設定することができます。

transform.TweenPosition(終了位置, 動作時間)
          .SetRelative(true)
          .SetEase(Ease.Liner);

コールバックの指定もDOTweenと殆ど同じです。

transform.TweenPosition(終了位置, 動作時間)
          .SetRelative(true)
          .SetEase(Ease.Liner)
          .OnComplete(コールバック関数);

 

しかし残念ながらPath移動に関して経由地毎のコールバック(OnWaypointChange)は無いようです。
これに関してはPath移動専用のコールバックという事もあり、優先度的に低いと判断されたのかもしれません。

この他にも複数のTweenを登録できるSequenceもDOTweenと同様に使う事ができ、DOTweenではPro版のみの機能であったTextMeshに対するTweenのメソッドも用意されています
各種メソッドやオプションの細かい説明、利用法に関しては有難い事にReadMeも(日本語で)用意されているので、そちらを参考すれば困ることはないと思います。

github.com

注意点

このようにUnity 2022.1以上のバージョンを使っていてEntitiesパッケージの導入に差し障りがなければ、DOTweenからMagicTweenへの移行はパフォーマンス面の利点を考えれば十分検討する価値があると思います。
しかしながら、DOTweenとの挙動の違いは多少存在するようで、前述のOnWaypointChangeコールバックがない事に加えて、任意の値を変更するToメソッドにおいてはOnUpdateのコールバックのみで値を参照すると、Tweenが完了しても目的の値までには達しない、という事が分かりました。

Toメソッドで0から10まで変更→OnUpdateコールバックで参照した場合

 

OnCompleteコールバックでも加えて参照するようにすれば目的の値まで到達することは確認できたので、この辺に関してはDOTweenからそのまま移行する、というわけには行かないようです。

OnUpdateとOnCompleteで参照した場合

 

他にもPath移動のPathの指定によってはDOTweenのPath移動とは少し違う挙動が見受けられたので、DOTweenから完全に移行する前には一度挙動を確認することをお勧めします。

何よりこのアセットは有料のアセットではなく、有志の方によって公開されているアセットです。
作者の方に対して際限ない動作保証や継続的な更新を期待することはお門違いだと思うので、その点を踏まえた上で自己責任で使用される事を願います。

 

宣伝

数学的迷宮脱出ゲーム「W.T.」早期アクセス版リリース中です。

store.steampowered.com

色々と難局に遭遇して牛歩の進みなんですが、製品版リリースに向けて頑張っているので、何卒応援の程、よろしくお願いいたします。

【雑記】2024年の活動目標

末吉

初詣に行って御神籤を引いたら末吉でその運勢通りに新年早々から上司に嫌味を言われたり気になっていた女性から婚約したことを告げられたりとやんわり嫌な事続きで不憫な皆さんこんにちは。去年そんなに悪い事しましたかね?結構いろいろ頑張ったほうだと思うんですけど(本業以外)。まぁ、最初に少し運が悪い方が後々上昇し易いと思うので、今年の干支(辰)のように運気が上向く事を期待したいと思います。

 

面白いけど疲れるゲーム

日本では無名ながらも、あのティアキンを抑えてGOTYを獲得したという事で一部界隈で話題のゲームを購入しました。

TRPG(テーブルトークRPG)がベースとなっているゲームなので、RPGとは言え、あまり日本のゲームでは馴染みのない仕様のゲームです。
私自身もTRPGの経験はないし、TRPGについてはおおよそのイメージしか持ち合わせていない為、何をするにもダイスを振って正否を決めたり、いきなり天の声が流れて主人公の心情や周りの状況が説明されたり、簡単にNPCが死んで復活もない、など慣れるまでは色々と戸惑う場面が多かったと思います。
(学生時代にTRPGに興味がわいてそっち系のサークルを訪れたものの、TRPGを遊んでいる最中の方々からは全く相手にされず、「あの~、見学したいんですけど・・・」と声を掛けても誰かの応答ももらえなかったので、そのままスゴスゴと部屋を出た記憶)

特に戦闘の場面は「コマンド式&ターン制の戦闘」ながらも各コマンドの説明に専門的な用語が並んだり、ストラテジーゲームのように地形や地理的な優位性を考慮する必要があったりと、頭を悩ます場面が多くて戦闘の一戦一戦に時間が掛かって非常に疲れる印象でした。
Amazonレビューなどを見ても「覚える事が多くて大変」という感想も見受けられ、賛否両論となっているのも納得できます。
それでもその高い敷居を乗り越えると、敵と真正面から戦うだけでなく、敵陣の真上にある火鉢を矢で落としてダメージを与えたり、姿を透明化させて背後から致命傷を狙ったりと様々な方法を試すことができるようになり、戦闘を前に戦略を練る事が楽しくなっていきます。

選べる魔法やスキルが膨大で、スキル構成も自由に構築できるなど、ゲーム内で色々な選択、戦略が楽しめますが、その分、UI等の操作は煩雑で独特な用語にも慣れる必要があります。
その為、万人にお勧めするゲームとは言えませんが、より深いゲームプレイを体験したい方は手に取っても損はないゲームだと思います。

 

Unity1Week

殆どUnity2Weekになってしまったのですが、何とか年末ギリギリで投稿を済ませる事ができました。

unityroom.com

自分としては結構力を入れて作ったつもりなんですが、結果は評価点でも、閲覧数、コメント数でも、ここ最近では最低に近い結果となってしまいました。要因はアレコレあるのでしょうが、そういった原因を考える以前にUnity1Weekへの参加はもうこの辺が潮時なのかなぁ、という印象です。

まぁ、愚痴やネガティブな事を言っても結果が覆るわけではないので、とりあえずいつも通りプレイ動画を作成して終わりにしたいと思います。

youtu.be

 

今年の活動について

今年の最優先課題として考えているのは、去年の夏に早期アクセス版としてリリースした数学的迷宮脱出ゲーム『W.T.』、こちらをきちんと製品版として仕上げて正式にリリースする事。

store.steampowered.com

現在は全5章中4章までを作成しており、早期アクセス版で遊んで頂いていますが、色々と問題が見えてきたので、今一度、早期アクセス版をアップデートする必要があると思っています。

特に操作周りについては、去年2回参加した展示会でブラッシュアップが足りていないことを実感したので、より快適に遊んでもらえるよう操作性を改良していく予定です。

未だ手の付いていない最終章の方は操作性改良後に本格的に取り掛かる予定ですが。構想的に1~4章を合わせたぐらいのボリュームになりそうなので、製品版が完成するまでには当初予定(2024年春)よりは時間が掛かるかと思います。

それでも今年中には必ず正式リリースする、という意気込みで制作に勤しんでいきたいと思います。

youtu.be

新作

W.T.』の完成が最優先ですが、それと並行して次作の製作にも取り掛かる予定です。

今回のunity1weekでは惨敗しましたが、実は今回の投稿作品は次作を意識して作成しており、自分的にはこれを発展させていく予定でいます。

今回の作品そのままにステージ数を増やす方向でいくか、別の形で昇華させていくのかは未定ですが、グラフィックスの方向性やゲームコンセプトは変えずに今後の展開を考えていきたいと思っています。

 

ゲーム展示会

去年は「東京ゲームダンジョン」「デジゲー博」といった二つの展示会に出展できましたが、今年も参加できる展示会には参加する予定です。

www.karvan1230.com

www.karvan1230.com

前回、前々回と同様に『W.T.』を展示するのか、新しく次作を展示するのかは未定ですが、展示会はお客さんの反応を直に確認できる貴重な機会なので、積極的に参加して今後の糧にしたいと思っています。

直近で狙っているのはGWに開催予定の「東京ゲームダンジョン5」辺りなんですが(「東京ゲームダンジョン4」は締め切りに間に合わず)、この展示会は先着順に出展が決まるので出展募集を見逃さないように注意したいと思います。

 

最後に

去年は「ゲームクリエイター」としてやっと第一歩を踏み出せたと思うので、今年はその足を止めることなく、さらに前進して「ゲームクリエイター」として自立できるようになりたいと思っています。

また、ブログの方はこれまで通りにUnityネタを基本としならがらも、気ままに好きなことを書いていきたいと思っています。(ここ最近はだんだんとゲーム紹介の量が多くなってきた気もするけど・・・)

 

今年もよろしくお願いします。m(_ _)m

【雑記】怒涛の一年にしたかった2023年振り返り

クリスマス

今年のクリスマスも自主的に辞退した倹約家な皆さんこんにちは。日本人の風習に沿わないイベントに浮かれてプレゼントを買ったり、出掛けたり、お金を浪費するなんて愚の骨頂ですよね。まぁ、今年は急な冬将軍の到来により一歩も部屋から出なかったので当日がクリスマスイブであることも認識出来てませんでした。TVもYoutubeも殆ど観なかったのでいつの間にか終わってた。良かった良かった。

 

unity1week

それにこちとらunityroomの定例イベントUnity1Weekに飽きもせず参加している為、他の事にかまけている暇がありません。

unityroom.com

今回は寒波の影響により2日間ほどテレワークという名の休暇を開発時間に廻せたのですが、その甲斐なく未だ開発中です。なぜでしょう?自分でも不思議です。もう世界の七不思議に加えても良いと思う。

 

まぁ、一度締め切りを過ぎてしまえば、一日の遅刻も一週間の遅刻も同じ事だと、開き直っているので、今回はゲームの開発時間をちょっと割いて今年の振り返りをしてみたいと思います。

 

ゲーム制作

ずっとコツコツ作ってきた自作のアドベンチャーゲーム「W.T.
今年ようやく早期アクセス版をリリースすることが出来き、存外にも収益を獲得することができました。ありがとうございます。

store.steampowered.com

そしてこれを引っ提げて「東京ゲームダンジョン」と「デジゲー博」といった展示会にも出展することができました。

www.karvan1230.com

www.karvan1230.com

出展による直接的なリアクションはこれと言ってないのですが、体験版を試遊してもらったことでユーザ目線での操作感やらゲームへの理解度について知見を得る事が出来ました。

現在はストーリーの全五章中四章までが完成している状態で、これから最終章の作成に取り掛かりますが、展示会で得た知見をもとに更なるブラッシュアップに励みたいと思います。

 

ブログ

去年ぐらいから閲覧数がじわじわと右肩上がりだったのですが、今年は更に伸びてそれによる収益も年一回から年二回貰えるぐらいになりました。ありがとうございます。
ほぼ週一ペースで需要に沿わず好きな事を書いているので、それを読んで頂けている、という事だけでも有難いと思っています。

あまり記事毎の閲覧数とかは気にしてないのですが、アセットの紹介記事がUnityの技術系の記事よりも人気なようで、ここ最近では随分前に書いたKoreographerの紹介記事がよく読まれているみたいです。

www.karvan1230.com

まぁ、確かにソコソコ値段のする有料アセットだと購入前にどんなアセットなのか調べたくなりますからね。使い方を調べる場合でも英語じゃない日本語の記事を優先的に探すでしょうし、そういった方の助けになれば幸いです。これからも購入したアセットはドンドンこのブログで紹介したいと思います。

 

来年は・・・

2022年と比べるとゲーム制作において活動ペースは変わらないながらも、活動内容を表に出す機会が多かったと思います。自作ゲームを(早期アクセス版ながら)リリース出来たし、展示会は二回も出展出来たし。

出来ればもう少し外部から何かしらのリアクションが貰えて、怒涛の対応に追われるような一年にしたかったのですが、結果はほぼ無風。
unity1weekでもこれといった目立った成果を上げられていないので、ゲーム制作者として「ゲームクリエイターです」と自己紹介ができるような成果を上げて行きたいと思います。

まぁ、その為に「W.T.」を完成させないといけないし、インディーゲームのコンテストで名前が挙がるような作品を作らないといけない。
難易度は高いと思いますが、理想を実現するには自分で動くしかないので、出来ることを精一杯頑張りたいと思います。

【アセット紹介】ローポリモデルのカラーリングを簡単に変更できる Colorize

年の瀬

何処に行っても「もう年末ですよ。早いですねー・・・」という話題を振られて「そうですね・・・」としか返せない語彙が貧弱な皆さんこんにちは。もう何年も代り映えしない日々を過ごしているので季節に応じた話題とかイベント事についていけなくなりました。年末年始とかただの長期休暇だし。

 

美しく、そして眠たいゲーム

メトロイドヴァニア系のゲームってクリアまで遊んだことないなぁ、と思いつつ、スタイリッシュなデザインに惹かれて購入してみました。

円と三角形のみで描かれる主人公の造形含め、徹底的に切り詰めてデザインされた世界観がかなりスタイリッシュな2D横スクロールゲームです。

ゲーム画面やプロモーション動画などを見ると王道のメトロイドヴァニアのように見えますが、実際は大きく異なり、戦闘は決まった場所でしか起こらず、かつターン形式バトルで攻守ともに一定のコマンド(ボタン操作)を打ち込んでいくだけの作業ゲーとなっているので、二,三度経験すると段々と戦闘をこなすのが億劫になり、次第に眠くなります。

また、探索する道中に雑魚敵に該当するような敵はいないので、謎解き(=ギミックの解除)が探索パートのメインになりますが、前述のように徹底的に切り詰められたアートスタイルとなっている為、扉や鍵やスイッチ等の各ギミック等が分かりずらい。
一応ギミックの近くでサーチボタンを押すと何かしらの反応が返るようにはなっていますが、ギミックでない箇所でもエフェクトが発生するのでギミックによるものなのか、ただの演出なのか分かりずらいし、ギミック自体も大掛かりなものはなく、ひたすらに回り道をしてプラットフォームアクションを繰り返すだけ、ステージが変わっても背景色が変わるぐらいで大きな違いはないので、仮にこのゲームがYoutubeなどで実況されたとしたら視聴者はただ眠いだけの動画となるでしょう。

ただSteamストアページのレビューでは「非常に好評」となっており、という事は、このゲームのアートスタイルやターン形式バトルを評価する方は多いという事で、プロモーション動画を見て気になった方はチェックしても損はないと思います。

 

Colorize

私は自分で3Dモデルを作れないので、ひたすらアセットストアで気になったものを購入するだけなんですが、その中でモデルのデザインは良いのにカラーリングがこちらの趣向に合わない、というケースが多々あります。
そういった時は妥協してそのまま使用するか、GIMPなどの画像編集ソフトを使ってテクスチャを編集するかの二択になりますが、ローポリモデルに関しては以下のツールによる編集も選択肢になりそうです。

3Dモデルに対してモデルが使用しているテクスチャ内の指定した色を他の色に差し替えることでカラーリングの変更を行う事ができます。
赤色の箇所を黄色に、緑の箇所を青色に、といった変更をUnityエディタ上で簡単に行うことができ、変更したテクスチャは別名でExportして保存する事もできます。

ストアの紹介画像

ただし、どんなモデルでの色交換を行えるというわけではなく、テクスチャのサイズは2のべき乗(32,64,128・・・)の正方形である必要があり、単色の画像または各色がグリッド形式で配置されているパターンパレット画像である必要があります
グラデーションがあるものや、グリッド形式でないものについては対応していないので注意が必要です。

グリッドパターン画像

 

まぁアセットストアで販売されているローポリモデルの多くは上記の形式(各色がグリッド配置されたテクスチャを使用)になっていると思うので、特に心配はないと思いますが、ただし、各色がグリッド配置されていても、各色それぞれがグリッド線などで境界分けをしていない場合は変更用のカラーパレットを作成することは出来ないようです。

境界線のない画像は不可

なので色変換したいモデルのテクスチャに境界線が無い場合は、事前にGIMPなどで境界線を設定して下さい。

 

使い方

ColorizeをUnityエディタで使用するには、コンポーネントがアタッチされたGameObjectがPrefabとして同梱されているので、このPrefabをシーン内にドラッグ&ドロップします。

Inspectorで確認すると以下のような編集画面となっているので、

GameObect欄をクリックしてシーン内で色を変換したいモデルを選択GetColorボタンを押すと、指定したモデルで使用されている色がカラーパレットとして表示されます。

 

表示されたカラーパレットにカーソルを当てるとその色を参照してる箇所がハイライトで表示されます。

変えたい色の箇所を確認したらそのまま色をクリックして表示されるColorウィンドウから変えたい色に変更します。

これを繰り返してオブジェクトの色変えを行います。

こんな感じで完成

 

差し替えたカラーパレットはBuild画面から出力&保存することが出来ます。

上の画像のBuildボタンを押すと、Project内に新しいテクスチャ画像とそれを参照するマテリアルが作成されます。

 

今回は色を変えるだけの説明でしたが、このアセットでは通常の色を変えるだけでなく、発光色(エミッション)やメタリックカラーもそれぞれで作成することが出来るようです。
テクスチャのサイズ等色々と制約が多い事は難点ですが、ローポリモデルを使用する頻度が高い方は結構有用なアセットではないでしょうか。

 

宣伝

数学的脱出ゲーム「W.T.」早期アクセス版リリース中です。
歯ごたえのある脱出ゲームとなっているので腕に自信のある方のチャレンジ、お待ちしております。

store.steampowered.com

【Unity】ここ最近の作業内容

自撮

会社から顔写真が必要だと言われて自撮りをしてみたら知らないおじさんが写っていて軽くショックを受けた皆さんこんにちは。最近のスマフォカメラは性能が上がりすぎて見たくないものまで鮮明に写って嫌ですね。一瞬、補正加工でもしようかと迷いましたが会社に提出する写真にそんなことをする意味はないのでそのまま提出しました。

 

好きな人にはたまらないゲーム

以前から購入を迷っていたのですが、正式にJリーグが追加された事とPSでも発売されるという事で最新バージョンのPS版を購入しました。

サッカークラブの監督となって戦術の構築、スタメンの選定から選手との契約交渉、クラブスタッフの採用までサッカーに関するありとあらゆる業務を体験するサッカー監督シミュレーションゲームです。
今回購入したPS版(コンソール版)ではPC版と比べて幾つかの機能が簡素化され、扱う事ができる選手数も5万人までと制限があるのですが、私のような初心者には丁度良い簡素化だと思います。『ホームグロウン制度を考慮して』とか言われても頭が痛くなるだけだし。

サッカー監督のシミュレーションゲームというと『サカつく』が思い浮かぶかと思いますが、それよりは随分本格的でやる事が多く、かつ地味です。
試合中に限らずゲーム中にBGMというものはなくほぼ無音でプレイ、ゲーム画面も一部選手の顔写真は表示されるものの、基本的に文字と数字の羅列ばかりで派手さは全くありません。またゲームのメインとなる試合画面は選手の動きを遠目に眺めて状況を確認し、時折、選手の配置や選手交代を行うだけなので、サッカー好きでない人が遊んだ場合は直ぐに眠くなるでしょう。

だがしかし、サッカー好きにはこれほどなく面白い

選手の配置、役割を細かく設定する事で自分なりのチーム戦術を構築することができ、それを試合で確認しながら修正し、結果(=勝利)につなげていく。これを繰り返すだけですが、この作業がたまらなく中毒性が高いので気づけば何時間も溶かして遊んでしまいます。サッカー好き、ご贔屓のチームがある方にはぜひお勧めしたいゲームです。

 

DOLookAt

東京ゲームダンジョンやデジゲー博で自作ゲーム「W.T.」の試遊版を展示したのですが、その際にお客さんの反応をみるとゲームコントローラーでの操作に苦戦している方が多く、特に「パズルやアイテム取得などを表すアイコンにカーソルを合わせてボタンを押下する」事が難しいようで、「カーソルを動かすとアイコンの位置で止まらずに通り過ぎてしまう」ケースが多く見受けられました。

中央のカーソルをアイコンに合わせようとするが中々合わない

実はカーソルの色が赤くなればカーソルがどこにあってもボタンを押下してアイテムの取得やパズルが開始されるのですが、操作する側としては「アイコンの中心に合わせないといけない」と思うようで、そうするとアナログスティック操作でカーソルを円の中心にぴったりと合わせるのが難しい。

なのでカーソルが円の中心に自動的に向かうような動作を実装しようとアレコレ試行錯誤した結果、DOTweenのDOLookAtを使用することにしました。

 

DOLookAt
transform.DOLookAt(Vector3(目標位置), float(時間));

 

このメソッドでは指定した位置へオブジェクトのZ軸を向かせることができます。
なので、このメソッドを使用したスクリプトをカメラにアタッチして、対象物を検知するCollider内にObjectが侵入してきたら、そちらの方を向くようにします。

こういう感じ、白い球体が対象物

実際に動かしてみると

いい感じにカーソルが対象物(白い球体)の方へ合うようになりました。

 

LerpSlerp

どちらもVector3の中間値を取得するメソッドですが、よく分からなかったので可視化してみました。

地点Aから地点Bまでの中間点をLerpとSlerpで取得し、線を引いてます。これを見るとSlerpが円弧に沿った補完だと分かりましたが、使いどころが思い浮かばいなぁ。

 

unity1week

来週(12/18)からunityroomというサイトでunity1weekが開催されます。

unityroom.com

今回のお題がどうなるのか分かりませんが、個人的に前回は構想の半分も実装できずに投稿する事になったので、そのリベンジの意味もこめて参加したいと思います。まぁ、前回の為に「Shapes」という結構高額なアセットを購入したものの、殆ど活用できなかったので勿体ない、という意味もありますが。

取り合ず検証も兼ねてオープニングっぽいシーンを作ってみたり。多分使わないけど

 

宣伝

数学的脱出ゲーム「W.T.」早期アクセス版リリース中です。
歯ごたえのある脱出ゲームとなっているので腕に自信のある方のチャレンジ、お待ちしております。

store.steampowered.com

【Unity】サウンドの途中再生、一時停止

自己肯定感

unity1weekやゲームコンテストなどで自作ゲームを投稿する直前になると「こんなゲームどこが面白いんだろう?」病が発症する皆さんこんにちは。普段から自己肯定感低めで生活しているので制作中はゲーム作りに熱中して「このゲームは面白い!」と自信満々で盛り上がっているものの、いざ完成して熱が冷めると急に自信が無くなって作ったことを後悔したりします。まぁ、それでも投稿するけど。

 

ゴジラ小口

ロゴの「-1.0」の箇所が「小口」にしか見えないのですが、取り合ず話題になっているので映画館で鑑賞してきました。

ネットの評判通り「三丁目の夕日+ゴジラ」みたいな映画で、ゴジラの活躍(破壊)よりも人間ドラマの方に力点が置かれています。
この為、ゴジラが小笠原諸島海域からわざわざ東京へやってきて大暴れする理由は分からないし、「大怪獣ゴジラ」という既存生物を超越した存在を人々があっさりと受け入れるし、ゴジラに対処する方法も無理がありすぎるし、で「シンゴジラ」のような「大怪獣ゴジラを相手に人々がどうやって立ち向かい、倒していくか」を期待して観ると肩透かしに感じるかもしれません。

とは言え、重点の置かれた人間ドラマの方は「戦争のトラウマからの脱却」をテーマにしっかりと描かれていますし、ベタながらお涙頂戴のストーリーは心を打つものがあると思います。おそらく「シンゴジラ」よりも「ゴジラ-1.0」の方が好き、という方は多いでしょう。
何より監督が山崎貴というだけあって「大怪獣ゴジラ」のVFXシーンは必見で、海上でゴジラから追われる場面などはそのままUSJでアトラクション化できそうなぐらい迫力があり、恐らく過去一「怖いゴジラ」に仕上がっています。

これから日本だけでなく全米でも公開されるそうですが、多分「シンゴジラ」よりは評価を集め、集客するのではないでしょうか。私は「シンゴジラ」の方が好きですが。

 

サウンドの途中再生/一時停止

UnityでBGMやSE(効果音)などの音を再生するには「AudioSource」コンポーネントを使用します。

AudioSourceコンポーネントのAudioClipプロパティにmp3やoggなどの音源ファイルを指定してPlayメソッドをコールすればゲーム内に音楽を再生することができるのですが、イベントシーンなどでBGMのサビの部分から音楽を鳴らしたいケースでは、Timeプロパティにて再生開始の時間を指定することができます。
この時、指定は秒単位なので例えば1分30秒の所から再生を開始したい場合には以下のようなコードになります。

AudioSource AudioCtl;

AudioCtl.time = 90.0f;
AudioCtl.Play();

ゲームの一時停止機能を実装する場合、当然音楽も一時停止する必要があるので、そういった場合にはAudioSourceのPauseメソッドをコールします。
一時停止を解除する場合にはUnPauseを使用します。

AudioSource AudioCtl;

// 一時停止
AudioCtl.Pause();


// 一時停止解除
AudioCtl.UnPause();

ここで一時停止解除の時にUnPauseではなくPlayをコールすると、先程のtimeプロパティに指定した時間から再生が開始されます
また、これらの動作は「AudioSource」コンポーネントがアタッチされたGameObjectがアクティブ状態であることが前提です。
逆にGameObjectが非アクティブとなった場合には楽曲の再生は強制終了します。

 

非アクティブ状態でも音を鳴らしたい

非アクティブ時にも動くようにするには、メインメニューの「Edit」-「Project Settings」-「Player」を選択。
PlayerSettingsのInspectorウィンドウで中央にあるタブの左から2番目「Setting for PC, Mac & Linux Standalone」を選択。
「Run In Background」チェックボックスをONにします。

しかし、この設定はプロジェクト全体にかかわる設定です。この設定をONにすると、例えばコルーチンなどの処理も非アクティブ時に止まらなくなります。
全体への影響を考えて設定を変更する必要があります。

 

宣伝

今回展示した数学的脱出ゲーム「W.T.」は現在アーリーアクセス版リリース中です。

store.steampowered.comストーリー全5章中4章までを遊ぶことができます
完成版は来年春リリース予定ですが、アーリーアクセス版の感想を完成版にフィードバックして行きたいので、何卒ご協力の程、よろしくお願いいたします。

◇プライバシーポリシー

●個人情報の利用目的

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

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

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

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

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

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

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

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

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

●免責事項

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

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

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

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

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

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