ROG Zephyrus G14 AnimeMatrixが機能しない場合

ASUS Zephyrus rog g14 の Anime Matrix が機能しません。
購入当初はたしかに機能していたのですが、背面のLEDが機能しなくなりました。

AURA Serviceというアプリをアンインストールして
下からインストールしなおす。ことで直った。

https://asus-armoury-crate-install-tool.en.uptodown.com/windows/versions

ZIP 3.1.4.0 Jun 10, 2022
をダウンロード
asus-armoury-crate-install-tool-3-1-4-0 .zip

バックアップ

https://drive.google.com/file/d/1-kHwe8xfk2089bymdZk1Z-3SeBz_HsVL/view?usp=sharing

[UE5.3]の中で[無印良品風][公園の時計]をTransform(Modify)Boneで動かしてみたよ!公園の時計風なモデルもDL可

まずは、公園の時計風なモデルをダウンロード。

https://drive.google.com/file/d/1kOSN-d3FBGz1r7yMNBbxN1Q8yAvClOo6/view?usp=sharing

でこう。

1

2

参考URL

https://qiita.com/unknown_ds/items/11baa179e7712b2ceea5

https://docs.unrealengine.com/5.3/ja/animation-blueprint-transform-bone-in-unreal-engine/

LOD Threshold が-1ってどういう意味?

エンジンのソース

エンジンのFAnimNode_SkeletalControlBase クラスを見てもわかりませんでした。

各スケルタル制御ノードの [Details (詳細)] パネルでは、ノードに適用される LOD しきい値 を設定できます。[LOD Threshold] で定義した値が、当該のスケルタル制御ノードで使用される最大の LOD レベルとなります。それより上の LOD レベル (より低品質のモデル) では、当該のスケルタル制御ノードが無視されます。

ボーン トランスフォームを計算するよう、LOD レベルのスケルタル制御ノードを制限することで、アニメーション システムのパフォーマンス コストを削減することができます。

カメラから何m離れたらどういう動作になるみたいなところが。
については画像を参考にしてください。画像はControlRigにLOD Thresholdを設定してオンかオフかを見ています。


LOD Thresholdは整数のみです。
-1:LOD Thresholdを-1と設定しておくのがデフォルトなので=ControlRigノードをずっと計算する。って意味です。


0:LOD Thresholdを0に設定すると(LODの現在値が0以下つまり0のときオン)4mまでオン カメラから4m離れたらオフになります。


1:LOD Thresholdを1に設定すると(LODの現在値が1以下つまり0と1のときオン)10mまでオン カメラから10m離れたらオフになります。


2:LOD Thresholdを2に設定すると(LODの現在値が2以下つまり0と1と2のときオン)135m?計測不能な遠さまでずっとオン
でした。

参考URL
https://dev.epicgames.com/documentation/ja-jp/unreal-engine/animation-blueprint-skeletal-controls-in-unreal-engine?application_version=5.0
https://dev.epicgames.com/documentation/ja-jp/unreal-engine/skeletal-mesh-lods-in-unreal-engine?application_version=5.0

[Maya][Python]round protrusion sphere Thorns sphere 3d model 丸い突起のついた球。

round protrusion sphere Thorns sphere 3d model

つぶつぶのついた球を探したけどなくてpythonで作ったよ

#sphire_vertex_position_shpire.py
BaseSphere=cmds.polySphere(sx=25, sy=12, r=6,axis=[0,0,0])
BaseSphere=BaseSphere[0]
print("BaseSphere= "+str(BaseSphere))

import maya.cmds as cmds

def get_vertex_positions(obj_name):
    vertex_positions = []
    vertices = cmds.ls(obj_name + '.vtx[*]', fl=True)
    for vertex in vertices:
        pos = cmds.xform(vertex, q=True, ws=True, t=True)
        vertex_positions.append(pos)
    return vertex_positions

vertex_positions = get_vertex_positions(BaseSphere)
print(vertex_positions)

for v_pos in vertex_positions:
    mySphere=cmds.polySphere(sx=15, sy=10, r=1)
    cmds.xform(mySphere, translation=(v_pos[0],v_pos[1],v_pos[2]) ,absolute=1,worldSpace=1)

