UnityとnodeとMMDと

12,198 views
12,146 views

Published on

Published in: Technology
0 Comments
19 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
12,198
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
46
Comments
0
Likes
19
Embeds 0
No embeds

No notes for slide

UnityとnodeとMMDと

  1. 1. Unity×node×MMD @sters92012/09/15 第二回 闇鍋プログラミング勉強会
  2. 2. 自己紹介 a• ごみばこ @sters9• 大学生• Webサイト作成• セキュリティ勉強中• node.jsで稼働中のTwitterBOT 計算くん @calc_man
  3. 3. とは?_人人人人人人人_> JavaScript < ̄^Y^Y^Y^Y^Y^Y^ ̄
  4. 4. とは?• サーバサイド• V8エンジン• ノンブロッキングI/O• イベント駆動• パッケージ/モジュール管理
  5. 5. Lets Start!1. 公式サイトからDL2. インストール3. Enjoy!! Windows/Mac/Linux AllOK!
  6. 6. こんにちは世界// app.jsvar http = require(http);http.createServer(function (req, res) { res.writeHead(200, {Content-Type: text/plain}); res.end(Hello World ¥n);}).listen(1337, "127.0.0.1");console.log(Server running at http://127.0.0.1:1337/);
  7. 7. こんにちは世界 node app.js で起動ブラウザで http://127.0.0.1:1337/ を開く
  8. 8. こんにちは世界
  9. 9. パッケージ管理・どこからでも使いたいnpm install -g PackageName・アプリ内だけで使いたいnpm install PackageNameパッケージの後ろに"@バージョン"で バージョン指定可能
  10. 10. パッケージ管理アプリのルートにpackage.jsonを配置{ "name": "example-app" , “dependencies” "version": "0.0.1" , "private": true, を編集して "dependencies": { npm install "express": "2.3.11" , "jade": ">= 0.0.1" , でもOK "socket.io": "0.6.18" }}
  11. 11. とは?
  12. 12. とは?<(^o^)>┌┛’,;’;≡三
  13. 13. とは?
  14. 14. とは?• ゲームエンジン• マルチプラットフォーム• 統合開発環境• 十分使えるフリー版!!
  15. 15. とは?• いろんな形式に対応 fbx, max, blend, ... jpeg, png, gif, psd, ... mp3, wav, avi, mpg, ...• スクリプトが書ける C#, JavaScript, Boo
  16. 16. Lets Start!1. 公式サイトからDL2. インストール3. Enjoy!! あと省略。
  17. 17. MMDとは?
  18. 18. MMDとは?• 3DCG動画作成ツール• モーションが付けられる• エフェクトが付けられるらしい• Kinectとかリップシンクロとかできるらしい• 有志制作のモデルが豊富
  19. 19. Lets Start!1. 公式サイトからDL2. インストール3. Enjoy!! やっぱり省略。
  20. 20. もしかして・・・• Unityのゲーム画面• Node.jsのサーバ• MMDのモデル
  21. 21. もしかして・・・簡単にMMORPG(もどき)が作れるんじゃ!? やってみよう! (ここで闇鍋の具材になってしまった)
  22. 22. ネイティブアプリ??ダウンロードやインストールが面倒!
  23. 23. Webアプリ? 通信できるのかな? HTTPで淡々と。 サーバからのプッシュ配信が難しい Cometでできる…けど別の問題が…
  24. 24. G先生に聞くと。http://wise9.jp/archives/3930
  25. 25. !!
  26. 26. socket.io とは? Socket.IO は複数の通信メカニズムを抽象化することで、 全てのブラウザ、デバイスでリアルタイムアプリを実装可能にするために開発されました。とても手軽にリアルタイムなアプリを 100% JavaScript で作成可能です。
  27. 27. Unityで使える…?( ^o^) socket.ioすげえええええ
  28. 28. Unityで使える…?( ˘⊖˘) 。o( もしかしてクライアントは そのまんまUnityでも使えるんじゃ…? )
  29. 29. Unityで使える…? ┗(☋` )┓三
  30. 30. Unityで使える…?( ) ☛ ザコめ・・・
  31. 31. Unityで使える…?▂▅▇█▓▒░(ω)░▒▓█▇▅▂ ウワアアアアアアアア
  32. 32. Unityで使える…?ちなみにソースを見ると・・・
  33. 33. Unityで使える…?▂▅▇█▓▒░(ω)░▒▓█▇▅▂ ウワアアアアアアアア
  34. 34. Unityで使える…? というわけで諦めます ✌(ω)✌ 他にも沢山エラーが…そもそもWebSocketが無いと駄目じゃ…
  35. 35. ということで案1:UnityのNetwork案2:普通のWebSocket案3:Unity←(データ)→ブラウザ
  36. 36. Unityとブラウザのやり取り• Unityからブラウザ Applicationクラス ExternalCall(関数名, 渡すデータ…) ExternalEval(実行する文字列)• ブラウザからUnity Unityオブジェクト SendMessage(ゲームオブジェクト, 関数名, 渡すデータ)
  37. 37. Unityからブラウザへ // ブラウザ側 JavaScriptで記述 function position() { console.log(arguments); }
  38. 38. Unityからブラウザへ// Unity側 C#で記述Application.ExternalCall("position", 0, 0, 0);var p = new Dictionary<string, int> () { {"x", 0}, {"y", 0}, {"z", 0} };Application.ExternalCall("position", p);var p2 = new pos();p2.x = 0; p2.y = 0; p2.z = 0;Application.ExternalCall("position", p2);Application.ExternalEval("alert(Hi!)");
  39. 39. Unityからブラウザへ クラスを渡すのは駄目
  40. 40. Unityからブラウザへ
  41. 41. Unityからブラウザへ
  42. 42. ブラウザからUnityへ// Unity側 C#で記述void getData(string x) { guiText.text = x;}void getData2(object x) { guiText.text += "¥n" + x.ToString();}
  43. 43. ブラウザからUnityへ// ブラウザ側 JavaScriptで記述setTimeout(function() { var unity = GetUnity(); if(unity == null) return; unity.SendMessage(GUI Text, getData, "its test"); unity.SendMessage(GUI Text, getData2, "message"); unity.SendMessage(GUI Text, getData, 12345); unity.SendMessage(GUI Text, getData2, 67890); unity.SendMessage(GUI Text, getData, [1,2,3]); unity.SendMessage(GUI Text, getData2, [4,5,6]); unity.SendMessage(GUI Text, getData, {x:1}); unity.SendMessage(GUI Text, getData2, {y:2});}, 5000);
  44. 44. ブラウザからUnityへ型にあったメソッドしか呼ばれない オブジェクトは渡せない
  45. 45. Unity×MMDMikuMikuDance For Unity !!
  46. 46. MFUとは?・Unityへのインポータ・シェーダ・物理演算・その他プラグイン・ツール・ここでは r116 を使ってます。・SourceForgeからDLできるものはr114
  47. 47. MFUを使ってみる MFUの準備
  48. 48. MFUを使ってみる 博麗の巫女
  49. 49. MFUを使ってみる ファイルの用意
  50. 50. MFUを使ってみる PMD Loader
  51. 51. MFUを使ってみる 表示すると・・・
  52. 52. MFUを使ってみる FixedJointに置換
  53. 53. MFUを使ってみる 確認してみる
  54. 54. MFUを使ってみる VMD Loader
  55. 55. MFUを使ってみる 動きがおかしい…
  56. 56. MFUを使ってみる MMDIKBaker
  57. 57. MFUを使ってみる MMDIKBakerを使う
  58. 58. MFUを使ってみる MMDIKBakerを使う
  59. 59. MFUを使ってみる MMDIKBakerを使う
  60. 60. MFUを使ってみる 再度確認…
  61. 61. MFUを使ってみる ミクダヨ-
  62. 62. MFUを使ってみる インポート
  63. 63. MFUを使ってみる インポート
  64. 64. MFUを使ってみるモーションの使い回し
  65. 65. MFUを使ってみるモーションの使い回し
  66. 66. MFUを使ってみる 動かない…
  67. 67. MFUを使ってみるVMDLoaderに入れて…
  68. 68. MFUを使ってみる Assetが出来た
  69. 69. MFUを使ってみる ちなみに… どっち!?
  70. 70. MFUを使ってみるおまけ: VMDLoaderScript.cs
  71. 71. MFUを使ってみるおまけ: VMDLoaderScript.cs
  72. 72. MFUを使ってみる 再生
  73. 73. MFUを使ってみる 再生・恐怖・肩?腕?使い回しだからかちょっとおかしい・MMDIKBakerに掛ける前のモノをMMDで修正・再度MMDIKBakerに投げる・VMDImporterに投げる すると・・・ .
  74. 74. MFUを使ってみる できた
  75. 75. MFUを使ってみる できた・原因不明・PMDEditor付属のVMDViewでFixするとできた
  76. 76. MFUを使ってみる 今度こそできた
  77. 77. MFUを使ってみる ちなみに
  78. 78. でぷろいしてありますhttp://go.ascii.jp/yaminabe2
  79. 79. 今朝、某動画サイトにて
  80. 80. !! ,. -‐""¨¨¨ヽ (.___,,,... -ァァフ| |i i| }! }} //| |l、{ j} /,,ィ//| i|:!ヾ、_ノ/ {:}//ヘ |リ } ,ノ _,!V,ハ | あ・・・ありのまま /´fト、_{ル{,ィeラ , タ人 今起こった事を話(略 / ヾ|宀| {´,)⌒`/ |<ヽトiゝ ,゙ / )ヽ iLレ | | ヾlトハ〉 |/_/ ハ !ニ⊇ /:} V:::::ヽ // 二二二7T / __ /:::::::/`ヽ /´r -―一ァ‐゙T´ "´ /::::/-‐ \ / // 广¨´ / /:::::/´ ̄`ヽ ⌒ヽ ノ / ノ:::::`ー-、___/:::::// ヽ }_/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::... イ
  81. 81. 丸かぶりじゃねーか!!
  82. 82. 一応:あちらとは 関係ありません。DXライブラリならC++かなあ… 大変そうだ…
  83. 83. ゲーム作りは何を使っても 大変…
  84. 84. 素人さんには出来ない?
  85. 85. でも。
  86. 86. ツールたくさん!!コンテンツたくさん!!
  87. 87. Unityつかってみよう!!MFU つかってみよう!! 強引すぎワロタ…
  88. 88. でも規約に気をつけて!! 改変とか転載とかとか…
  89. 89. ありがとうございました

×