« モデラーの三つの質問 | トップページ | 体を労わる事も仕事の内 »

2017年6月29日 (木)新しいツールで蛇使い 其の玖

おはようございます。モーションデザイナーのR.Iです。

本日もスクリプトの話をしたいと思います。

このブログで外部ファイルから情報を取得する方法をいくつか紹介してきました。
エクセルファイル、iniファイルだったり、色々ありますが、今回はjsonファイルから情報を取得してみたいと思います。
jsonファイル自体の書式は以下になります。 下記のjsonファイルを「test.json」とします。

{
	"controlerA_name":
	{
		"translateX": 0,
		"translateY": 1,
		"translateZ": 2
	}
}

上記のファイルから情報を取得するためのスクリプトが以下になります。

# -*- coding: utf-8 -*-
import json

class json_custom():
	u"""
	jsonファイルへのアクセスを行うためのクラス
		:param jsonfile: string jsonファイル名を含む絶対パス
		:return: なし
	"""
	def __init__(self, jsonfile):
		self.file_name = jsonfile
		self.f = open(self.file_name, "r")
		self.data = json.load(self.f)
		self.f.close()

	def json_get_data(self):
		u"""
		jsonファイルからデータを生成する
			:return: jsonファイルの内容
		"""
		return self.data
		
json_file = json_custom("フルパス\\test.json")
print json_file.json_get_data()

上記のスクリプトを実行すると以下の内容が取得できます。

{u'controlerA_name': {u'translateX': 0, u'translateY': 1, u'translateZ': 2}}

jsonファイルにしておくと便利な点として、ファイルがPythonの辞書型やリスト型に対応していることです。

iniファイルなどは中身はただの文字列なので、iniファイル内に辞書型、リスト型で記述することができません。

複数のデータを扱う場合、jsonファイルを使用する方がデータ取得後の手間を軽減することができます。

今回のjsonファイルではリグのコントローラ名をキーにして、その中に移動値XYZを記憶させているようなデータにしています。

これをjsonファイル内に複数記入することで、「特定フレームのモーションの記憶」、つまりポーズの情報を外部ファイルに出力しておくことも可能です。

Mayaの機能でアニメーションを保存することもできますが、モーションを反転させるなど、 オリジナルの処理を実行しようとするなら、外部ファイルのフォーマットは自分の扱いやすいものになっている方が処理を作成しやすいと思います。

今回は例として、あらかじめ用意したjsonファイルを使用しましたが、ポーズを保存する処理をするなら リグのコントローラを選択して、そこからjsonファイルを生成する処理が必要そうですね。

ただ、jsonファイルを扱うきっかけとして、今回書かせていただきました。

興味のある方はこれをきっかけに ぜひ調べてみて下さい。

follow us in feedly
result = encodeURIComponent( "http://www.accessgames-blog.com/blog/2017/06/post-3619.html" );document.write( "result = " , result );&media=https%3A%2F%2Ffarm8.staticflickr.com%2F7027%2F6851755809_df5b2051c9_z.jpg&description=Next%20stop%3A%20Pinterest">

| | コメント (0) | トラックバック (0)

« モデラーの三つの質問 | トップページ | 体を労わる事も仕事の内 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 新しいツールで蛇使い 其の玖:

« モデラーの三つの質問 | トップページ | 体を労わる事も仕事の内 »