[UE5.3][Retarget]mixamo animation Retarget to UE5.3 Tips Edit Retarget Poseそんなとこにあったのかいって記事です。

Edit Retarget Poseそんなとこにあったのかいって記事です。

Mixiamoからデフォルトのまま(root移動しないIn Placeオプション付けて)アニメーションダウンロード

idleポーズなど何でもいいのでmixamo.fbxとファイル名を書き換えてインポートするとskeltonもその名前になるので見やすいです。
その1つを読み込みSkelton Noneで Importします。

他のファイルを上記のスケルトンでインポートします。

IKRig_mixamoをIKゴールとかソルバとかなしでチェーンだけで作ります

それに合わせて合わせて

IKRig_mannyをIKゴールとかソルバとかなしでチェーンだけで作ります

IKRetargeterでソースにmixamo ターゲットに作ったUE5_Manny

:からEdit Retarget Poseを選びます。(またはTposeを読み込みます)

斜めから見ても合うように+基本はTなので肘とかは棒になるようにします。

でできたああ!あとは書き出して使うだけ。

ここまで作業した 自分用リンク

https://drive.google.com/file/d/1KbIDgPs8oSwBlVK_DV_1adJUNfFhl4iP/view?usp=sharing

参考URL この動画だけどこのままやるとモーションがガタガタになったのでアレンジした↑

[maya][PySide2][QtWidgets]PySide2.QtWidgets.QApplication’ object has no attribute ‘close’

QApplicationをコードで自動で閉じようとするときに出たエラーの解決方法です。

PySide2.QtWidgets.QApplication’ object has no attribute ‘close’

Question : QMainWindow

class DF_TalkUI(QMainWindow):


    def __init__(self, parent = None):

Answer : QWidget

class DF_TalkUI(QWidget):


    def __init__(self, parent = None):

Fix Code


#------------------------------------------------------------------------------------------------------------------------------------------


# -*- coding: utf-8 -*-
import os
from functools import partial
import time
import imp

"""
PySide2モジュールを探し、ある場合はそちらをインポートします。
"""
try:
    imp.find_module('PySide2')
    from PySide2.QtWidgets import *
    from PySide2.QtGui import *
    from PySide2.QtCore import *

except ImportError:
    from PySide.QtGui import *
    from PySide.QtCore import *


LOGO_IMAGE = r"画像のパスをここに入れてください。"


def get_maya_pointer():
    """
    Mayaのメインウィンドウを取得する関数
    """
    try:
        import maya.cmds as cmds
        from maya import OpenMayaUI

    except ImportError:
        return None

    """
    実は2017ではshibokenも2になっているので、あればshiboken2をインポートします。
    """
    try:
        imp.find_module("shiboken2")
        import shiboken2
        return shiboken2.wrapInstance(int(OpenMayaUI.MQtUtil.mainWindow()), QWidget)

    except ImportError:
        import shiboken
        return shiboken.wrapInstance(int(OpenMayaUI.MQtUtil.mainWindow()), QWidget)






