{"id":592,"date":"2012-05-01T22:31:54","date_gmt":"2012-05-01T13:31:54","guid":{"rendered":"http:\/\/nyatla.jp\/nyartoolkit\/wp\/?p=592"},"modified":"2012-05-07T15:08:45","modified_gmt":"2012-05-07T06:08:45","slug":"nyartoolkitas3-%e9%80%94%e4%b8%ad%e7%b5%8c%e9%81%8e","status":"publish","type":"post","link":"http:\/\/nyatla.jp\/nyartoolkit\/wp\/?p=592","title":{"rendered":"NyARToolkitAS3 \u9014\u4e2d\u7d4c\u904e"},"content":{"rendered":"<p>FLARToolKitV4\u306b\u4f7f\u3046\u305f\u3081\u306eNyARToolkitAS3\u304c\u3067\u304d\u307e\u3057\u305f\u3002\u3067\u3001FLARToolKitV4\u3092\u4f5c\u3063\u3066\u3044\u307e\u3059\u3002<br \/>\n<a href=\"http:\/\/nyatla.jp\/nyartoolkit\/wp\/wp-content\/uploads\/0d40a5e4a645fc6b96e767d64ac0878e8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-600\" title=\"\u7121\u984c\" src=\"http:\/\/nyatla.jp\/nyartoolkit\/wp\/wp-content\/uploads\/0d40a5e4a645fc6b96e767d64ac0878e8-300x266.png\" alt=\"\" width=\"300\" height=\"266\" srcset=\"http:\/\/nyatla.jp\/nyartoolkit\/wp\/wp-content\/uploads\/0d40a5e4a645fc6b96e767d64ac0878e8-300x266.png 300w, http:\/\/nyatla.jp\/nyartoolkit\/wp\/wp-content\/uploads\/0d40a5e4a645fc6b96e767d64ac0878e8.png 329w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a>\u65b0\u3057\u3044FLARToolKit\u306f\u3001NyARToolKitV4\u306b\u5b9f\u88c5\u3057\u305fMarkerSystem\u3068\u3001\u7c21\u6613\u30b9\u30b1\u30c3\u30c1\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h2>Code<\/h2>\n<p>\u6b21\u306e\u30b3\u30fc\u30c9\u306f\u3001SimpleLite\u3092\u30b9\u30b1\u30c3\u30c1\u3068MarkerSystem\u3067\u5b9f\u88c5\u3057\u305f\u3082\u306e\u3067\u3059\u3002<\/p>\n<pre class=\"brush: as3; title: ; notranslate\" title=\"\">\r\npackage sketch \r\n{\r\n\timport flash.media.*;\r\n\timport flash.geom.*;\r\n\timport flash.net.*;\r\n\timport flash.text.*;\r\n    import flash.display.*; \r\n    import flash.events.*;\r\n    import flash.utils.*;\r\n\timport jp.nyatla.as3utils.sketch.*;\r\n\timport jp.nyatla.as3utils.*;\r\n\timport jp.nyatla.nyartoolkit.as3.core.types.*;\r\n\timport org.libspark.flartoolkit.core.*;\r\n\timport org.libspark.flartoolkit.markersystem.*;\r\n\timport org.libspark.flartoolkit.pv3d.*;\r\n\timport org.papervision3d.render.*;\r\n\timport org.papervision3d.view.*;\r\n\timport org.papervision3d.objects.*;\r\n\timport org.papervision3d.lights.*;\r\n\timport org.papervision3d.materials.*;\r\n\timport org.papervision3d.materials.shadematerials.*;\r\n\timport org.papervision3d.objects.primitives.*;\r\n\timport org.papervision3d.materials.utils.*;\r\n\timport org.papervision3d.scenes.*;\r\n\t\/**\r\n\t * MarkerSystem\u3092\u4f7f\u3063\u305fSimpleLite\u306e\u5b9f\u88c5\u3067\u3059\u3002\r\n\t * \u3053\u306e\u30b5\u30f3\u30d7\u30eb\u306f\u3001FLSketch\u3092\u4f7f\u7528\u3057\u305f\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u3059\u3002\r\n\t * PV3D\u306e\u521d\u671f\u5316\u3001Flash\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u914d\u7f6e\u306a\u3069\u3092\u7701\u7565\u305b\u305a\u306b\u5b9f\u88c5\u3057\u3066\u3044\u307e\u3059\u3002\r\n\t *\/\r\n\tpublic class SimpleLite extends FLSketch\r\n\t{\r\n\t\tprivate static const _CAM_W:int = 320;\r\n\t\tprivate static const _CAM_H:int = 240;\r\n\t\tprivate var _ss:FLARSensor;\r\n\t\tprivate var _ms:FLARPV3DMarkerSystem;\r\n\t\tpublic var bitmap:Bitmap = new Bitmap(new BitmapData(_CAM_W,_CAM_H));\r\n\r\n\t\tprivate var _video:Video;\r\n\t\tprivate var _render:LazyRenderEngine;\r\n\t\t\r\n\t\tprivate var marker_id:int;\r\n\t\tprivate var marker_node:DisplayObject3D;\r\n\t\t\r\n\t\tpublic function SimpleLite()\r\n\t\t{\r\n\t\t\t\/\/setup UI\r\n\t\t\tthis.bitmap.x = 0;\r\n\t\t\tthis.bitmap.y = 0;\r\n\t\t\tthis.bitmap.width = _CAM_W;\r\n\t\t\tthis.bitmap.height = _CAM_H;\r\n            this.addChild(bitmap);\r\n\t\t}\r\n\t\tprivate var _fid:Vector.&lt;int&gt;=new Vector.&lt;int&gt;(3);\r\n\t\tpublic override function setup():void\r\n\t\t{\r\n\t\t\t\/\/setup content files...\r\n\t\t\tthis._fid&#x5B;0]=this.setSketchFile(&quot;..\/..\/..\/resources\/Data\/camera_para.dat&quot;, URLLoaderDataFormat.BINARY);\/\/0\r\n\t\t\tthis._fid&#x5B;1]=this.setSketchFile(&quot;..\/..\/..\/resources\/Data\/patt.hiro&quot;, URLLoaderDataFormat.TEXT);\/\/1\r\n\t\t}\r\n\r\n\t\tpublic override function main():void\r\n\t\t{\r\n\t\t\t\/\/webcam\r\n\t\t\tvar webcam:Camera = Camera.getCamera();\r\n\t\t\tif (!webcam) {\r\n\t\t\t\tthrow new Error('No webcam!!!!');\r\n\t\t\t}\r\n\t\t\twebcam.setMode(_CAM_W, _CAM_H, 30);\r\n\t\t\tthis._video = new Video(_CAM_W, _CAM_H);\r\n\t\t\tthis._video.attachCamera(webcam);\t\t\t\r\n\t\t\t\/\/FLMarkerSystem\r\n\t\t\tvar cf:FLARMarkerSystemConfig = new FLARMarkerSystemConfig(this.getSketchFile(this._fid&#x5B;0]),_CAM_W, _CAM_H);\/\/make configlation\r\n\t\t\tthis._ss = new FLARSensor(new NyARIntSize(_CAM_W, _CAM_H));\r\n\t\t\tthis._ms = new FLARPV3DMarkerSystem(cf);\r\n\t\t\tthis.marker_id = this._ms.addARMarker_2(this.getSketchFile(this._fid&#x5B;1]), 16, 25, 80); \/\/register AR Marker\r\n\t\t\t\r\n\t\t\t\/\/setup PV3d\r\n\t\t\tvar light:PointLight3D = new PointLight3D();\r\n\t\t\tlight.x = 0;\r\n\t\t\tlight.y = 1000;\r\n\t\t\tlight.z = -1000;\t\t\t\r\n\t\t\tvar viewport3d:Viewport3D = new Viewport3D(_CAM_W,_CAM_H);\r\n\t\t\tviewport3d.scaleX = 1;\r\n\t\t\tviewport3d.scaleY = 1;\r\n\t\t\tviewport3d.x = -4; \/\/ 4pix ???\r\n\t\t\tthis.addChild(viewport3d);\r\n\t\t\t\/\/3d object\r\n\t\t\tthis.marker_node = PV3DHelper.createFLARCube(light,80,0xff22aa, 0x75104e);\r\n\t\t\tthis.marker_node.visible = false;\r\n\t\t\t\/\/scene\r\n\t\t\tvar s:Scene3D = new Scene3D();\r\n\t\t\ts.addChild(this.marker_node);\r\n\t\t\tthis._render=new LazyRenderEngine(s,this._ms.getPV3DCamera(),viewport3d);\r\n\t\t\t\r\n\t\t\t\/\/start camera\r\n\t\t\tthis.addEventListener(Event.ENTER_FRAME, _onEnterFrame);\r\n\t\t}\r\n\t\t\/**\r\n\t\t * MainLoop\r\n\t\t * @param\te\r\n\t\t *\/\r\n\t\tprivate function _onEnterFrame(e:Event = null):void\r\n\t\t{\r\n\t\t\tthis._ss.update_2(this._video);\/\/update sensor status\r\n\t\t\tthis._ms.update(this._ss);\/\/update markersystem status\r\n\t\t\tif (this._ms.isExistMarker(marker_id)){\r\n\t\t\t\tthis.marker_node.visible = true;\r\n\t\t\t\tthis._ms.getPv3dMarkerMatrix(this.marker_id, this.marker_node.transform);\r\n\t\t\t}else {\r\n\t\t\t\tthis.marker_node.visible = false;\r\n\t\t\t}\r\n\t\t\tthis.bitmap.bitmapData.draw(this._video);\r\n\t\t\tthis._render.render();\r\n\t\t}\r\n\t}\r\n}\r\n<\/pre>\n<h2>\u89e3\u8aac<\/h2>\n<ul>\n<li>\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u3001Sprite\u3092\u7d99\u627f\u3057\u305fFLSketch\u30af\u30e9\u30b9\u3092\u30d9\u30fc\u30b9\u30af\u30e9\u30b9\u306b\u3057\u3066\u3044\u307e\u3059\u3002FLSketch\u306f\u3001\u30d5\u30a1\u30a4\u30eb\u30ed\u30fc\u30c9\u306b\u95a2\u3059\u308b\u30b5\u30fc\u30d3\u30b9\u95a2\u6570\u3068\u3001\u30b7\u30fc\u30b1\u30f3\u30b9\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/li>\n<li>FLSketch\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001setup\u95a2\u6570\u2192main\u95a2\u6570\u306e\u9806\u3067\u95a2\u6570\u304c\u30b3\u30fc\u30eb\u3055\u308c\u307e\u3059\u3002<\/li>\n<li>setup\u95a2\u6570\u3067\u306f\u3001\u5916\u90e8\u30d5\u30a1\u30a4\u30eb\u306e\u4e88\u7d04\u95a2\u6570&#8221;setSketchFile&#8221;\u3092\u4f7f\u3046\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\u3002\u3053\u306e\u95a2\u6570\u306bURL\u3092\u6e21\u3057\u3066\u304a\u304f\u3068\u3001main\u95a2\u6570\u306e\u4e2d\u3067\u305d\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u53d6\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\u3002<\/li>\n<li>main\u95a2\u6570\u3067\u306f\u3001FLARToolKit,PaperVision3D,Web\u30ab\u30e1\u30e9\u306e\u6e96\u5099\u3092\u3057\u307e\u3059\u3002\u6700\u5f8c\u306b\u3001\u30ab\u30e1\u30e9\u753b\u50cf\u306e\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u30a4\u30d9\u30f3\u30c8\u3092\u3001_onEnterFrame\u306b\u8a2d\u5b9a\u3057\u307e\u3059\u3002<\/li>\n<li>_onEnterFrame\u306e\u4e2d\u3067\u306f\u3001\u30de\u30fc\u30ab\u304c\u898b\u3064\u304b\u3063\u305f\u304b\u3069\u3046\u304b\u3092\u5224\u5b9a\u3057\u3001\u8868\u793a\u7269\u306eON\/OFF\u3092\u5207\u66ff\u3048\u307e\u3059\u3002<\/li>\n<\/ul>\n<p>\u7d04140\u884c\u3068\u5c11\u3005\u9577\u3044\u3067\u3059\u304c\u3001\u5f93\u6765\u3068\u6bd4\u8f03\u3059\u308b\u3068\u3001\u30b9\u30c3\u30ad\u30ea\u3057\u305f\u304b\u306a\u3068\u601d\u3044\u307e\u3059\u3002\u307e\u305f\u3001MarkerSystem\u306f\u8907\u6570\u30de\u30fc\u30ab\/ID\u30de\u30fc\u30ab\u6df7\u5728\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u308b\u306e\u3067\u3001\u5f93\u6765\u3088\u308a\u3082\u697d\u306b\u5b9f\u88c5\u3067\u304d\u308b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306fNyARToolkitAS3\u30ea\u30dd\u30b8\u30c8\u30ea\u306etrunk\u306b\u3042\u308a\u307e\u3059\u304c\u3001\u307e\u3060\u4f5c\u696d\u4e2d\u306a\u306e\u3067\u6642\u3005\u52d5\u304d\u307e\u305b\u3093\u3002\u52d5\u4f5c\u3059\u308b\u3082\u306e\u304c\u5fc5\u8981\u306a\u65b9\u306f\u3001@nyatla\u307e\u3067\u3054\u9023\u7d61\u304f\u3060\u3055\u3044\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>FLARToolKitV4\u306b\u4f7f\u3046\u305f\u3081\u306eNyARToolkitAS3\u304c\u3067\u304d\u307e\u3057\u305f\u3002\u3067\u3001FLARToolKitV4\u3092\u4f5c\u3063\u3066\u3044\u307e\u3059\u3002 \u65b0\u3057\u3044FLARToolKit\u306f\u3001NyARToolKitV4\u306b\u5b9f\u88c5\u3057\u305fMarkerSystem [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22,6,13],"tags":[],"_links":{"self":[{"href":"http:\/\/nyatla.jp\/nyartoolkit\/wp\/index.php?rest_route=\/wp\/v2\/posts\/592"}],"collection":[{"href":"http:\/\/nyatla.jp\/nyartoolkit\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/nyatla.jp\/nyartoolkit\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/nyatla.jp\/nyartoolkit\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/nyatla.jp\/nyartoolkit\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=592"}],"version-history":[{"count":8,"href":"http:\/\/nyatla.jp\/nyartoolkit\/wp\/index.php?rest_route=\/wp\/v2\/posts\/592\/revisions"}],"predecessor-version":[{"id":594,"href":"http:\/\/nyatla.jp\/nyartoolkit\/wp\/index.php?rest_route=\/wp\/v2\/posts\/592\/revisions\/594"}],"wp:attachment":[{"href":"http:\/\/nyatla.jp\/nyartoolkit\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=592"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/nyatla.jp\/nyartoolkit\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=592"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/nyatla.jp\/nyartoolkit\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=592"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}