Unity・3DCG技術ブログ

TAもどきによるUnity・3DCGに関する記事をアップします。

【Maya】Pythonスクリプティング基本メモ

概要 MayaでのPythonの基本的なスクリプティングについて覚えたことのメモ 環境 Pythonバージョン3.7.7 シーン シーン内のオブジェクトを列挙 オブジェクトにtransformは必ずあるのでtype="transform"で絞るとシーン内のオブジェクトが取れるって感じですね…

【Maya】Pythonスクリプトのパス設定

git管理したい独自のpythonスクリプトフォルダを指定するには userSetup.pyに下記のように指定する。 print("UserSetup..") import sys myscripts = "Pythonスクリプトのフォルダパス" sys.path.append(myscripts) print("added path:" + myscripts) 追記し…

【Maya】地面モデリング例【ジオメトリのスカルプトツールとマテリアルのフラクタル】

概要 ジオメトリのスカルプトツールとマテリアルのフラクタルを使用すれば簡単に地面が作成できたので メモします。 環境 Maya2022.3 作業 Planeを作成(縦と横の分割数は50くらい)します。大きさは適当にスケールし、トランスフォームのフリーズをします。 …

【Maya】シンプルなローポリツリーを作る

概要 Mayaでシンプルなローポリツリーを作成した際の作業の備忘録になります。 木 シリンダーを作成 軸の分割数(subdivisionsAxis)を 7 に Shift + 選択でシリンダーを全選択 Shift 押しながら横面を選択で上の面だけ選択に Shift押しながらフェース移動で押…

【Maya】選択中のオブジェクトをまとめて特定のオブジェクト以下の子にする【Python】

Python import maya.cmds as cmds objs = cmds.ls(sl=True) for o in objs: print(o) cmds.parent(o, "新しい親オブジェクト名" ) 備考 親にしたいオブジェクトを最後に選択して p を押しても可能。 (むしろそっちのほうが楽かも..)

【Unity】URPでRendererを切り替える

概要 URPでアウトゲームとインゲームでRendererを切り替えたい場合、 UniversalAdditionalCameraData のSetRenderer で切り替えられる。 using UnityEngine; using UnityEngine.Rendering.Universal; [ExecuteAlways] public class URPSetRenderer : MonoBeh…

【Unity】EditorWindowにWarningを表示するサンプル

