GithubHelp home page GithubHelp logo

unity3d-jp / normalpainter Goto Github PK

View Code? Open in Web Editor NEW
708.0 708.0 115.0 2.92 MB

vertex normal editor for Unity

License: MIT License

C# 30.93% ShaderLab 2.51% CMake 3.37% C 11.91% C++ 51.15% Batchfile 0.12%
unity

normalpainter's People

Contributors

ahmidou avatar i-saint avatar phoxmcleod avatar picopicopiii avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

normalpainter's Issues

feature requests

京野さんから:

  • 途中でモデルが差し替わっても編集を継続できるようにする
  • .asset とかを export する時のデフォルトファイル名の sanitize (e.g. ':' -> '_')
  • デフォルトの Alt + Drag で回転できるのを維持したい

Can't use in Unity2019.2

In 2019.2 is no erroe , but it's don't work
thank you for your share and my English is not good .

can't use in 2019.2.3 either2018.3.5

with last version once open normal painter windows and click "edit normals"button,console log error like this:
TypeLoadException: Generic Type Definition failed to init, due to: Generic class cannot have explicit layout. assembly:D:\TEST\Library\ScriptAssemblies\Assembly-CSharp.dll type:Caster member:(null) signature:
UTJ.NormalPainter.PinnedList`1[T]..ctor (UnityEngine.Vector3[] data, System.Boolean clone) (at Assets/UTJ/NormalPainter/Scripts/PinnedArray.cs:227)
UTJ.NormalPainter.NormalPainter.BeginEdit () (at Assets/UTJ/NormalPainter/Scripts/NormalPainter.cs:242)
UTJ.NormalPainter.NormalPainter.set_editing (System.Boolean value) (at Assets/UTJ/NormalPainter/Scripts/NormalPainter.cs:98)
UTJ.NormalPainter.NormalPainterWindow.OnGUI () (at Assets/UTJ/NormalPainter/Editor/NormalPainterWindow.cs:92)
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <599589bf4ce248909b8a14cbe4a2034e>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <599589bf4ce248909b8a14cbe4a2034e>:0)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <599589bf4ce248909b8a14cbe4a2034e>:0)
UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:359)
UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:353)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:329)
UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect, System.Boolean floatingWindow, System.Boolean isBottomTab) (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:374)
UnityEditor.DockArea.OldOnGUI () (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:341)
UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:298)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:483)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:466)
UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase evt) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:447)
UnityEngine.UIElements.MouseCaptureDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/Events/MouseCaptureDispatchingStrategy.cs:93)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:280)
UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:156)
UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at C:/buildslave/unity/build/Modules/UIElements/Panel.cs:190)
UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:255)
UnityEngine.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:78)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)

but it's turely works fine in 2017.4.25
hope you will fix it ,thx

要望何点か

さっそく試させていただきました!
ブラシが、カーブで調整できるのが神がかっています…。
ちょっと触ってみて何点か対応お願いしたい要望があります。

・ブラシのサークルの描画
このようにブラシのサークルを描画するのは難しいでしょうか?
影響範囲はグラデーションで描画されているのですが、いまいち範囲の感覚を掴めないのと頂点表示をオフにしてしまうと範囲が分からなくなるためサークル表示に対応できればと思います。
default

・ポリゴンの切れ目の頂点の選択&同一座標の頂点への法線のコピー&ペースト
例えば、首のつなぎ目の法線を合わせるためにHeadオブジェクトのポリゴンの切れ目の法線を選択して、Neckオブジェクトの同一座標の頂点に法線をコピーするというようなことをよくDCCツールで行っています。
なので、選択しているオブジェクトの切れ目の頂点を選択する機能が欲しいです。

また、それらの接続頂点に対してスムーズを掛けることもありますが中間値になるとおかしくなる場合もあり片側の法線をコピーして適用するというのを行うことがあります。
なので、単純に同一座標の頂点に対して法線をコピーする機能が欲しいです。
こちらパット見た限り無かったと思うのでうが、どこかのEditで可能でしょうか?

・ブラシサイズ調整にショートカット割当
ブラシのサイズを調整するのにPhotoshopと同じように[と]キーでサイズ変更できるようにできたら良いなと思いました。

・Display項目の一括オンオフ
Display項目の全ての項目を一括でオンオフして表示非表示できるボタンを追加できないでしょうか。

対応ご検討宜しくお願い致します。
素晴らしいツールをありがとうございます!

Todo to Next Release

  • Bone が空の SkinnedMeshRenderer で表示がおかしくなるのを直す
  • Mac でツール起動直後表示がめちゃくちゃになるのを直す
    • vertex tweaker で修正済み。StructuredBuffer へのインデックスアクセスでそのシェーダの全ての pass がおかしくなるっぽい不思議バグ
  • ポリゴン単位の表示/非表示
    京野さんから。口の中とかを編集したい場合に必要不可欠とのこと。表示用 Mesh と実データ Mesh を別にして、表示用 Mesh の index を変えれば実現できるかも?

2021.3.13f1使用的是发布的Normal Pointer出现异常

我将包导入到Unity 2021.3.13f1中,使用的是发布的Normal Pointer最新的。当我再Window中点击NormalPointer时却出现如下错误:

TypeLoadException: Generic Type Definition failed to init, due to: Generic class cannot have explicit layout. assembly:D:\GameWorkSpace\Unity\Porject\Game_Study\Library\ScriptAssemblies\Assembly-CSharp.dll type:Caster member:(null)
UTJ.NormalPainter.PinnedList`1[T]..ctor (UnityEngine.Vector3[] data, System.Boolean clone) (at Assets/UTJ/NormalPainter/Scripts/PinnedArray.cs:227)
UTJ.NormalPainter.NormalPainter.BeginEdit () (at Assets/UTJ/NormalPainter/Scripts/NormalPainter.cs:242)
UTJ.NormalPainter.NormalPainter.set_editing (System.Boolean value) (at Assets/UTJ/NormalPainter/Scripts/NormalPainter.cs:98)
UTJ.NormalPainter.NormalPainterWindow.OnGUI () (at Assets/UTJ/NormalPainter/Editor/NormalPainterWindow.cs:92)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition) (at <dc1a47a5816e4be7bc6817ee4d339e75>:0)
UnityEditor.DockArea.DrawView (UnityEngine.Rect dockAreaRect) (at <dc1a47a5816e4be7bc6817ee4d339e75>:0)
UnityEditor.DockArea.OldOnGUI () (at <dc1a47a5816e4be7bc6817ee4d339e75>:0)
UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <0b1cb8f4dac44a9698c79ef2d7b929aa>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <0b1cb8f4dac44a9698c79ef2d7b929aa>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <0b1cb8f4dac44a9698c79ef2d7b929aa>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Boolean canAffectFocus) (at <0b1cb8f4dac44a9698c79ef2d7b929aa>:0)
UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUIRaw (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <0b1cb8f4dac44a9698c79ef2d7b929aa>:0)
UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUI (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <0b1cb8f4dac44a9698c79ef2d7b929aa>:0)
UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase evt) (at <0b1cb8f4dac44a9698c79ef2d7b929aa>:0)
UnityEngine.UIElements.CallbackEventHandler.HandleEventAtTargetPhase (UnityEngine.UIElements.EventBase evt) (at <0b1cb8f4dac44a9698c79ef2d7b929aa>:0)
UnityEngine.UIElements.MouseCaptureDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <0b1cb8f4dac44a9698c79ef2d7b929aa>:0)