class DF_TalkUI(QWidget):


    def __init__(self, parent = None):
        super(DF_TalkUI, self).__init__(parent)
        self.setObjectName("DF_Talk_Window")
        self.setWindowTitle("DF Talk Window")
        #self._initUI()
        self.errorDialog = QErrorMessage(self) # QErrorMessageインスタンスの保持
        self.Window = self

    def myInit(self,qApp,refPath):
        self.qApp=qApp
        self.wrapper=wrapper = QWidget()
        #self.setCentralWidget(wrapper)

        mainLayout = QVBoxLayout()
        self.mainLayout= mainLayout
        wrapper.setLayout(mainLayout)

        #-----------------------------------------------------------------------
        # sixth row
        #-----------------------------------------------------------------------
        sixthHorizontalArea = QHBoxLayout()
        sixthHorizontalArea.setSpacing(20)
        mainLayout.addLayout(sixthHorizontalArea)


        """
        progressDialogBtn = QPushButton("Progress Dialog")
        sixthHorizontalArea.addWidget(progressDialogBtn)
        progressDialogBtn.clicked.connect(self.havyfunc)
        """
        #---------------------------
        self.havyfunc(refPath)
        #-----------------------------

        #-----------------------------------------------------------------------
        # seventh row
        #-----------------------------------------------------------------------
        #self.havyfunc()

    def _showProgressDialog(self):
        print("---------------------ProgressBar Starting--------------------------")

        self.max = 100
        self.progressDialog = QProgressDialog("Progress...", "Cancel", 0, self.max, self)
        self.progressDialog.setWindowTitle("Progress Dialog")
        self.progressDialog.show()
    
    def setProgress(self,count):
        print("---------------------setProgress ( "+str(count)+"/100 )--------------------------")
        self.qApp.processEvents()
        if self.progressDialog.wasCanceled():
            self.progressDialog.setValue(100)
        self.progressDialog.setValue(count)
        self.progressDialog.setLabelText("Progress... %d %%" % count)


    def havyfunc(self,refPath):
        
        #--------------------------------------------------
        self._showProgressDialog()
        self.setProgress(1)
        #--------------------------------------------------
        duplicatedMesh_vtx_arr=[1,2,3,4,5]
        duplicatedMesh_vtx_arr_len=len(duplicatedMesh_vtx_arr)
        
        cmds.file(refPath, ignoreVersion=1, type="mayaAscii", namespace=":", r=1, gl=1, mergeNamespacesOnClash=False, options="v=0;")
        """
        for i in range(0,duplicatedMesh_vtx_arr_len):
            
            
            #---------------------------------------------------
            parcent=(100*i/duplicatedMesh_vtx_arr_len) /2
            self.setProgress(parcent)
            print("setProgress("+str(parcent)+")")
            time.sleep(0.1)
            #---------------------------------------------------
            
            #重たい処理1
        
        for i in range(0,duplicatedMesh_vtx_arr_len):
            
            #---------------------------------------------------
            parcent=(100*i/duplicatedMesh_vtx_arr_len) /2 +50
            
            self.setProgress(parcent)
            
            print("setProgress("+str(parcent)+")")
            time.sleep(0.1)
            #---------------------------------------------------
            #重たい処理2
        """      
        #--------------------------------------
        self.setProgress(100)
        print("setProgress("+str(100)+")")

        self.MyHide()
        #self.closeEvent(QCloseEvent)
        #--------------------------------------
    def MyHide(self):
        self.resize(2, 1)  # 幅800、高さ600
        self.Window.move(10000, 10000) #X 10000 Y 10000


        """
        #self.mainLayout.close()
        self.wrapper.hide()
        self.wrapper.close()
        self.Window.hide()
        self.Window.close()
        self.close()
        """


    def _makeHorizontalLine(self):
        hline = QFrame()
        hline.setFrameShape(QFrame.HLine)
        hline.setFrameShadow(QFrame.Sunken)
        return hline






def start(app,refPath):
    maya_win = get_maya_pointer()
    ui = DF_TalkUI(parent = maya_win)
    ui.myInit(app,refPath)
    ui.show()
    return ui


def starter(refPath):
    app = QApplication.instance()
    if app is None:
        app = QApplication([])
    ui = start(app,refPath)
    app.exec_()
    
#=----------------------------------------------------------------------------------------------
# -*- coding: utf-8 -*- 
from maya import cmds 
import pymel.core as pm 

def mosa_anim_func10_2to10_3_reference(RigIDNum):
	
	reference_path="D:/MOSADesign/WorkData/Avatar/" + RigIDNum + "/Motion/Rig/PL_" + RigIDNum + "_rig.ma"
	#cmds.file(reference_path, ignoreVersion=1, type="mayaAscii", namespace=":", r=1, gl=1, mergeNamespacesOnClash=False, options="v=0;")
	starter(reference_path)
print("__name__  = "+__name__ )
if __name__ == '__main__':
    mosa_anim_func10_2to10_3_reference("005")

参考

https://forum.freecad.org/viewtopic.php?t=43989

maya mel python 環境変数 一覧 path MAYA_SCRIPT_PATH

maya mel python environment variables list path MAYA_SCRIPT_PATH

MEL

//getenv "MAYA_SCRIPT_PATH";//パスを確認