概要 コード using UnityEditor; using UnityEngine; using UnityEngine.UIElements; public class ExampleWindow : EditorWindow { [MenuItem("Window/ExampleWindow")] static void Init() { GetWindow<ExampleWindow>(); } void OnEnable() { var button1 = new Button((</examplewindow>…

【Unity】GetWindowで特定のEditorWindowの隣にEditorWindowをこさせるサンプル

概要 EditorWindow.GetWindowの引数desiredDockNextToにtypeofでタイプを指定すると、そのタイプの隣に ウィンドウがくるサンプル。 コード using UnityEditor; using UnityEngine; using UnityEngine.UIElements; public class ExampleWindow : EditorWindo…

Unityでファイルの特定の行数にジャンプする

概要 Unityでコンソールウィンドウの行をダブルクリックしたときにコードにジャンプしますが それと同じことをUnityのインターナルなメソッドを呼ぶことでできるのでメモ コード static void OpenFileOnSpecificLineAndColumn(string filePath, int line, in…

【Unity】TypeCache.GetTypesDerivedFrom

概要 Unity2019.2からTypeCacheを使用すると、あるベースクラスから継承されている派生先のクラスのTypeを取得することができる。 サンプルコード public interface IHoge { } public class HogeA : IHoge { } public class HogeB : IHoge { } foreach (var …

【Unity】シンプル会話パートを作れるUniNovelを作ってみた

概要 Unityでシンプルな会話パートが作成できるUniNovelを作ってBitbucketに公開しました。 機能 かなりシンプルなことしかできません^^ BG表示・非表示 キャラ表示・非表示 メッセージ送り バックログ GUIエディター 上でコマンドを選択して+ボタンで追加…

MELサンプルその1

概要 MayaのMELのシンプルなサンプルスクリプト。 MEL string $toolCreate = "createTool"; string $toolName = "UI Tool"; if( `window -exists $toolCreate`) { deleteUI $toolCreate; } window -t $toolName -w 500 -h 500 $toolCreate; frameLayout -lab…

Mayaの基本操作メモ1

MayaLTを触り始め、基本操作を少し覚えたのでメモ。 添って移動させる ・オブジェクトを選択して移動モードでC押しながらドラッグ ・オブジェクトを選択して移動モードでV押しながらドラッグ Pivotの操作 ・オブジェクトを選択してInsertキーまたはDキー グ…

オブジェクトをミラー複製するMEL

概要 MayaのMELでオブジェクトを複製する。 使い方 下記をスクリプトエディタに貼り付け実行する。 // トランスフォームのフリーズ makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 -pn 1; // pivotを原点に移動 string $objs[]=`ls -sl`; for ($obj in $objs…

「UnitySpriteShaders」ディゾルブエフェクトの紹介

概要 github.com を導入することで のようなエフェクトを簡単に作れます。 設定例 Materialを作成し、シェーダーは Sprite ( Pixel Lit Dissolve ) を選択します。

UniRx+Zenjectで作るシーン遷移基盤 メモその2ZenjectBindingとか

例えばタイトル画面からホーム画面に遷移するとして、基盤を使う側のコードはこんな感じとなります。 コード using UnityEngine; using UnityEngine.UI; using UniRx; using Zenject; public class Title : SceneBase { [Inject(Id = "start")] Button start…

C#リフレクションでComponentのSerializeFieldをゲットする

// SerializeFieldをゲットする。componentはなんらかのComponentを指定する。 var fields = component.GetType() .GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.FlattenHierarchy) .SelectMany(x => x.CustomAttributes.Where…

UniRx+Zenjectで作るシーン遷移基盤 メモその1

UnityでUniRxとZenjectを使ってのソシャゲを意識したシーン遷移基盤を趣味で作ってます。 初めに 仕事ではUniRxは使っているのですが、Zenjectは仕事では使ったことがありません。 最近はやりのZenjectの練習もかねて、UniRxとZenjectを組み合わせればいいも…

【ShaderGraph】揺らめく炎のエフェクト

はじめに ShaderGraphで炎が揺らゆくエフェクトを作成してみましたのでその作成方法をご紹介します。 炎の画像をゆらゆらと揺らしつつ、炎の下のほうは揺らめきを抑えています。 ShaderGraph 全体 画像のように大きく3つの部分から構成されています。 3つ…

SerializeField付きの新規スクリプトを作成できる「ScriptWizard」の紹介

コード https://bitbucket.org/macnaga/scriptwizard/src/master/Assets/Editor/ScriptWizard.cs 確認バージョン Unity2018.2.4f1 Windows 10 Window/Script Wizard .. Exposed ReferencesにSerializeFieldをAddボタンにて追加します。 フィールドにオブジェ…

Unityシーン遷移時にパラメータを渡せるようにしてみる

Unityシーン遷移時に引数(パラメータ)を渡したい時ってあると思います。 インターフェイスを実装したら引数が渡されてくれれば便利かなと思ったので実装してみます。 環境 Unity2018.3.0b6 Windows10 コード このようなインターフェイスを定義します。 usi…

UniRxでUpdateをObservableにする

using UnityEngine; public class NewBehaviourScript : MonoBehaviour { void Update() { if(Input.GetMouseButtonDown(0)) { Debug.Log("Hoge"); } } } というスクリプトがあるとします。マウスの左クリックで Hoge と表示します。 UniRxを使用することで …

Unityでピクセルを散らしながら消えていくイメージエフェクトを書いてみた

デモ 作成したものがこちらです。 RPGとかでボスが死亡するときの演出に使えるかと思います。 ピクセルを散らしつつ、ついでに小刻みに震えながら消滅していきます。 開発環境 Unity2017.3 Windows10 Androidは実機で動作確認しましたが、iOSでは未検証です…