ツクロウヤ

Unityによるゲーム開発記

【開発記】生存報告...

ブログ自体も久しぶりの更新...
とりあえず頓挫はしていないということで生存報告。

しばらく更新していませんでしたが、色々あって10月くらいからは実は知り合いとチームを組んで別のゲームを作っていました。
こんな感じのクリッカーゲームを。

f:id:ArtAwA:20180121203549p:plain

これまた色々あって公開はせずにプロジェクトを閉じることとなりましたが、個人でやる自主制作との違いなど良い学びになりました。
こちらのゲームでブログに載せれそうな箇所は追々まとめていきたいと思います。
一人でやるよりもモチベーションが維持しやすく、今後も機会があれば、やっていきたいと思います。

とは言うものの... いい加減アクションゲームも完成させようということで開発を再開しました。
直近は環境の更新やだいぶ忘れているところも多いのでリハビリ的なことになりそうな...
一段落ついたらメインゲームを一旦仮素材で全ての要素を入れるような形に進めていこうと思います。

それでは今回はこの辺で
(´・ω・`*)ノシ

【3dsmax】メッシュ&UVのAtlas化ツール

今回は前回に引き続きAtlas化ツールの紹介です。

今回のツールは「モデルなどを作成していて、負荷軽減のために複数のメッシュ、マテリアル、テクスチャを統合してDrawCall数を抑える」といった際に使用するツールです。

このツールは今回紹介する3dsmax側のツールとテクスチャをAtlas化するPhotoshopのツールで分かれています。

テクスチャをAtlas化する際は以下の記事のツールを使用してください。

スクリプト概要

f:id:ArtAwA:20170919224206j:plain

3dsmax側では「メッシュの統合」「UV座標の変更」「Atlas化したテクスチャの割当」を行います。
具体的には以下のような感じでメッシュが統合されてUV座標が変更されます。

f:id:ArtAwA:20170919224225p:plain

使い方

今までのスクリプトはGistなどに貼り付けていましたが、今回は汎用処理などを分け、複数のファイルがあるため、zipで落とす形にしました。

スクリプトの準備】

MeshBaker.zip - Google ドライブ

  1. 上記の右上にある「ダウンロード」ボタンからスクリプトをダウンロード
  2. zipを解凍する
  3. スクリプト用のフォルダに「ArtAwA」のフォルダを格納
    ※フォルダの階層は変えない→念のため他のファイルと競合させないため

 格納場所例:
  「Win」:D:\Program Files\Autodesk\3ds Max 2017\scripts

スクリプトの実行】

  1. 上部タブのスクリプトより「スクリプトを起動」で「MeshBaker.ms」を選択
  2. 「PSD - FilePath」「CSV - FilePath」に「TextureAtlasmMaker(Photoshop)」で作成したファイルを設定
  3. Atlas化したいオブジェクトを選択してApply

※応答なしの表示が出るかもしれませんが、アタッチなどの重い処理があるため遅くなっているだけです。

今後の追加予定

・同一座標頂点の連結処理(有無は任意)

背景などをタイリングしている場合はよくありますが、隣接した頂点は連結してしまった方が負荷が下がるので、その処理を追加しようと思います。ただ、連結したくない場合もあるため、チェックボックスで有無を判定しようかと。

・テクスチャの処理もまとめて3dsmax側から呼び出せるように

テクスチャをAtlas化するツールは別の利用用途があるため分離しておいてもいいのですが、出来れば3dsmax側からで完結したいため、3dsmax側からPhotoshopのツールを呼び出す方法を検討中。DOS経由でPhotoshopの起動はいけるみたいですが、インストール場所が一定ではないですし、パラメータを渡してPhotoshopスクリプトを起動する方法が分からないため模索中です。

・処理の高速化

手作業でやるよりは圧倒的に早いですが、応答なしに見えたり、遅めなので調整。
現状100個くらいをまとめても動きが止まることはなさそうでした。

 

本当は今回GIFを取ろうと思いましたが、ScreenToGifやLICEcapなどで取ったら色がガビガビになっていたので、諦めました... お手軽に取れるなぁと一瞬思ったのに...

改修は一旦後回しで自主制作の開発に戻ろうかと思います。
それでは今回はこの辺で
(´・ω・`*)ノシ

【Photoshop】2乗テクスチャのAtlas化ツール

モデルなどを作成していて、負荷軽減のために複数のメッシュ、マテリアル、テクスチャを統合してDrawCall数を抑えるといったことが多々ありますが、バージョンが遥か昔から開発中止されたものやMaya用のものしか見当たらなかったので、3dsMax用が欲しいなということで作成しました。
Unityでもそういったアセットがありますが、同一座標の頂点がマージされていなかったり、DCCツール側で出来ればエンジンに依存しないという点もあり作成しようかと。

今回の紹介するツールではテクスチャの統合だけを分離した機能です。
下の画像のようなことだけをやります。
f:id:ArtAwA:20170918200852p:plain
この機能はエフェクトの素材を個別に作成しておき、後で統合する際などにも使用できます。(もうちょっと改良した方がよいけど...)
この後記載する3dsmax側のツールと併用することでメッシュ、マテリアルも統合することが出来ます。

