lab1092

BlenderとPythonの話題が主になっている(?)blog

ちょっと引っかかっている感じのもの

どうも、ぼくです。

先日、某ソフトウェアの日本語訳ページ(どこかは書きません)をちらっと見たのですが、ちょっと引っかかっているというかなんというか。自分は翻訳なんて日頃やらないので、えらいことは言えませんけども。


ぼんやりした感じで書くので、多分ぼんやりとしか理解されないと思いますが、一応書き留めておこうということで。


何が引っかかっているか、一般的な用語でなく一部にしか通用しない語を使っていたり、今はやり(?)の「させていただきます」とか使っているという辺りもなんですが、「直訳風なのに翻訳文に一語余計に添えられている(おそらく理解を助けるために訳者が追加?)」、「訳注なのか翻訳文なのかはっきりわからない」というのが点在する部分でしょうか。

もちろん、日本語として意味が通りにくい部分は意訳しても問題無いと思いますが、今回見かけたそれは意訳ではなく、原文に対応するものが無い語が追加されていたので。



話は変わりますが、ソフトウェアの日本語翻訳でよく参考にされているのが「Sunによるスタイルガイド」。 まあ、この資料が作成された当時とは少し用語も変わっていたりするんですが、「翻訳時の指針を作成するにあたって参考にする」という点ではまだ有用かと。

ではー。

Retweet数による、注目ツイート

どうも、ぼくです。


えーとタイトルは「Retweet数による、注目ツイート」ってなってますが、単純に「最近のリツイート数の多いツイートを拾ってみました」ってだけです。Blender関連の。

絞り込むには以下のようなキーワードでツイッター検索。
  • "blender lang:ja min_retweets:10"
  • "#b3d min_retweets:10"


じゃあ、早速。適当にピックアップしてます。



















「見た目よし」「今の流行りに乗っかっている」「技術的に良いと感じるもの」「すごい・感心する」「楽しい」「ユーモアがある」をうまく組み合わせるとリツイート数が伸びる、そんな感じでしょうか。

もちろん、「コンテキストをうまく利用した」ものもたまに出てきますが、うまいアニメーションがついたツイートのほうが伸びやすい傾向にあるようですね。少なくとも画像くらいは付けておいたほうがいいのでしょう。




特に、「わざわざ#b3dタグつけているのに反応が無い」とお嘆き(多分そうはいないと思う)のあなた、傾向を踏まえて対策されてはいかがでしょうか?


ということでー。

Blenderで使えるモジュールを調べてみよう

どうも、ぼくです。

今回はBlenderのPythonで使えるモジュールを調べてみることにします。
やっていることはBlenderっぽくないですが、「Pythonの基本的なところを学習する環境としても使える」ということをわかってもらえるといいんじゃないでしょうか。

以下のBlog記事で紹介されているものをBlender上のPython Interactive console上で、というわけですね。


ロード済みモジュールを確認:


ロード済みモジュールを確認するには、 sys.modules.keys() を実行します。

>>> import sys
>>> sys.modules.key()



利用可能なモジュールを確認:


Blenderに同梱されているPythonのライブラリは、「標準ライブラリ(流石にTKはありません)」+αです。これを一覧で確認します。


>>> buf=[]
>>> for m in pkgutil.iter_modules():
... buf.append(m[1])
...
>>> buf.sort()
>>> buf


これで確認してみると…。xmlrpcとかnumpy…えっ?numpy???



「何をするものか」を確認:


さて、一覧が取得できても、個々に「何をするもの」かまでは名前からだけではわかりません。そこで help() 関数。 以下のように実行してみます。

>>> import xmlrpc
>>> help(xmlrpc)
Help on package xmlrpc:
NAME
xmlrpc - # This directory is a Python package.
PACKAGE CONTENTS
client
server
FILE
/Applications/Blender/blender.app/Contents/Resources/2.74/python/lib/python3.4/xmlrpc/__init__.py


パッケージやモジュール、関数に help() 関数を使ってみると説明が表示されるので良さげです。


ここで、落とし穴。 BlenderのInteractive Python Consoleは表示できる行が決まっていて(デフォルト256行)、help(numpy) とか help(unittest) とか長い内容の表示は全部できずに(先頭が)切れてしまいます。これを変更するには Console Scrollback の値を増やします。

[Add-on]自分で作ったAdd-onに追加のモジュールが使えるかどうかで機能を変える:


Pythonは自身で書いた .py ファイルをモジュールとして使用することが可能です。Add-onで、特定のパッケージまたはモジュールがインポート可能な時のみ特定機能を使用可能にする、というのを submitwordpress.py で使っていたりします。

kanaflg = False
# import romankanatbl as extention
try:
import romakanatbl.romakanatbl as rk
kanaflg = True
print("[SubmitWordPress] romankana extention is available.")
except:
print("[SubmitWordPress] no romankana extention.")


try文の中で import 文を実行して登録できるかをやっているわけですね。


あと、「モジュールとして登録できるファイルは一体どこに?」とかは最初に紹介したBlog記事を参考にしてスクリプトを実行するか、 メニュー、Help > System Info で出力されるテキストから、 Directories あたりの項目をチェックしておけばいいんではないでしょうか。


では。

Steamにキタものは?

どうも、ぼくです。

なにやら来ましたね。SteamにBlenderですか。

http://www.blendernation.com/2015/04/25/blender-is-now-available-on-steam/



