Forgot your password?   Click here   •   No account yet?   Please Register    •   Or login using  
JA ログイン
SideFX Homepage
  • 製品
    • H20.5 新機能
      • 概要
      • VFX
      • Copernicus
      • Animation
      • Rigging
      • Lookdev
    • Houdini
      • 概要
      • FX 機能
      • CORE 機能
      • Solaris
      • PDG
    • Houdini Engine
      • 概要
      • Engine プラグイン
      • バッチ処理
    • Karma Renderer
    • 製品比較
    • SideFX Labs
    • Partners
  • 業界
    • Film & TV
    • ゲーム開発
    • モーショングラフィクス
    • Virtual Reality
    • AI/ML 向けデータ合成
  • コミュニティ
    • フォーラム
    • ニュース
      • 概要
      • カスタマ ストーリー
      • Houdini HIVE Events
      • Contests & Jams
    • Gallery
    • イベントカレンダー
    • User Groups
    • Artist Directory
  • 学習
    • Start Here
      • 概要
      • My Learning
      • ラーニングパス
      • チュートリアル
    • コンテンツライブラリ
    • Tech Demos
    • Houdini 講演
    • 教育プログラム
      • 概要
      • 学生
      • 講師
      • 管理者
      • List of Schools
      • 学習リソース
  • サポート
    • カスタマーサポート
    • ヘルプデスク FAQ
    • Houdini システム環境
    • ドキュメント
    • Changelog / Journal
    • Report a Bug/RFE
  • Get
    • Try
    • 購入
    • ダウンロード
    • お問い合わせ
 
Advanced Search
Forums 検索
Found 66 posts.

Search results Show results as topic list.

Technical Discussion » Retrieve Python Panel of current node

User Avatar
julien-b
66 posts
Offline
 2024年5月18日 05:06:12
Hi all,

I'm working on a python panel for a custom HDA, and I was wondering if there was a way to get the python panel attached to the current node I'm on..?
I'd like to do some operations in the HDA, and pass those updates onto the Python Panel.

Any insight would be great!

Thanks in advance,

Julien
Edited by julien-b - 2024年5月18日 18:40:27
See full post 

Technical Discussion » HDA "widget-style" parms

User Avatar
julien-b
66 posts
Offline
 2020年10月26日 18:12:08
Hey guys,

I'm building an HDA with a somewhat complex set of parms and I wonder if there would be a way to group a few parms together to create an uber parm block, so I can duplicate it around for other parms, a little bit like what you can create in pyqt with widgets.
I read about Import blocks a bit, but I don't think they can do what I want.

For example, let's assume that I have a block of parms as follow :
- A toggle
- A label
- A min value
- A max value
- A variation value
- etc.


So now I want a Parm block for let's say “density” and “rotation”, same ui, same behaviour, just different Parm names. I can duplicate manually the parms, but it would be great to have such a “block” to control the overall UI/logic, specially if I want to change the global look and feel later.

I assume this is something that is probably not doable, but maybe there is a way ?

Let me know,

Thanks a lot,

Julien
See full post 

Technical Discussion » Python states and Edit Node

User Avatar
julien-b
66 posts
Offline
 2020年10月3日 10:00:58
Hi guys,

Is there a hook to be able to get the behaviour of a Edit Sop as the default state of an HDA ? Or is there a Python Viewer State for that ?

Thanks,

Julien
See full post 

Technical Discussion » Loop networks not updating properly

User Avatar
julien-b
66 posts
Offline
 2020年8月25日 14:19:46
In case this happens to anyone…

If you have OTLs with a lot of loops, it is quite important to use spare inputs and protect any input feeding the loops with some begin block nodes. It seems like it fixed all the issues for me (so far…)

Cheers,

Julien
See full post 

Technical Discussion » Loop networks not updating properly

User Avatar
julien-b
66 posts
Offline
 2020年8月24日 02:45:10
Yes, I tried this already and it didn't work. I wouldn't be sustainable anyway as it would ultimately be inside an HDA …
See full post 

Technical Discussion » Loop networks not updating properly

User Avatar
julien-b
66 posts
Offline
 2020年8月23日 15:02:32
Hey guys,

As I'm building more and more complex scenes, using custom OTLs and switching between SOPs and LOPs, I'm getting weird behaviour with For Each loop nodes, where they don't update and/or evaluate properly. If let's say I loop over 5 named primitives, merging iterations, I end up with 5 times the first iteration… The interesting part is, if I look at individual iteration (using single pass), they evaluate properly individually. If I do a cut/paste of the entire loop graph, I get what I need, but it's obviously not sustainable.