$sPath=`getenv "PATH"`;
print("$sPath= "+$sPath+"\n");
$sMAYA_SCRIPT_PATH=`getenv "MAYA_SCRIPT_PATH"`;
print("$sMAYA_SCRIPT_PATH= "+$sMAYA_SCRIPT_PATH+"\n");

$array = stringToStringArray($sMAYA_SCRIPT_PATH, ";");

for ($MSP in $array) {
    print($MSP+"\n");
}

Python

import os
print("------------------------PATH---------------------------")
ePath = os.environ["PATH"]
ePath_List=ePath.split(";")
for ePath_line in ePath_List:
    #for ev in environ:
    print(ePath_line)

print("------------------------MAYA_SCRIPT_PATH-----------------------------")

mayaScriptPath = os.environ["MAYA_SCRIPT_PATH"]
mayaScriptPath_List=mayaScriptPath.split(";")
for mayaScriptPath_line in mayaScriptPath_List:
    #for ev in environ:
    print(mayaScriptPath_line)

[maya] scriptJob は実行中には中断できません。のエラーを回避する方法

scriptJob でMayaの状態を監視することができるが、その監視を終わらせる際にエラーが出る
日本語のエラー:scriptJob は実行中には中断できません。 #
英語のエラー:scriptJob cannot be killed while it is running. #

実行中のそれを回避するために、evalDeferredでコマンドを囲って遅延させて実行させる。

mel

global int $jobNum;
global proc myScriptJobFunctionName(){
      global int $jobNum;
      print("func $jobNum="+$jobNum+"\n");
      //scriptJob -kill $jobNum;  
      evalDeferred("myDeferredFunctionName();");  
}
global proc myDeferredFunctionName(){
      global int $jobNum;
      print("func Deferred  $jobNum="+$jobNum+"\n");
      scriptJob -kill $jobNum;  
}
$jobNum = `scriptJob -event "SceneOpened" "myScriptJobFunctionName();"`;
print("$jobNum="+$jobNum+"\n");
//scriptJob -kill $jobNum;


file -f -options "v=0;"  -ignoreVersion  -typ "mayaAscii" -o "D:/MOSADesign/WorkData/Avatar/005/Motion/Rig/PL_005_Reference_Model.ma";

python

import maya.cmds as cmds

class ScriptJobber():
    def starter(self):
    
        #scriptJoblistEvents=cmds.scriptJob(listEvents=True)
        #print(scriptJoblistEvents)
    
        #for EventName in scriptJoblistEvents:
        #    print(EventName)
        
        
        
        #self.jobNum = cmds.scriptJob(event=("idle", 'Class_ins.idleTimeFunc()'))
        self.jobNum = cmds.scriptJob(event=("SceneOpened", 'Class_ins.SceneOpenedTimeFunc()'))
        #self.jobNum = cmds.scriptJob(event=("SceneOpened", 'Class_ins.SceneOpenedTimeFunc()'),runOnce = True, killWithScene = True)
        print("self.jobNum= "+str(self.jobNum))
    
    
    def SceneOpenedTimeFunc(self):
        print("SceneOpenedTimeFunc")
        print("SceneOpenedTimeFunc self.jobNum= "+str(self.jobNum))
        #cmds.scriptJob( kill=Class_ins.jobNum, force=True)
        cmds.evalDeferred("cmds.scriptJob( kill=Class_ins.jobNum, force=True)")
    
    def idleTimeFunc(self):
        print("idleTimeFunc")
        print("idleTimeFunc self.jobNum= "+str(self.jobNum))
        #cmds.scriptJob( kill=self.jobNum, force=True)
        cmds.evalDeferred("cmds.scriptJob( kill=Class_ins.jobNum, force=True)")
        
Class_ins=ScriptJobber()
Class_ins.starter()