まあMOD作って売っちゃうぜひゃっはー、の割には実入りが少なかったりするらしいとか、バージョンアップ勝手にして"Copy Previous Settings"のボタン押す前にCtrl+Uしちゃって設定が引き継がれなかったらどうする(そもそもその機能の信頼性は置いておいて)んだろうとか、ちょっと考えてしまいました。

いやもちろんこれまでと違う層にリーチ出来るようになっていいことではあるのですけれども。

[EDIT] MODの有料配信は撤回されたようです。(SteamのSkyrim MOD有料配信機能、早くも撤回)

OBJファイルを自動的にインポートした状態でBlenderを開く

どうも、ぼくです。
33
久々にBlenderPythonネタ(+Apple Script)。
OS X 10.10.3、Blender 2.74 RC1 上で試しました。

えーと、FBXファイルを自動的に開けないかなー、っていうツイートを見かけて、



「そういえばなんか(別の形のものを)みたような気がする」ということで。

Blender開いて、メニューからImportコマンド呼び出してファイル指定して…っていう手間を省こうというわけですね。

とりあえず「OBJファイルを開くと自動的にBlenderにインポートされた状態にする」というのを書いて(?)みました。多分test.pyにきちんとファイルパスが渡ればなんとかなると思うので、他のOSの環境でも少しごにょごにょしたら同じようにできるかも。

では早速。Blender起動時に読み込ませるPythonスクリプトと、起動時にオプションを渡すAppleスクリプトの2つで実現します。

以下のファイルをtest.py という名前でデスクトップに置いておきます。

import bpy
import sys

def delete_all():
    for item in bpy.context.scene.objects:
        bpy.context.scene.objects.unlink(item)

    for item in bpy.data.objects:
        bpy.data.objects.remove(item)

    for item in bpy.data.meshes:
        bpy.data.meshes.remove(item)

    for item in bpy.data.materials:
        bpy.data.materials.remove(item)

if __name__ == "__main__":
    delete_all()
    bpy.ops.import_scene.obj(filepath=sys.argv[-1], axis_forward='-Z', axis_up='Y' )


起動用のAppleScriptは以下。スクリプトエディタで作成します。スクリプトエディタの再生ボタンを押すと実行されます。

なお、blenderの実行ファイルのパス等々は環境に合わせて設定してください。

on main(input)
	try
		do shell script "/Applications/Blender274RC1/blender.app/Contents/MacOS/blender -P ~/Desktop/test.py --" & space & input
	end try
end main

on open argv
	repeat with aFile in argv
		main(quoted form of POSIX path of aFile)
	end repeat
end open

on run
	main(quoted form of POSIX path of (choose file))
end run


使用する流れとしては、スクリプトエディタからAppleScriptを実行するとファイルダイアログ出現、objファイルを開くとBlenderが起動してインポートされている、という感じ。
ちなみに当方ではスクリプト書いただけでアプリケーションにしたりファイル関連付けたりしてないので、スクリプトエディタからの実行のみ確認にとどめています。

種明かしをすると、最後にある引数のファイル名を起動時オプション'-P'で指定したtest.py内でOBJインポートするようにしている、という。

/Applications/Blender274RC1/blender.app/Contents/MacOS/blender -P /Users/username/Desktop/test.py -- '/Users/username/Desktop/untitled.obj'


今回は「OBJファイルを自動でインポートできるかどうか」を試してみただけということで。



[追記]FBXのインポートは上記のスクリプトの bpy.ops.import_scene.obj()の部分を以下のように書き換えてみると?


bpy.ops.import_scene.fbx(filepath=sys.argv[-1],automatic_bone_orientation=True)


[追記2]Windowsのバッチファイルだとこんな感じですかね?

C:\blender\blender.exe -P C:\Users\username\Desktop\test.py -- %1


[追記3] ファイルの拡張子を見て適宜インポートする(fbx,obj)版を http://www.pasteall.org/57317/python に置いています。


参考にしたページ



ではー。


ブース出しますね他

 どうも、ぼくです。
19

最初に、オープンソースカンファレンス 2015 Tokyo/SpringBLUG.jpがブース出展します。お近くに立ち寄られる際は是非お越しください(特に興味なくてもいいです)。 

そうそう、前の東京でやったBOFの形式の事前募集は特にしませんのでご注意ください(?)


他のちょっとしたこと、つらつらと1月終わりから。2月はBlender月間だった様子。
  • 1つめ。 1/31 Blenderの勉強会開いてきました、はい。 
  • 2つめ。 2/11 浜松行ってました。「Blenderですかぁ」とかなんとか。ロゴが気になりました。ロゴが。
  • 3つめ。 Yahoo ニュースにも掲載された 3DCG Meetup #06にこっそり忍び込んでました。
  • 4つめ。 ドキュメンテーションプロジェクト。「そういえばBlenderマニュアルのリポジトリSVNになったよなー、更新するかー」のタイミングでたまたま見つけたページ内(マニュアルの記述、 See the translation design task からたどったタスク)のリンク先が自分のMLへのポストでちょっとだけびっくりした、とか。いや、それよりも章とかファイル構成とかかなり変わってるじゃないですかー。もうやだなー。 
  • 5つめ。 勉強会の前の日になんかスクショ撮ってました。あれ、これって「プr…」?
ということで土曜日はよろしくですー。
livedoor プロフィール
保管庫
Recent Comments
訪問者数
  • 今日:
  • 累計:

Vimeo
lab1092をフォローしましょう