<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>荒巻オンライン3 本拠地 &#187; Papervision3D</title>
	<atom:link href="http://scaltinof.net/?feed=rss2&#038;tag=papervision3d" rel="self" type="application/rss+xml" />
	<link>http://scaltinof.net</link>
	<description>荒巻スカルチノフのP2Pでオープンソースなアバターチャット　荒巻オンライン3のプロジェクトWebページです。</description>
	<lastBuildDate>Sun, 11 Oct 2009 17:15:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>開発記録 2009/02/25</title>
		<link>http://scaltinof.net/?p=184</link>
		<comments>http://scaltinof.net/?p=184#comments</comments>
		<pubDate>Wed, 25 Feb 2009 14:08:21 +0000</pubDate>
		<dc:creator>スーパーバッカー</dc:creator>
				<category><![CDATA[荒巻オンライン3]]></category>
		<category><![CDATA[Papervision3D]]></category>
		<category><![CDATA[ver3.00β4]]></category>
		<category><![CDATA[本体]]></category>

		<guid isPermaLink="false">http://backeros.if.land.to/aramaki_blog/?p=184</guid>
		<description><![CDATA[開発記録

マップとの当たり判定を作成中
こんな感じ
package jp.sourceforge.aramaki.objects.maps {
	import __AS3__.vec.Vector;
	import j [...]]]></description>
			<content:encoded><![CDATA[<h2>開発記録</h2>
<ul>
<li>マップとの当たり判定を作成中</li>
<li>こんな感じ
<p>package jp.sourceforge.aramaki.objects.maps {<br />
	import __AS3__.vec.Vector;</p>
<p>	import jp.sourceforge.aramaki.objects.maps.CollisionResult;</p>
<p>	import org.papervision3d.core.geom.renderables.Triangle3D;<br />
	import org.papervision3d.core.math.Number3D;<br />
	import org.papervision3d.objects.DisplayObject3D;</p>
<p>	public class CollisionInfo {<br />
		/**<br />
		 * 面配列<br />
		 */<br />
		private var faces:Vector.&amp;lt;face&amp;gt;=new Vector.&amp;lt;face&amp;gt;;</p>
<p>		/**<br />
		 * CollisionResult<br />
		 *<br />
		 * 当たり判定を取るたびに作ると遅いので、あらかじめ作っておいて使いまわす<br />
		 */<br />
		private var collisionResult:CollisionResult=new CollisionResult;</p>
<p>		/**<br />
		 * どう見てもコンストラクタ<br />
		 *<br />
		 * DisplayObject3Dから当たり判定情報を生成<br />
		 *<br />
		 * @param obj DisplayObject3D<br />
		 */<br />
		public function CollisionInfo(obj:DisplayObject3D) {<br />
			generateCollisionInfo(obj);<br />
		}</p>
<p>		/**<br />
		 * DisplayObject3Dから当たり判定情報を生成<br />
		 *<br />
		 * @param obj DisplayObject3D<br />
		 */<br />
		private function generateCollisionInfo(obj:DisplayObject3D):void {<br />
			for each(var face:Triangle3D in obj.geometry.faces) {<br />
				faces.push(new Face(face.v0.toNumber3D(),face.v1.toNumber3D(),face.v2.toNumber3D(),face.faceNormal));<br />
			}</p>
<p>			//子オブジェクトも処理<br />
			for each(var child:DisplayObject3D in obj.children) {<br />
				generateCollisionInfo(child);<br />
			}<br />
		}</p>
<p>		/**<br />
		 * 当たり判定情報と線分で当たり判定を取る<br />
		 *<br />
		 * @param lineStart 線分の始点<br />
		 * @param lineEnd 線分の終点<br />
		 * @return 当たっていたらCollisionResult、当たっていなかったらnullを返す<br />
		 */<br />
		private function collide(lineStart:Number3D,lineEnd:Number3D):CollisionResult {<br />
			for each(var face:Face in faces) {<br />
				var crossPoint:Number3D=face.collide(lineStart,lineEnd);</p>
<p>				if (crossPoint) {<br />
					collisionResult.internal::crossPoint=crossPoint;<br />
					collisionResult.internal::hitFace=face;</p>
<p>					return collisionResult;<br />
				}<br />
			}</p>
<p>			return null;<br />
		}<br />
	}<br />
}</p>
<p>package jp.sourceforge.aramaki.objects.maps {<br />
	import org.papervision3d.core.math.Number3D;</p>
<p>	public class Face {<br />
		/**<br />
		 * 頂点<br />
		 */<br />
		private var v0:Number3D;<br />
		/**<br />
		 * 頂点<br />
		 */<br />
		private var v1:Number3D;<br />
		/**<br />
		 * 頂点<br />
		 */<br />
		private var v2:Number3D;<br />
		/**<br />
		 * 面法線<br />
		 */<br />
		private var normal:Number3D;</p>
<p>		/**<br />
		 * コンスト☆ラクタ<br />
		 *<br />
		 * @param v0 頂点<br />
		 * @param v1 頂点<br />
		 * @param v2 頂点<br />
		 * @param normal 面法線<br />
		 */<br />
		public function Face(v0:Number3D,v1:Number3D,v2:Number3D,normal:Number3D) {<br />
			this.v0=v0;<br />
			this.v1=v1;<br />
			this.v2=v2;<br />
			this.normal=normal;<br />
		}</p>
<p>		/**<br />
		 * 面と線分で当たり判定を取る<br />
		 *<br />
		 * @param lineStart 線分の始点<br />
		 * @param lineEnd 線分の終点<br />
		 * @return 当たっていたら交点、当たっていなかったらnullを返す<br />
		 */<br />
		public function collide(lineStart:Number3D,lineEnd:Number3D):Number3D {<br />
			//TODO<br />
			return null;<br />
		}<br />
	}<br />
}</p>
<p>package jp.sourceforge.aramaki.objects.maps {<br />
	import jp.sourceforge.aramaki.objects.maps.Face;</p>
<p>	import org.papervision3d.core.math.Number3D;</p>
<p>	public class CollisionResult {<br />
		/**<br />
		 * @private<br />
		 */<br />
		private var _hitFace:Face;<br />
		/**<br />
		 * @private<br />
		 */<br />
		private var _crossPoint:Number3D;</p>
<p>		/**<br />
		 * 当たった面<br />
		 */<br />
		public function get hitFace():Face {<br />
			return _hitFace;<br />
		}</p>
<p>		/**<br />
		 * @private<br />
		 */<br />
		internal function set hitFace(value:Face):void {<br />
			_hitFace=value;<br />
		}</p>
<p>		/**<br />
		 * 交点<br />
		 */<br />
		public function get crossPoint():Number3D {<br />
			return _crossPoint;<br />
		}</p>
<p>		/**<br />
		 * @private<br />
		 */<br />
		internal function set crossPoint(value:Number3D):void {<br />
			_crossPoint=value;<br />
		}<br />
	}<br />
}</p>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://scaltinof.net/?feed=rss2&amp;p=184</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>開発記録 2009/02/23</title>
		<link>http://scaltinof.net/?p=171</link>
		<comments>http://scaltinof.net/?p=171#comments</comments>
		<pubDate>Mon, 23 Feb 2009 15:00:56 +0000</pubDate>
		<dc:creator>スーパーバッカー</dc:creator>
				<category><![CDATA[荒巻オンライン3]]></category>
		<category><![CDATA[Papervision3D]]></category>
		<category><![CDATA[ver3.00β4]]></category>
		<category><![CDATA[本体]]></category>

		<guid isPermaLink="false">http://backeros.if.land.to/aramaki_blog/?p=171</guid>
		<description><![CDATA[開発記録

マップ表示
Papervision3Dを最新版に変更
最新版にあわせてコードを書き換え

Papervision3Dパッチメモ
org.papervision3d.objects.parsers.DAEの
m [...]]]></description>
			<content:encoded><![CDATA[<h2>開発記録</h2>
<ul>
<li>マップ表示</li>
<li>Papervision3Dを最新版に変更<br />
最新版にあわせてコードを書き換え</li>
</ul>
<h2>Papervision3Dパッチメモ</h2>
<p>org.papervision3d.objects.parsers.DAEの</p>
<p>material = new ColorMaterial(buildColor(lambert.diffuse.color));</p>
<p>を</p>
<p>material = new ColorMaterial(buildColor(lambert.diffuse.color),lambert.diffuse.color[3]);</p>
<p>に変更</p>
<h2>スクリーンショット</h2>
<p><a href="http://scaltinof.net/wp-content/uploads/2009/02/aramaki_2009_02_23.png" rel="lightbox"><img class="alignnone size-thumbnail wp-image-178" title="aramaki_2009_02_23" src="http://scaltinof.net/wp-content/uploads/2009/02/aramaki_2009_02_23-150x150.png" alt="aramaki_2009_02_23" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://scaltinof.net/?feed=rss2&amp;p=171</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