"""
linearUnitChanged
timeUnitChanged
angularUnitChanged
Undo
undoSupressed
Redo
customEvaluatorChanged
serialExecutorFallback
timeChanged
currentContainerChange
quitApplication
idleHigh
idle
idleVeryLow
RecentCommandChanged
ToolChanged
PostToolChanged
ToolDirtyChanged
ToolSettingsChanged
tabletModeChanged
DisplayRGBColorChanged
animLayerRebuild
animLayerRefresh
animLayerAnimationChanged
animLayerLockChanged
animLayerBaseLockChanged
animLayerGhostChanged
cteEventKeyingTargetForClipChanged
cteEventKeyingTargetForLayerChanged
cteEventKeyingTargetForInvalidChanged
teClipAdded
teClipModified
teClipRemoved
teCompositionAdded
teCompositionRemoved
teCompositionActiveChanged
teCompositionNameChanged
teMuteChanged
cameraChange
cameraDisplayAttributesChange
SelectionChanged
PreSelectionChangedTriggered
LiveListChanged
ActiveViewChanged
SelectModeChanged
SelectTypeChanged
SelectPreferenceChanged
DisplayPreferenceChanged
DagObjectCreated
transformLockChange
renderLayerManagerChange
renderLayerChange
displayLayerManagerChange
displayLayerAdded
displayLayerDeleted
displayLayerVisibilityChanged
displayLayerChange
renderPassChange
renderPassSetChange
renderPassSetMembershipChange
passContributionMapChange
DisplayColorChanged
lightLinkingChanged
lightLinkingChangedNonSG
UvTileProxyDirtyChangeTrigger
preferredRendererChanged
polyTopoSymmetryValidChanged
SceneSegmentChanged
PostSceneSegmentChanged
SequencerActiveShotChanged
ColorIndexChanged
deleteAll
NameChanged
symmetricModellingOptionsChanged
softSelectOptionsChanged
SetModified
xformConstraintOptionsChanged
metadataVisualStatusChanged
undoXformCmd
redoXformCmd
freezeOptionsChanged
linearToleranceChanged
angularToleranceChanged
nurbsToPolygonsPrefsChanged
nurbsCurveRebuildPrefsChanged
constructionHistoryChanged
threadCountChanged
SceneSaved
NewSceneOpened
SceneOpened
SceneImported
PreFileNewOrOpened
PreFileNew
PreFileOpened
PostSceneRead
workspaceChanged
nurbsToSubdivPrefsChanged
PolyUVSetChanged
PolyUVSetDeleted
selectionConstraintsChanged
startColorPerVertexTool
stopColorPerVertexTool
start3dPaintTool
stop3dPaintTool
DragRelease
ModelPanelSetFocus
modelEditorChanged
MenuModeChanged
gridDisplayChanged
interactionStyleChanged
axisAtOriginChanged
CurveRGBColorChanged
SelectPriorityChanged
snapModeChanged
activeHandleChanged
ChannelBoxLabelSelected
texWindowEditorImageBaseColorChanged
texWindowEditorCheckerDensityChanged
texWindowEditorCheckerDisplayChanged
texWindowEditorDisplaySolidMapChanged
texWindowEditorShowup
texWindowEditorClose
colorMgtOCIORulesEnabledChanged
colorMgtUserPrefsChanged
RenderSetupSelectionChanged
colorMgtEnabledChanged
colorMgtConfigFileEnableChanged
colorMgtConfigFilePathChanged
colorMgtConfigChanged
colorMgtWorkingSpaceChanged
colorMgtPrefsViewTransformChanged
colorMgtPrefsReloaded
colorMgtOutputChanged
colorMgtPlayblastOutputChanged
colorMgtRefreshed
selectionPipelineChanged
playbackRangeChanged
playbackSpeedChanged
playbackModeChanged
playbackRangeSliderChanged
glFrameTrigger
currentSoundNodeChanged
graphEditorChanged
graphEditorParamCurveSelected
graphEditorOutlinerHighlightChanged
graphEditorOutlinerListChanged
EditModeChanged
RenderViewCameraChanged
texScaleContextOptionsChanged
texRotateContextOptionsChanged
texMoveContextOptionsChanged
polyCutUVSteadyStrokeChanged
polyCutUVEventTexEditorCheckerDisplayChanged
polyCutUVShowTextureBordersChanged
polyCutUVShowUVShellColoringChanged
shapeEditorTreeviewSelectionChanged
poseEditorTreeviewSelectionChanged
sculptMeshCacheBlendShapeListChanged
sculptMeshCacheCloneSourceChanged
RebuildUIValues
cteEventClipEditModeChanged
teEditorPrefsChanged

"""

URL
https://forums.cgsociety.org/t/scriptjob-problems/942387