CodePenで作るAltspaceVRアプリ

[前回](http://qiita.com/afjk/items/0914b2ec8ff580d73136)、Webサーバー上でAltspaceSDKを動作させる方法を解説しました。
本記事では、codepenでのAltspaceVRアプリ作成方法を説明します。
公式の[Deveroping with CodePen](https://developer.altvr.com/codepen/)＋αな内容です。
#はじめに
[CodePen](http://codepen.io/)とは、ブラウザ上でJavaScriptやHTML、CSSの編集が可能なWebサービスです。
特徴
・変更がリアルタイムで反映される。
・他のプロジェクトをForkして自分用にプロジェクトを作れる。(AltspaceVRのサンプルもあります)
・AltspaceSDKが使える。AltspaceVR内のブラウザで操作可能で、変更はVR内で即反映されます。

#CodePenでのAltspaceVRアプリ開発
公式ドキュメントはこのあたり
https://developer.altvr.com/get-started/ 
https://developer.altvr.com/codepen/
  
VR内でもコーディングできますが、HMDを繋がずウィンドウモードでAltspaceVRを起動、同時にブラウザでCodePenを編集＆Saveし、AltspaceVRのブラウザでそのurlを指定&リロードすると良い感じです。
![AltspaceVRライブコーディング.png](https://qiita-image-store.s3.amazonaws.com/0/43734/d8d654e5-475e-7427-9472-9ab8eb4ee73d.png)
#AltspaceVRのサンプルをForkして自分用のプロジェクトを作成＆表示するまでの流れ
１．CodePenアカウントを作る
https://codepen.io/signup/free 
GitHUBアカウントが使えます。

2．AltspaceVRアプリのサンプルを選択
http://codepen.io/team/altspacevr/
HelloVRをクリックします。 
![image](https://qiita-image-store.s3.amazonaws.com/0/43734/de99c8e1-98fc-77d6-759e-41958a0cd5a4.png)

3．Forkボタンを押し、自分用のプロジェクトを作る
A PEN BY [自分のアカウント名]となっていることを確認してください。これで好きに変更できます。
HTMLやCSSのウインドウは消します。
下のView　Hello VR in AltspaceVRの部分も、不要なのでJSのウィンドウを広げます。
![image](https://qiita-image-store.s3.amazonaws.com/0/43734/1e646c33-7e3c-ff35-8ace-a153feb8c155.png)

4．AltspaceVRで表示する
このURLをコピーして、AltspaveVR内のブラウザのurl欄にペーストすると、くるくる回る四角形が表示されます。
http://codepen.io/ 自分のアカウント/pen/XXXXXX?editors=001
![image](https://qiita-image-store.s3.amazonaws.com/0/43734/0e2d16a0-04e2-af57-ad4f-d3158cb6e607.png)

5.ウィンドウ部分を非表示にする
ChangeView>Full Pageを選択。
![image](https://qiita-image-store.s3.amazonaws.com/0/43734/92719423-0a0e-b449-b6f7-0820ed3f3e64.png)

公開スペース(白い角がある、アプリが置ける立方体スペース)へBeemすれば他の人も見ることが出来ます。

#CodePenで3DオブジェクトをAltspaceVRに持ち込む
CodePenから画像ファイルや3Dモデルのobjファイル等のリソースを使用するには、Hostingサービスのある[Pro版へのアップグレード](https://codepen.io/signup/plans/)の他、Dropbox上の共有ファイルでもアクセス可能です。

・ChessサンプルをForkしてから揚げを表示した例
![image](https://qiita-image-store.s3.amazonaws.com/0/43734/777265f0-69e3-706d-a5e1-faaf752c09d3.png)

DropBoxへ表示したい3Dモデルを格納
![image](https://qiita-image-store.s3.amazonaws.com/0/43734/7a6c7a80-1dae-566e-ea6b-dfbc27317d9d.png)

変更箇所は[前回](http://qiita.com/afjk/items/0914b2ec8ff580d73136)と同様。

```js:chess.html
	var CONFIG = Object.freeze({//constants
		boardSize: 700,//chess piece models are scaled to fit the board
		tableHeight: 0,//chess board is raised to be on top of table
		dragPlaneSize: 1000,//boundary for dragging pieces, should be larger than boardSize
		pieces: {
// kingのファイル名をkaraage_vsへ
			king: {modelFile: 'karaage_vs', count: 1},
			queen: {modelFile: 'queen', count: 1},
			bishop: {modelFile: 'bishop', count: 2},
			knight: {modelFile: 'knight', count: 2},
			rook: {modelFile: 'rook', count: 2},
			pawn: {modelFile: 'pawn', count: 8}
		},
		pieceWidth: 16,
		board: {modelFile: 'board', width: 50, height: 1},
// dropboxの公開フォルダの3Dモデルを置いたURLを指定。
		directory: 'https://dl.dropboxusercontent.com/u/10402228/models/chess',

	});
```
このCodePenはこちら。
http://codepen.io/afjk/pen/vNJOar

#追記
サクラサーバー上のファイルでは、CodePenからアクセスするとクロスドメインのアクセス制限により読み込めませんでした。
>クロスオリジン要求をブロックしました: 同一生成元ポリシーにより、http://afjk.sakura.ne.jp/xxxx/models/chess/karaage_vs.obj にあるリモートリソースの読み込みは拒否されます (理由: CORS ヘッダ 'Access-Control-Allow-Origin' が足りない)。

対策をご存知の方、教えていただけると幸いです。