I'm trying to isolated a bug on a single scene, and so far, it's proven really hard…

So if you have encountered the same issue, and you have pointers of the type of things to look for, that would be great!

Thanks a lot,

Julien
See full post 

Technical Discussion » Take a screenshot of the Network Editor

User Avatar
julien-b
66 posts
Offline
 2020年8月10日 04:27:45
Thanks Marc!

Unfortunately, I had to make it work in Linux. But I found a little trick :

networkEditor.setCursorPosition(hou.Vector2(0,0))
origin = QCursor.pos()

Basically putting the cursor at the origin of the networkEditor and retrieving the cursor position in Qt.
I had to do all sorts of conversions to get back on my feet, but it works

Cheers,

Julien
Edited by julien-b - 2020年8月10日 04:29:44
See full post 

Technical Discussion » Will recursion be supported in wrangle in the next version ?

User Avatar
julien-b
66 posts
Offline
 2020年8月9日 07:30:36
If it helps, you can implement recursion in what's called “stack base recursion”. Not as elegant and simple to implement as traditional recursion, but it works.
I followed this to get the idea : https://sergeneren.com/2018/09/23/recursion-in-vex/ [sergeneren.com]
See full post 

Technical Discussion » Take a screenshot of the Network Editor

User Avatar
julien-b
66 posts
Offline
 2020年8月9日 07:22:58
Hi guys,

I'm trying to find a way to take a screenshot of the selected nodes of the networkEditor. Did anyone managed to do the same already ?

So far, I got everything I needed, the coordinates in screen space of the bounding rect I need to capture (based on the selected nodes), but it's expressed in local space of the networkEditor.

The next (and last) step for me would be to “just” get the position of the networkEditor in screen space, but this is something that is not available in the Python API.

I tried to go through the Qt Widgets in an attempt to find the one that describes the networkEditor, but without any success.

Please let me know if you had ideas on how to solve this…

Thanks a lot,

Julien
See full post 

Technical Discussion » Packages expression syntax

User Avatar
julien-b
66 posts
Offline
 2020年8月9日 07:16:03
I see, thanks!

One thing I tried though what to put that houdini_env in the package itself, it didn't work either …

Problem is, I can't put it in my env.csh, but that's a problem I'll have to solve somewhere else …
See full post 

Technical Discussion » SceneViewer as QWidget in H18

User Avatar
julien-b
66 posts
Offline
 2020年8月9日 07:13:23
Hi guys,

I'm trying to do the same for the network Editor, but even going (recursively) through all the Qt widgets from the hou.qt.mainWindow(), I can't find the right widget …

Any thought ?

Thanks a lot,

Julien
See full post 

Technical Discussion » Packages expression syntax

User Avatar
julien-b
66 posts
Offline
 2020年8月7日 18:00:36
Hi guys,

I've been trying to get expressions in packages working, but I've come to a dead end.

Here is a snippet of what I'm trying to do :

{
    "env": [
            {
            "MYPROJECT_PATH": 
                [
                    { "$houdini_dev == '0'" : "/global/path" },
                    { "$houdini_dev == '1'" : "/dev/path" }
                ]
            },
            {
            "TOOLS_PATH": "/my/other/path"
            }
           ]
}

In my houdini.env, I have a houdini_dev variable that I want to use to switch between the global project and a local project.
But this doesn't seem to work.
If I check the environment variables in Python once Houdini is loaded, I can see my houdini_dev variable, as well as TOOLS_PATH but MYPROJECT_PATH is not there.

What am I doing wrong here ?

Thanks a lot,

Julien
See full post 

Technical Discussion » Node dependencies in Python

User Avatar
julien-b
66 posts
Offline
 2020年8月6日 18:05:35
Thanks Jonathan, I will have a look.
In the meantime, I think I managed to get what I needed by writing a recursive function that inspects the references of a given list of nodes. The function find the references of each node, then look at their ancestors for new references, etc.
I don't think it's necessarily future proof, and I'll keep testing it further, but for now I think I got what I needed.

Please let me know if you guys feel like there is something wrong with what I'm doing.

### RETURNS REFERENCES FROM A GIVEN NODE ###
### Ignores the references inside a hda, as they are considered self contained ###
def getReferences(node):

    references = []

    if isNodeHDA(node):
        references = list(node.references(include_children=False))

        ### Removes children if referenced in the hda ###
        for reference in references:
            if isNodeChildOf(reference,node):
                references.remove(reference)
    else:
        references = node.references(include_children=True)

    references = list(set(references))

    ### Removes the node if it references itself ###
    if node in references:
        references.remove(node)

    return references

