とあるゲームプログラマの挑戦と敗北の歴史

UE4とプログラミングとmayaとpythonとhtmlとマラソンを中心に情報を発信する元「技術ブログを目指すブログ」から再始動した毎日の日々を発信するブログです。

21:maya python

maya:頂点のリスト、UVのリスト

メッシュから頂点のリスト、UVのリストを取得する手順を明記 頂点のリストの仕方 python) import maya.cmds as cmds strings = cmds.polyListComponentConversion( 'pCube1', toVertex=1 ) vertices = cmds.filterExpand( strings, selectionMask=31 ) fo…

maya:選択中のマテリアルをメッシュに貼る方法

選択中のマテリアル(lambert)をメッシュに貼る方法を明記 (張るためには一度シェーディンググループを取得する必要がある) まずは選択中マテリアルを張るって話なので ハイパーシェードでマテリアルを選択。 そして python を実行 (listConnectionsを利用…

maya:nurbsCurveのエディットポイント取得

ナーブスカーブのエディットポイントの取得方法について明記。 それ用のコマンドもあるのだろうが、ここではgetAttrを使って取得。 (リストから座標だけでなく長さも撮れる) pythonでの取得方法) import maya.cmds as cmds editPoints = cmds.getAttr("cu…

maya:ポリゴンの作成

ポリゴンを作成する方法を明記しておく これでポリゴンをひとつひとつ細かく作ることができる ※edge番号を指定する必要あり。 pythonでの実行方法) cmds.polyCreateFacet( point=[(0,0,0),(-1,0,0),(-1,0,1),(0,0,1)] )cmds.polyAppend( append=[2,(-1,0,2)…

Maya 一覧

標準機能) ・メニューバーの追加 ・maya LTのご紹介 ・maya LTついに買う mel) ・ウィンドウの複数作成禁止 ・文字列内の文字列の検索 ・ポリゴンの作成 ・nurbsCurveのエディットポイント取得 ・マテリアルをメッシュに貼る ・頂点のリスト、UVのリスト…

maya:pythonによる コマンドプラグイン の作成手順

1.プラグインパスのいずれかに コマンドプラグインを作成(HelloWorld.py) ※筆者の場合は:C:\Users\(ユーザー名)\Documents\maya\plug-ins 2.プラグインの内容を記述 ※ -*- coding: utf-8 -*- はutfで書いてますよというおまじないなので必要 参考:…

maya:pythonによる プラグインの読み込み手順

1.プラグインマネージャの表示 メニューバー>設定/プリファレンス>プラグインマネージャ から すきなプラグインをロードできる。 2.pythonで書くならこう ※重要 quiet=True:読み込み済みでもエラー出なくなります。 import maya.cmds as cmds cmds.lo…

maya:ls listRelatives を利用した選択中メッシュのリスト

選択中のメッシュをリストする手順を明記しておく (親グループにはいていても使用可能) 1.メッシュを選択(親グループを選択してしまっていたも おけ) 2.選択中メッシュのリストを表示 ※グループを選択しているときのためにlistRelativesを利用し子メ…

maya:システムパス取得

以下をタイプする import sys for p in sys.path: print( p ) 出力成功

maya:外部ファイルの読み込み

外部ファイルを扱いたいときは maya固有ではなく python汎用コマンドを使って読み込むとよい。 1.外部データを用意 2.外部データを読み込みプリント fp = open( u'c:/aaa.txt', 'r' ) for line in fp: print line fp.close() 3.実際に出力される 4.…

maya:ファイルダイアログだしかた

以下をタイプする import maya.cmds as cmds result = cmds.fileDialog() print( result ) これは使えるはず。

maya:メッセージボックスだしかた