スクリプトの概要

f:id:ArtAwA:20170918194448j:plain

メインの機能としては「2の乗数テクスチャをAtlas化するツール」です。
「Atlasサイズを最適化」にチェックを入れるとTextureSizeは無視され、最適なサイズで出力されます。
「UV座標用ファイルを出力」にチェックを入れると3dsmax用のファイルが出力されます。
出力されるファイルはAtlas化する素材ファイルと同階層に「export」フォルダを作成し、その中に出力されます。

使い方

今までのスクリプトはGistなどに貼り付けていましたが、今回は汎用処理などを分け、複数のファイルがあるため、zipで落とす形にしました。

スクリプトの準備】

TextureAtlasMaker.zip - Google ドライブ

Common.zip - Google ドライブ

  1. 上記の右上にある「ダウンロード」ボタンからスクリプトをダウンロード
  2. zipファイルを解凍する
  3. スクリプト用のフォルダに「ArtAwA」のフォルダを格納
    ※フォルダの階層は変えない→念のため他のファイルと競合させないため

格納場所例:
 「Mac」/Application/PhotoshopCC2017/Presets/Scripts/
 「Win」C:¥Program Files¥Adobe¥Adobe PhotoshopCC2017¥Presets¥Scripts

スクリプトの実行】

  1. 全てのドキュメントを閉じた状態にする(しないと警告)
  2. 「ファイル」→「スクリプト」→「TextureAtlasMaker」
  3. FilePathの参照より「統合したいファイルのあるフォルダ」を選択
  4. 必要であれば他パラメータも設定し「実行」

今後の追加予定

・マージン機能
 マージンを入れないとUVが境界にピッタリくるもので横の色を拾う可能性があるが、入れてしまうと隙間が無駄に出来るため、どうするか検討中。
 UVが境界にピッタリくるもののみ3dsmax側のツールで見た目に影響が少ない範囲で微妙にスケールを掛けるのもありかも。

・追加配置機能
 現状だと統合した画像の並び順がサイズが大きい>名前順なので、素材を追加した際に配置が一定ではありません。モデルの方だけであれば特に要らないかなと思いましたが、エフェクト素材の統合ツールとしても使うため、位置が一定じゃないと何かと不便...(UnityのParticleでSlice指定で特定のエフェクトを選択している場合など)
 場合によっては冗長になるため、エフェクト用のAtlasツールとして別途作成するかも。

次回は3dsMax側のAtlasツールの紹介をしようと思います。

それでは今回はこの辺で
(´・ω・`*)ノシ

【開発記】進捗報告(8月:3回目)

キャラのリグ周りや装備関連の処理が一通り落ち着きましたので更新更新。

前回から以下のようなことをやっていました。
・キャラのリグ入れ
・武器の切り替え構成検討
・武器の装備処理

今回も一旦スクショをペタッと。
キャラ以外は代わり映えなし... 武器が見えにくいかも... 要調整。

f:id:ArtAwA:20170831012427j:plain

【キャラのリグ入れ】

リグの構成に関しては以前に紹介していたリグの構成とほぼ変わりはありませんので割愛。リグの確認ついでにアイドル状態のモーションも作成しています。
武器の部分がちょっと違いますが、その辺りは武器の構成検討にて。
ということで早速武器の構成検討について。

【武器の構成検討】

ナイフと銃を戦闘中に切り替えることが出来るという仕様上、ナイフと銃を持ち替えたり、ホルダーの中に入れたりということが発生します。
そこでその切替(手に追従、ホルダーに追従)をどう対応するか検討していました。
おおまかに以下の2パターンが思い浮かびました。

1.プログラム側で親子関係を制御
2.アニメ側で追従するように制御

「1.プログラム側で親子関係を制御について」

装備の切り替えが発生する場合にアニメにイベントなどを仕込み、手のボーンや太もものボーンに親子関係を付けて、相対座標を設定してあげるというものです。

メリット
 ・既存のボーンを使うので、ボーンが増えない
デメリット
 ・アニメの中にイベントを設定してあげないといけないので、少し面倒
 ・武器単体にアニメをつけることが出来ない

「2.アニメ側で追従するように制御」

このやり方では武器が追従するための専用ボーンを追加し、武器はその子として配置します。手や太ももへの追従は、DCCTool側でコントローラーにリンクコンストレイントを付けてあげて行っています。

メリット
 ・アニメの制御がDCCTool側で完結する
 ・武器単体を回したりなどのアニメが出来る
デメリット
 ・専用のボーンを追加する必要がある

今回の実装では「2.アニメ側で追従するように制御」を採用しました。
理由としては武器を回したり、手の回転だけでは実現出来ないアニメを入れる予定があったこと、既にアニメイベントでエフェクトなどの制御を行っているため、アニメイベントがごちゃごちゃしないようにアニメ側で完結する点が都合が良かったためです。

この後は一旦キャラの見た目の調整は置いておいて、未作成のモーションや実際の武器の切り替え処理辺りを対応して行こうかと思います。

それでは今回はこの辺で
(´・ω・`*)ノシ