- 2022.03.28 Monday
- スポンサーサイト
-
一定期間更新がないため広告を表示しています
- | スポンサードリンク | - | | - | - | pookmark |
- 2016.10.27 Thursday
- Mobile-Motion-Particles-Alpha Blended-VColorV2.shader
-
Mobile-Motion-Particles-Alpha Blended-VColorV2.shader
- | whaison | OpenGL,OpenGLES,glsl,DirectX,hlsl,webGL,metal,vulkan | 15:18 | comments(0) | - | pookmark |
- 2016.10.27 Thursday
- MayaVertexColorAlpha.shader
-
MayaVertexColorAlpha.shader
Shader warning in Output value 'vert' is not completely initialized at line 60 (on d3d11) Compiling Vertex program Platform defines: UNITY_ENABLE_REFLECTION_BUFFERS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING
bugFixed http://answers.unity3d.com/questions/754151/vert-output-parameter-o-not-completely-initialized.html
UNITY_INITIALIZE_OUTPUT(v2f, o);
Maya ColorUnity Color
- | whaison | OpenGL,OpenGLES,glsl,DirectX,hlsl,webGL,metal,vulkan | 15:04 | comments(0) | - | pookmark |
- 2016.10.25 Tuesday
- Visual Studio 用 Maya プラグイン ウィザード Maya Plug in Wizardを使う。4 initとuninit
-
プラグインはダイナミックリンクライブラリなので、entry ポイント および exit ポイント を提供しなければいけません。
これらは、プラグインが最初にロードされたとき(entry関数)、最後にアンロードされた時(exit関数)に呼び出される関数です。
Windowsでは、普通、開発者自身のDll Main関数により扱われます。MayaPluginWizardでは、entryポイントとexitポイントは
DeclareSimpleCommand( MayaPluginWhaison2, "whaison2", "2017");マクロにより作成されています。
MSimple.hの中の
DeclareSimpleCommand( _className, _vendor, _version )
このマクロは自動的にコマンドと、initializePlugin 関数 uninitializePlugin 関数 の両方を生成してくれます。
ではこれ(MSimple.h)をつかわないでクラス内で実装してみました。
内容はMSimple.hの内容を持ってきて 必要な引数をいれてあります。
ビルドしました。プラグインロードしました。MELたたきました
// Hellow World in MayaPluginWizard3Cmd でました。
で。
コマンドクラスは シンプルなdoIt()関数を含んでいます。コマンドが実行されるとこの関数が実行されます。
virtual MStatus doIt(const MArgList&)
{
MGlobal::displayInfo("Hellow World in MayaPluginWizard3Cmd ¥n");
return MS::kSuccess;//doIt内容成功したかどうかを返す
}コマンドはstatic なcreator()関数も含んでいて、コマンドをアロケート つまり実行中のプログラムへのメモリ空間の割り当て(メモリアロケーション) してそれを返します。
static void *creator()
{
return new MayaPluginWizard3Cmd;
}以下のコマンドはinitialization 関数 uninitialization 関数です。
MStatus initializePlugin(MObject _obj)
MStatus uninitializePlugin(MObject _obj)
両方の関数は全てのMayaプラグインになくてはなりません。それらが存在しなかった場合、プラグインはリンクされません
initializePlugin関数はMObject を入力として受け取ります。このMObjectはプラグインタイプ用の内部データへのハンドルです。
MStatus initializePlugin(MObject _obj){}
次の行では、MFnPlugin オブジェクトが生成されobj変数を引数として初期化されます。
MFnPlugin を MObject にアタッチさせることで、MFnPlugin 関数を呼び出して MObjectを操作することができます。
MFnPlugin plugin(_obj=MObject , "whaison.jugem.jp", "3.0"); //MFnPlugin インスタンスの生成
ここでMayaPluginWizard3Cmdコマンドが登録されます。コマンドの登録を行うことで、コマンド
がMayaで使用できるようになります。登録には名前とともにcreator関数を与える必要があります。
名前はそのコマンドを実行するときの名称で、この場合は単純に”MayaPluginWizard3”です。
MStatus stat; //MStatus 型 の宣言
stat = plugin.registerCommand("MayaPluginWizard3",MayaPluginWizard3Cmd::creator);creator 関数はstatic 関数でコマンドのインスタンスを1つアロケート(メモリ確保)します。
これをMaya に登録する際に必要とされます。そうしなければコマンドをインスタンス化する方法が
わからないからです。
登録の結果をチェックし、失敗していたらエラーを表示します。
if (!stat){
stat.perror("registerCommand failed"); //エラーを表示します。}
initializePlugin関数は必ずMStatus型の結果を返します
return stat; //initializePlugin関数はMStatus型の結果を返します}
もし帰ってきたステータスがMS::kSuccses でなければ、プラグインは終了し、
ダイナミックリンクライブラリは自動的にアンロードされます。
コマンドラインの結果にエラーメッセージが表示されます。重要なのは、もしinitialazePlugin関数が
失敗すれば、uninitialazePlugin関数は呼び出されないということです。
initialazePlugin関数内で(例え initialazePluginが失敗した場合にも)処理を終えて戻る前に、
全てのクリーンアップを終えなければなりません。
uninitialazePlugin関数はinitialazePlugin関数の逆を行います。
initialazePlugin関数 が登録したコマンドを取り消します。
stat = plugin.deregisterCommand("MayaPluginWizard3");
関数はuninitialazationが成功したかどうかのステータスも返します。
if (!stat) {
stat.perror("deregisterCommand failed");//uninitialazationが成功したか
}return stat;
もし帰ってきたステータスがMS::kSuccses でなければ、プラグインは終了し、
ダイナミックリンクライブラリは自動的にアンロードされません。
Mayaが終了するまでロードされたままになります。
この例では1つのコマンドがMayaに登録された場合でした。実際には無制限に登録が可能です。
カスタムノードやカスタムデータなど、どんなMayaプラグインを作る場合もこの
intialazePlugin関数、uninitialazePlugin関数によって簡単にMayaに新しい機能を与えるプラグインを提供し
アプリケーションで使用できるようになります。
コメント多めのソース
。。。
- | whaison | C++ | 19:03 | comments(0) | - | pookmark |
- 2016.10.25 Tuesday
- Visual Studio 用 Maya プラグイン ウィザード Maya Plug in Wizardを使う。3 リリースビルド
-
Visual Studio 用 Maya プラグイン ウィザード Maya Plug in Wizardを使う。3 リリースビルド
Build>SetActive Configration...
ビルド>構成マネージャー....
から
アクティブソリューション構成(C):からRelease を選びます。
F7 Build> Build プロジェクト名.mll を選択して
プラグインをビルドします。
でこのエラーが出ます。
コード 重大度レベル 説明 プロジェクト ファイル 行 抑制状態
MSB8020 エラー The build tools for Visual Studio 2012 (Platform Toolset = 'v110') cannot be found. To build using the v110 build tools, please install Visual Studio 2012 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution". MayaPluginWizard2 C:¥Program Files (x86)¥MSBuild¥Microsoft.Cpp¥v4.0¥V140¥Microsoft.Cpp.Platform.targets 54Visual Studio: Error MSB8020の解決方法
プロジェクト>”プロジェクト名”のプロパティ
構成プロパティで
General>
Platform Target
Visual Studio 2015 (Platform Toolset = 'v140')を選択したら解決できました。
では再ビルド
F7 Build> Build プロジェクト名.mll を選択して
プラグインをビルドします。
ではリリースビルドができあがりました。
- | whaison | C++ | 17:54 | comments(0) | - | pookmark |
- 2016.10.25 Tuesday
- Visual Studio 用 Maya プラグイン ウィザード Maya Plug in Wizardを使う。2 開発デバッグ
-
Visual Studio 用 Maya プラグイン ウィザード Maya Plug in Wizardを使う。2 開発
Mayaでロードしたまま
Maya >ウィンドウ> 設定プリファレンス>プラグインマネージャ
Mayaでロードしたまま変更を加えてビルドすると 成功したビルドを実行なんてしないから「いいえ」だけど
コード 重大度レベル 説明 プロジェクト ファイル 行 抑制状態
LNK1168 エラー cannot open Debug¥MayaPluginWhaison2.mll for writing MayaPluginWizard2C:¥Users¥B07363¥Documents¥maya¥2016¥ja_JP¥scripts¥cpp¥MayaPluginWizard2¥MayaPluginWizard2¥LINK 1
共有違反なのね、Mayaがロード参照してるのに。。変えないでください的な
Mayaのロードを外せばビルドできます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
デバッグとリリースを切り替えます。
ビルド>構成マネージャー...
アクティブソリューション構成のDebugのプルダウンを以下の状態に
それぞれすると構成が切り替わっています。
Debug ...
Release.... (Visual Studio 2012) 向けになっています。
Debugに戻しておきましょう。
---------------------------------------------------------------------------------
プロジェクト>「プロジェクト名」のプロパティ...
左端メニューから
▼構成プロパティ
デバックをクリックすると
Command 右にC:¥Program Files¥Autodesk¥Maya2017¥bin¥maya.exe となっていて
ここでMaya.exeをキックする設定をしています。
Releaseもしてみます
Debugに戻しておきましょう。
---------------------------------------------------------------------------------
コード 重大度レベル 説明 プロジェクト ファイル 行 抑制状態
LNK1201 エラー error writing to program database'C:¥Users¥B07363¥Documents¥maya¥2016¥ja_JP¥scripts¥cpp¥MayaPluginWizard2¥MayaPluginWizard2¥Debug¥MayaPluginWhaison2.pdb';
check for insufficient disk space,
十分なディスク容量をチェックし、
invalid path, or insufficient privilege
無効なパス、または十分な特権MayaPluginWizard2
C:¥Users¥B07363¥Documents¥maya¥2016¥ja_JP¥scripts¥cpp¥MayaPluginWizard2¥MayaPluginWizard2¥LINK 1
エラーが出ましたが
もう一度ビルドすると直りました。
1>------ ビルド開始: プロジェクト:MayaPluginWizard2, 構成:Debug x64 ------
1> MayaPluginWhaison2Cmd.cpp
1>C:¥Program Files (x86)¥MSBuild¥Microsoft.Cpp¥v4.0¥V140¥Microsoft.CppBuild.targets(1189,5): warning MSB8012: TargetPath(C:¥Users¥B07363¥Documents¥maya¥2016¥ja_JP¥scripts¥cpp¥MayaPluginWizard2¥MayaPluginWizard2¥Debug¥MayaPluginWizard2.mll) does not match the Linker's OutputFile property valueリンカのOutputFileはプロパティの値と一致しません
(C:¥Users¥B07363¥Documents¥maya¥2016¥ja_JP¥scripts¥cpp¥MayaPluginWizard2¥MayaPluginWizard2¥Debug¥MayaPluginWhaison2.mll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
1>C:¥Program Files (x86)¥MSBuild¥Microsoft.Cpp¥v4.0¥V140¥Microsoft.CppBuild.targets(1191,5): warning MSB8012: TargetName(MayaPluginWizard2) does not match the Linker's OutputFile property value (MayaPluginWhaison2). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
1> MayaPluginWizard2.vcxproj -> C:¥Users¥B07363¥Documents¥maya¥2016¥ja_JP¥scripts¥cpp¥MayaPluginWizard2¥MayaPluginWizard2¥Debug¥MayaPluginWizard2.mll
========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========MayaPluginWhaison2;
// Hello World Universe whaison5
//
MayaPluginWhaison2;
// Hello World Universe whaison5
// - 続きを読む >>
- | whaison | C++ | 16:12 | comments(0) | - | pookmark |
- 2016.10.25 Tuesday
- Visual Studio 用 Maya プラグイン ウィザード Maya Plug in Wizardを使う。
-
Visual Studio 用 Maya プラグイン ウィザード Maya Plug in Wizard
インストール方
ダウンロード場所のURL
Maya Developer Kit は、オンラインの Autodesk Exchange (https://apps.exchange.autodesk.com/MAYA/ja/Home/Index)で利用可能です。C:¥Users¥<name> にアーカイブをコピーして解凍すると、devkitBase という名前のフォルダが作成されます。devkitBase¥devkit¥plug-ins に多くのサンプル プラグインがあります。Developer Kit には、いくつかの Maya API アプリケーションが含まれ、これらは devkitBase¥devkit¥applications にあります。¥devkit と ¥mkspecs の各フォルダを
C:¥Program Files¥Autodesk¥maya2016.5にコピーします。
C:¥Program Files¥Autodesk¥Maya2016¥devkit
したがって、フォルダ構造は次のようになります。
- C:¥Program Files¥Autodesk¥maya2016.5¥devkit
- C:¥Program Files¥Autodesk¥maya2016.5¥include
- C:¥Program Files¥Autodesk¥maya2016.5¥mkspecs
- C:¥Program Files¥Autodesk¥maya2016.5¥bin
- 続きを読む >>
- | whaison | C++ | 11:35 | comments(0) | - | pookmark |
- 2016.10.24 Monday
- Maya is Clash When "double referenced file " file -importReference Maya2016で2重に子供ファイルをリファレンスした親ファイルを以下のスクリプトを実行するとクラッシュしてしまいます
-
答えはシンプルかもしれません。はじめにパーツの /Scenes/*.mb ファイル もimport しておくことです。解答参照
Maya is Clash When "double referenced file " file -importReference Maya2016で2重に子供ファイルをリファレンスした親
ファイルを以下のスクリプトを実行するとクラッシュしてしまいます
autoDeskForumにポストしてみたページ http://forums.autodesk.com/t5/maya-programming/maya-is-clash-when-quot-double-referenced-file-quot-file/td-p/6382162
Maya is Clash when"the Mayabinary file was reference to the double"
was
loaded with MelScript"
SimpleImportReference()
" below will Clash.
--
--
共有違反
と言われます。
Log.txt
--
--PC Spec
- 続きを読む >>
- | whaison | MEL(Maya Embedded Language) | 15:28 | comments(0) | - | pookmark |
- 2016.10.24 Monday
- MacBootCampでvisual studio 2015 c++で楽に「デバッグなしで開始」をするメモ。
-
MacBootCampでvisual studio 2015 c++で楽に「デバッグなしで開始」をするメモ。
F5 などのデフォルトでキーはつかえないですが
Bootcampの設定コントロールパネル
キーボードのタブで
□F1,F2などのすべてのキーを標準のファンクションキーとして使用に チェックを入れます。
これで「デバッグなしで開始」を
ショートカットキー Ctrl+F5 を使ってコマンド実行することはできます。hello.cpp
#include <stdio.h>
int main(void)
{
printf("こんにちは!¥n");return 0;
}
出力
こんにちは!
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
さらに「デバッグなしで開始」アイコンを表示する
http://cvwww.ee.ous.ac.jp/vc10prog.html#8a
「ボタンの追加または削除」→「カスタマイズ」
プログラムを実行するときに「デバッグなしで開始」コマンドを使用しますが、 このコマンドをメニューから毎回選ぶの面倒なので、 ワンクリックで実行できるようにツールバーにアイコンとして表示 させます。 1 ツールバーのオプションの表示
標準ツールバーの右端にある「標準ツールバーのオプション」ボタンをクリックします。 「ボタンの追加または削除」→「カスタマイズ」
の順にクリックします。 「カスタマイズ」ウィンドウが表示されます。
まず、アイコンを追加する場所を指定します。ここでは、「ソリューション構成」の左隣に追加されるようにするために、「 コントロール」のところで「ソリューション構成」 をクリックします。
「コマンドの追加」をクリックします。「コマンドの追加」ウィンドウが表示されます。
「カテゴリ」で「デバッグ」をクリックしてから、「コマンド」で「デバッグなしで開始」をクリックします。
「OK」をクリックします。
「デバッグなしで開始」が「開始/継続」と「ソリューション構成」との間に追加されています。
「閉じる」をクリックします。標準ツールバーに「デバッグなしで開始」が追加されています。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ーーーーー
さらにCtrl + F5ってなんかちがうんだよなーって場合
visual studio 2015 ショートカット キーのカスタマイズ
https://msdn.microsoft.com/ja-jp/library/aa301747(v=vs.71). aspx [ツール] メニューの
[オプション] をクリックします。
[オプション] ダイアログ ボックスの
[環境] フォルダを開き、
[キーボード] をクリックします。以下の文字列を含むコマンドを表示に
デバッグなしで開始
選択したコマンドへのショートカットに
Ctrl + F5
とでてくるので
下の使用する場所
全体
ショートカットキー
Ctrl + Shift +Alt(option)+Enter をおして
「割り当て」でOK-----------------------------
------------------------------ ------------ これはWindowsの場合だけかもしれないが、
新規>プロジェクト>
プロジェクトウィンドウ>Visual C++ >Win32Console Application
ウィザードの中で表示がでかすぎて設定できないバカウィンドウが出てくる。Ctrl - や Ctrl + をして設定できるサイズにしよう。 実際表示されているテキストの内容はこれだ。------------------------------------------------------------ ----------------- アプリケーション設定
このプロジェクトで作成するアプリケーションの種類と、サポートするオプションまたはライブラリを指定してください。
概要 アプリケーション設定 アプリケーションの種類:
共通ヘッダー ファイルを追加:
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
- | whaison | C++ | 10:20 | comments(0) | - | pookmark |
- 2016.10.20 Thursday
- Unity ProfileAllocationFpsMeasureStatsUGUI.cs CurrentFrame
-
Unity ProfileAllocationFpsMeasureStatsUGUI.cs CurrentFrame
Code:
myStatsGameObject=new GameObject();
myStatsGameObject.AddComponent<ProfileAllocationFpsMeasureStatsUGUI>();
Script Making
Canvas
UnityEngine.EventSystems.EventSystem
UnityEngine.UI.Text
uGui Text .text
60 FPS
60.362 FPS
292 CurrentFrame
Used Mem 22.93 MB
Max Used Mem 22.93 MB
Used Prog Heap 83.21 MB
Mono Used 22.93 MB
Mono Heap 39.93 MB
Total Alloc Mem 83.21 MB
System Memory 32675 MB
Total Reserved Mem 241.28 MB
Total Unused Res-Mem 158.07 MB
Graphic Memory 1993 MB
Allocation rate 1.14 MB
Collection frequency 0.90 s
Last collect delta 0.030 s (33.7 fps)Auto uGui Setting
- | whaison | Unity3d | 18:02 | comments(0) | - | pookmark |
- 2016.10.17 Monday
- Unity 5.5.0b7 Bata Unity5.4.1p4 WARNING: Shader Unsupported: 'Hidden/Internal-MotionVectors' - Pass '' has no vertex shader On Xcode 8.0
-
Unity 5.5.0b7 Bata And
Unity5.4.1p4 WARNING: Shader Unsupported: 'Hidden/Internal-MotionVectors' - Pass '' has no vertex shader On Xcode 8.0Unity5.4.1p4
Xcode Version 8.0 (8A218a)
iPhone 7 iOS10.0.2(14A456)
-------- -------- -------- -------- Xcode OutPut-------- -------- -------- -------- --------
-------- failed compiling:Note: Creation of internal variant of shader 'Hidden/Internal-MotionVectors' failed.
WARNING: Shader Unsupported: 'Hidden/Internal-MotionVectors' - Pass '' has no vertex shader
WARNING: Shader Unsupported: 'Hidden/Internal-MotionVectors' - Setting to default shader.こちらで Fixed in Unity 5.4.0 と解決されたようになってるのは 'Hidden/CubeBlend'だけなんでしょうか?
https://issuetracker.unity3d.com/issues/ios-shader-compilation-failed-error-in-the-log以下全ログ
で
https://www.facebook.com/groups/unityuserj/permalink/1190719494321322/?comment_id=1193658564027415
オフィシャルの方が 使用しているGraphics APIがOpenGLES 2だったりしますか? OpenGLES2の場合は動作せず、サポートするのは厳しいそうです と返信してくださったので !プロジェクトセッティングはOpenGLES2.0 ですね。Metalを指定したら消えました。
プロジェクトセッティング iOSのAuto Graphics APIs のチェックを外すと出てくる
Graphics APIs がOpenGLES 2.0だったんですが
そちらをを Metal にしたらなおりました。
そもそもなぜ今までのプロジェクトがOpenGLES 2.0 を使っていたのかはCriWareなどのプラグイン関係によるところかもしれません。テストプロジェクト
https://bitbucket.org/whaison0422/unitymetaliosunity5.5.0b7
参考リンク
Unity5.3.2 Strip Engine Codeの挙動 iOS Build on XCode:WARNING: Shader Unsupported: 'Hidden/Dof/DX11Dof' - Pass '' has no vertex shader
http://whaison.jugem.jp/?eid=794
Strip Engine Code に関して
AssetBundle使いつつlink.xmlになにか書くのは無意味、、ではなかった!!
http://sassembla.github.io/Public/2016:02:11%204-33-38/2016:02:11%204-33-38.html
link.xml 製造機
http://sassembla.github.io/Public/2016:02:07%2023-39-20/2016:02:07%2023-39-20.html
teratail
https://teratail.com/questions/51422
- | whaison | Unity3d | 17:01 | comments(0) | - | pookmark |