メッセージボックスは以下をタイプする import maya.cmds as cmds result = cmds.confirmDialog( title=u'メッセージ', message=u'〇〇しますか?', button=[u'Yes',u'No'] ) if result == 'Yes': print( u'Yesが選択されました' ) else : print( u'Noが選択…

maya:filterExpandで省略頂点の取得

以下のコードで頂点をリストしようとしても、 import maya.cmds as cmds vertices = cmds.polyListComponentConversion( 'pCube1', toVertex=1 ) print( vertices ) 省略されてしまう。 filterExpandで分解できる。 import maya.cmds as cmds vertices = cmd…

maya:共有された頂点の分解

頂点が共有されている場合 頂点座標だけならまだしも、UV値も共有されており使い勝手がわるいため 頂点を分ける必要があります。 これ「コンポーネントのデタッチ」と呼びます。 1.オブジェクトを選択 2.メニューバー>メッシュの編集>コンポーネントの…

maya:ポリゴンのバウンディングボックス取得メモ

以下をタイプする。 タプル型のタプルが返る。 import maya.cmds as cmds cmds.polyEvaluate( u'pCube1', boundingBox=1 )

maya:環境変数 MAYA_SCRIPT_PATH のリストアップ手順

MAYA_SCRIPT_PATHは以下をタイプする。 import os import subprocess import maya.cmds as cmds env = os.environ["MAYA_SCRIPT_PATH"] env = env.split(";") for path in env: print( path ) MAYA_PLUG_IN_PATHは以下をタイプする。 import os import subpr…

maya:ウィンドウの作成手順

単純なpythonによるウィンドウの表示手順を記述しておく py import maya.cmds as cmds # @brief ウィンドウ class Window( object ): # インスタンス _instance = None # @brief new def __new__( self ): if self._instance is None: self._instance = obje…

maya:メニューバーの追加手順

1.mayaが必ず参照されるフォルダ C:\Users\(ユーザー名)\Documents\maya\scripts に userSetup.py の名前でセットアップファイルを作成します。 2.userSetup.py の中身はメニューファイルの実行処理が入ります。 from myTool import menu utils.execut…

maya:pythonでデバッグログシステムを作ってみる

pythonで学んだことをもとにフォルダを作成して そこにデバッグログファイルを出力する仕組みをつくってみました。 まずフォルダの作成方法 (実際は作成済みチェックなども入れる必要があります。) import os # フォルダの作成if os.path.exists( 'deblog/…

maya:python が 文字コードのエラーで動かない場合

作成したpythonのアプリが文字コードにつまづいて 動かないことがありました。 適切な文字コードで実行することで解消できます。 まずは動かない例 string.py # -*- coding: utf-8 -*- import time print( 'こんにちは' ) time.sleep(1) テキストファイルをp…

maya:python の ファイルの読み書き方法

pythonでのファイルの読み書き方法メモ # -*- coding:utf-8 -*-## @file file.py# @biref file# import sysimport time # ファイル書込with open( "file.txt", "w" ) as f: f.write( 'text\n' ) # ファイル追記with open( 'file.txt', 'a' ) as f: f.write( …

maya:python の スペシャルメソッドの作り方

pythonには運用方法がなかなかわからない機能もあるようだ。 C++の文化の人から見た場合スペシャルメソッドもその一つ それでもこれなら工夫しだいで何かに使えそう。 型を指定することですきな形式で取得できる ## @brief スペシャルメソッド#class classSp…

maya:python を使用した ノードプラグイン の作成方法のご紹介

pythonを使用して 自作のノードプラグインを作成することができます。 HelloNode.py) # -*- coding: utf-8 -*- import sysimport maya.OpenMaya as OpenMayaimport maya.OpenMayaMPx as OpenMayaMPx kPluginNodeId = OpenMaya.MTypeId( 0x8FFFF ) # Helloノ…

maya:python を使用した コマンドプラグイン の作成方法のご紹介

maya では python を使用することができます。 従来 maya では独自の言語 mel の使用 と c++ によるプラグイン開発が可能でした。 そして「結構前から」ですが、 python を使うことで mel でできることと プラグインでできることの 両方をできるようになって…

maya:pythonのクラスの作り方

pythonではクラスも扱うことができる。 クラスの書き方 import sysimport time ## @brief クラスの使い方#class ClassA(object): def __init__(self): self.power = 0 # # @brief パワーの増加 # def addPower(self, power): self.power += power #< メンバ…

maya:pythonのモジュールの作り方

以下main.pyから 別のファイルの関数を呼び出す方法 呼び出し先(module.py) # -*- coding: utf-8 -*-## @file module.py# @biref モージュール# import sysimport time ## @brief 引数の合計を取得する# @param[in] values 引数配列#def getSum(*values): …

maya:pythonの配列のいろいろ

pythonには配列的なものがたくさんあります。 リスト、タプル、セット、ディクショナリ ※swiftにもあります。 C++で育っていた方々からみると少々面倒です。 # -*- coding: utf-8 -*- import sysimport time # リスト ※あとからappend removeで値を編集でき…

maya:pythonの実行ファイルの作り方

pythonの実行ファイルは拡張子をpyで作成する。 test,py といファイルを作成し 以下のコードを書きダブルクリックで実行する。 ------------------------------------------------------------------------ # -*- coding: utf-8 -*- import sysimport time #…

maya:pythonの基本の構文

基本の文法の学び方は 適当な本を本屋さんで買ってきて 教科書通りにコマンドを打っていきます。 慣れ親しんだC++とちがいリスト、タプル、ディクショナリなどの 書き方もあるのでまずは一行で書いていき学びます。 以下実験結果 Python 3.6.0 (v3.6.0:41df7…

maya:プログラミング言語 python のご紹介

今日はプログラミング言語pythonの紹介と 学ぶ上での環境の作り方をご紹介します。 pythonはほかの言語にくらべて短くかける。 というのがメリットです。 短くかけて 括 いろんなことができるというのが特徴です。 タブインデントが意味がある。というのも特…