### RETURNS ALL DEPENDENCIES FOR A GIVEN NODE
def getAllDependencies(nodes, level=0, maxdepth=10):

    dependencies = []

    if level == maxdepth:
        return dependencies

    for node in nodes:
        references = getReferences(node)

        ## for each reference, get ancestors
        for reference in references:
            ancestors = reference.inputAncestors(include_ref_inputs=True,only_used_inputs=False)
            newDependencies = getAllDependencies(ancestors,level+1,maxdepth)
            newDependencies.append(reference)

            for dependency in newDependencies:
                if dependency not in dependencies:
                    dependencies.append(dependency)

    result = []
    for dependency in dependencies:
        if dependency not in nodes:
            result.append(dependency)

    return result
Edited by julien-b - 2020年8月6日 18:06:10
See full post 

Technical Discussion » Node dependencies in Python

User Avatar
julien-b
66 posts
Offline
 2020年8月6日 10:57:21
I don't think that's what the dependents function does.
This function returns a list of nodes referencing the given node.
See full post 

Technical Discussion » Node dependencies in Python

User Avatar
julien-b
66 posts
Offline
 2020年8月6日 04:39:30
Hey guys,

I need to find a way to retrieve the nodes that are referenced by the entire hierarchy used to cook a given node.
With node.references, node.inputAncestors, etc. I think I can get something, but Houdini has a visual representation of this already :


And this is exactly what I need. I want to know which nodes at the same level of the node selected are needed for the selected node.
Is there a function I don't know of that already does this ?

Thanks a lot,

Julien
See full post 

Technical Discussion » Double click on a node callback

User Avatar
julien-b
66 posts
Offline
 2020年7月21日 13:00:07
Hey guys,

Is there a way to detect double click (dive target) on a node/hda callback ?
Right now, if I add a callback on the “appearenceChanged” event, I just get a “Picked” result that is no different from a single click.

Thanks a lot,

Julien
See full post 

Technical Discussion » HDA Type Properties - Node Tab in Python

User Avatar
julien-b
66 posts
Offline
 2020年6月14日 14:42:16
ah I see!

I got confused because the guides is the fist thing I looked at, and it was not in the sections, whereas some other ones like “Dive Target” and “Editable Node” are …

Thanks!
See full post 

Technical Discussion » HDA Type Properties - Node Tab in Python

User Avatar
julien-b
66 posts
Offline
 2020年6月14日 13:11:47
Hi guys,

I was looking around to see how to access (get/set) any of the parameters of the Node tab of a HDA type properties, but couldn't find anything in the doc.
How can I get/set the guides, editable nodes, dive targets etc. in Python ?

Thanks a lot,

Julien
See full post 

Technical Discussion » Node ancestors needed for cooking

User Avatar
julien-b
66 posts
Offline
 2020年5月19日 16:47:19
Hi guys,

Is there a way to query which ancestors of a given node are required to cook ?
Node.getAllAncestors() returns all the ancestors regardless if they need cooking or not.
If you have switches or others, parts of the ancestors would be ignored.

Please let me know!

Thanks a lot,

Julien
See full post 

Technical Discussion » Quaternion Vex/Python equivalents

User Avatar
julien-b
66 posts
Offline
 2020年5月18日 18:19:07
Ok, I think I found the answer : dihedral seems to be the vex equivalent of Quaternion.setToVectors() !

Cheers,

Julien
See full post 
  • 最初
  • 1
  • 2
  • 3
  • 4
  • 最後
  • Quick Links
Search links
Show recent posts
Show unanswered posts
製品
  • Houdini
  • Houdini Engine
  • Houdini Indie
学習
  • Houdini 講演
  • 教育プログラム
サポート
  • カスタマーサポート
  • ヘルプデスク FAQ
  • ドキュメント
  • Report a Bug/RFE
  • Sales Inquiry
LEGAL
  • Terms of Use (英語)
  • Privacy Policy (英語)
  • License Agreement (英語)
  • Accessibility (英語)
  • Responsible Disclosure Program
COMPANY
  • SideFX社について
  • Careers
  • Press
  • T-Shirt Store
  • Internships
  • お問い合わせ
Copyright © SideFX 2025. All Rights Reserved.

使用言語