前提・実現したいこと
FaceAPIの結果(感情や顔のパーツの位置)をUnity上に表示、そしてその結果に従ってキャラが動くなどのアプリ作成を目指しています。
前段階として、PythonとOpenCVを使用したFaceAPIの利用はできており、次のステップとしてUnityに手をつけ始めたばかりです。
発生している問題・エラーメッセージ
FaceAPIの開発をPythonで先にしていたので、IronPythonを利用しています。
UnityでIronPythonを使う(https://qiita.com/masashi_sampe/items/bd9f9a74a054934277c1)、
Unity上でPythonを使う②【外部ファイル読み込み編】(http://tkitao.hatenablog.com/entry/2015/05/31/210054)
の2つのサイトを見ながら進めているのですが、PytonのLibのrandomをimportするところでエラーがでます。
※datetimeのimportではエラーはでなく、結果が正常に表示されます。これから他のライブラリーの追加もしなくてはならないので、解決しておきたいです。
エラーメッセージ ImportException: No module named random Microsoft.Scripting.Runtime.LightExceptions.ThrowException (Microsoft.Scripting.Runtime.LightExceptions+LightException lightEx) (at <6630c8f527554329b4a64856b5c59cbd>:0) Microsoft.Scripting.Runtime.LightExceptions.CheckAndThrow (System.Object value) (at <6630c8f527554329b4a64856b5c59cbd>:0) Microsoft.Scripting.Interpreter.FuncCallInstruction`2[T0,TRet].Run (Microsoft.Scripting.Interpreter.InterpretedFrame frame) (at <6630c8f527554329b4a64856b5c59cbd>:0) Microsoft.Scripting.Interpreter.Interpreter.Run (Microsoft.Scripting.Interpreter.InterpretedFrame frame) (at <6630c8f527554329b4a64856b5c59cbd>:0) Microsoft.Scripting.Interpreter.LightLambda.Run2[T0,T1,TRet] (T0 arg0, T1 arg1) (at <6630c8f527554329b4a64856b5c59cbd>:0) IronPython.Compiler.PythonScriptCode.RunWorker (IronPython.Runtime.CodeContext ctx) (at <d778f29ab13d427591d07ad4b13f72ed>:0) IronPython.Compiler.PythonScriptCode.Run (Microsoft.Scripting.Runtime.Scope scope) (at <d778f29ab13d427591d07ad4b13f72ed>:0) IronPython.Compiler.RuntimeScriptCode.InvokeTarget (Microsoft.Scripting.Runtime.Scope scope) (at <d778f29ab13d427591d07ad4b13f72ed>:0) IronPython.Compiler.RuntimeScriptCode.Run (Microsoft.Scripting.Runtime.Scope scope) (at <d778f29ab13d427591d07ad4b13f72ed>:0) Microsoft.Scripting.SourceUnit.Execute (Microsoft.Scripting.Runtime.Scope scope, Microsoft.Scripting.ErrorSink errorSink) (at <ae8cb79efc7744858b2f0591f1e0db85>:0) Microsoft.Scripting.SourceUnit.Execute (Microsoft.Scripting.Runtime.Scope scope) (at <ae8cb79efc7744858b2f0591f1e0db85>:0) Microsoft.Scripting.Hosting.ScriptSource.Execute (Microsoft.Scripting.Hosting.ScriptScope scope) (at <ae8cb79efc7744858b2f0591f1e0db85>:0) (wrapper remoting-invoke-with-check) Microsoft.Scripting.Hosting.ScriptSource.Execute(Microsoft.Scripting.Hosting.ScriptScope) test+PythonScriptCreator.CallScript () (at Assets/test.cs:57) test.Start () (at Assets/test.cs:16)
該当のソースコード
Python
1ソースコード 2 3import clr 4clr.AddReferenceByPartialName('UnityEngine') 5import UnityEngine 6 7import sys 8sys.path.append(UnityEngine.Application.dataPath + '/../../Lib') 9 10import datetime 11import random 12 13def print_message(): 14 UnityEngine.Debug.Log('Test message from Python!') 15 UnityEngine.Debug.Log(datetime.datetime.today()) 16 17print(random.random()) 18print_message()
補足情報(FW/ツールのバージョンなど)
Python3.0
Unity 2019.3.13f1
IronPython-2.7.7-win
Visual Studio 2015
他にFaceAPIをUnityで使う方法があれば、教えていただければ幸いです。
あなたの回答
tips
プレビュー