IronPythonを使ってUnity上でPythonのコードを実行する

ここ最近、Pythonインターフェイスを用意しているライブラリが非常に多くて、使ってみると確かに、C++でガリガリと低レベルのコードを書くよりもコーディング量が少なくて扱いが楽なのである。最近じわじわと日常に浸透しているSoftBankのロボットPepper君もPythonで制御できるらしいし。

ということで、この利便性をUnityで活かせないかと前々から調べていたのです。そこで見つけたのがIronPythonという、.NET FrameworkやMono上で動作するPython実装。UnityのC# ScriptはMonoで動いているので、こいつは行けるんじゃないかと思って1年以上前から勉強を始めてたんだけど、日本語の情報が少なくて苦労してた。

で、最近になって、UnityでIronPythonを使う日本語記事をまとめている方を見つけたのです。↓

ここ最近、ちょこちょこいじっているUnityネタです。 今回は2回に分けてUnity上でPythonを使う方法について書いてみたいと思います。1回目の今日はPythonコードをアセットに組み込んで動かす方法について解説します。
徐々に仕事が忙しくなってきました。GWに戻りたい…。 今回は前回の続きで、プロジェクト外部のPythonコードを読み込んで実行する方法について解説してみたいと思います。前回との差分のみ説明しますので、未読の方は前回の記事からお読みください。

どうやらCLRでPython側からUnityの関数も呼べるみたいね。C#とPythonで相互にやり取りできると色んなモジュールと連携できて便利だな。Pythonモジュールの依存関係とかどうなるかわからんけど。


スポンサーリンク



1年ぐらい前にUnityでIronPythonを扱う方法を調べた時は、Mayaのインストールフォルダに入っているPythonのインタプリタを流用するっていう変なTipsにたどり着いたのだった。つまりMaya持ってないと試せない、随分と高い投資が必要という。↓
embedding IronPython in Unity3d (with an emphasis on tech artist applications)
Using IronPython to create an interactive python scripting console in Unity3d

ここ最近、強く感じるんだけど、ハードウェア開発に限らず、ソフトウェア開発のアウトプットも結局のところ、どれだけ多くの種類の部品(つまりライブラリやモジュール)を知っているか、それらをどうやって組み合わせるか、という知識量で大体決まってきてしまう。アプリケーション開発で低レベル層のアルゴリズムから、上位層のUIまで全部自前で作るなんてことはまずありえない。
ソフトウェア開発においても、部品の選定スキルがものを言う。ガチでアルゴリズムを考えている研究者から見れば、「ただAPIを叩くだけの簡単なお仕事」に見えるかもしれないけど、ソフトウェアエンジニアはそのアウトプットとなる製品で評価される。質の良い部品を揃え、それらを効果的に結合させる設計スキルで勝負している。

なんてね。


スポンサーリンク

関連記事