当我不顾警告点击edit Normals时出现如下错误:

TypeLoadException: Failure has occurred while loading a type.
UTJ.NormalPainter.PinnedList`1[T]..ctor (UnityEngine.Vector3[] data, System.Boolean clone) (at Assets/UTJ/NormalPainter/Scripts/PinnedArray.cs:227)
UTJ.NormalPainter.NormalPainter.BeginEdit () (at Assets/UTJ/NormalPainter/Scripts/NormalPainter.cs:242)
UTJ.NormalPainter.NormalPainter.set_editing (System.Boolean value) (at Assets/UTJ/NormalPainter/Scripts/NormalPainter.cs:98)
UTJ.NormalPainter.NormalPainterWindow.OnGUI () (at Assets/UTJ/NormalPainter/Editor/NormalPainterWindow.cs:92)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition) (at <dc1a47a5816e4be7bc6817ee4d339e75>:0)
UnityEditor.DockArea.DrawView (UnityEngine.Rect dockAreaRect) (at <dc1a47a5816e4be7bc6817ee4d339e75>:0)
UnityEditor.DockArea.OldOnGUI () (at <dc1a47a5816e4be7bc6817ee4d339e75>:0)
UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <0b1cb8f4dac44a9698c79ef2d7b929aa>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <0b1cb8f4dac44a9698c79ef2d7b929aa>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <0b1cb8f4dac44a9698c79ef2d7b929aa>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Boolean canAffectFocus) (at <0b1cb8f4dac44a9698c79ef2d7b929aa>:0)
UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUIRaw (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <0b1cb8f4dac44a9698c79ef2d7b929aa>:0)

Feedback and feature request

Okay so firstly this tool are really cool, i'm impressed how fast it is. This tool should be a standard built in tool in unity.
alright some request that could make this tool more awesome for artist

  1. Add support for terrain( as normal source only), this could be usefull for blending mesh to terrain
  2. Projection brush mode, so we can apply the projected normal from other mesh by painting the target mesh directly.

just one issue i find, sometimes the projection doesn't work
image
I'm trying to project the underlying plane normal into selected mesh to blend them, but the normal projection not working.
but maybe it's just me do something wrong, let me know what are your thought about this.
Oh forgot to add, issue found in 2017.1 f3
Thanks

Macでエラー

Unity2019.4.31f1をMac M1(OS11.7.3)で使用しています。インポートした後、Add Normal Painter を選択すると [Package“NormalPainterCore.bundle” cannot be opened because the developer cannot be verified.] というエラーが発生し、[DIINotFoundException: NormalPainterCore]と赤文字も表示されます。解決策はありますか?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.