WEBマスター目指して日々勉強!!
papervision3dではベクターテキストを使用することができるが
デフォルトで使用できるフォントは、下記に限られる。 ・HelveticaBold ・HelveticaLight ・HelveticaMedium ・HelveticaRoman まず前提として 下記のクラスでText3Dを使用できること確認。 ------------------------------------------------------------------- package { import flash.events.*; import flash.utils.*; import org.papervision3d.materials.*; import org.papervision3d.materials.special.*; import org.papervision3d.typography.fonts.*; import org.papervision3d.typography.*; import org.papervision3d.view.*; public class Main extends BasicView { public function Main():void { //マテリアルを作成 var material:Letter3DMaterial = new Letter3DMaterial(0x006699); material.doubleSided = true; //ベクターテキストを作成 var font:HelveticaBold = new HelveticaBold(); //ここで表示するフォントの種類を設定 var text3D:Text3D = new Text3D("Papervision3D World", font, material); scene.addChild(text3D); startRendering(); } } } ------------------------------------------------------------------- 「var font:HelveticaBold = new HelveticaBold()」の部分でフォントを変えられるわけです。 そこで、任意のフォントをベクターテキストにする方法をメモる。 大きな手順として、下記の工程を行う。 ●ベクターテキストに使用したいフォントをクラスファイル(.as)にする ●フォントをクラスファイルを編集 ●実行するasを作成 では具体的に見ていこう
(1) FIVe3D(http://five3d.mathieu-badimon.com/)のサイトから「Make a new typography file」をダウンロードし解凍
(2) 解凍した「Make a new typography file.swf」をWindowSWFフォルダ内 「C:\Users\XXXXX\AppData\Local\Adobe\Flash CS3\ja\Configuration\WindowSWF」(vista)に入れる (3) FLASH(CS3で確認)を再起動 (4) 新規ドキュメント作成、保存 (5) ウィンドウ>その他のパネル>Make a new typography fileを開く (6) 任意のフォントを選択 (7) 日本語を使いたい場合は、Manual selectionにチェックをし テキストエリアに表示したい日本語ほタイプする (8) Meyrio.asファイルを生成 ※今回はメイリオを表示してみます。(保存した.flaとどう階層に保存されます) (9) 生成されたクラスファイルを、クラスパスの直下「クラスパス/five3D/typography」に入れる (10) Meyrio.asを編集(太字を編集) ■Meyrio.as ------------------------------------------------------------------------------- package five3D.typography { import org.papervision3d.typography.Font3D; public class Meyrio extends Font3D{ static public var __motifs:Object = {}; static public var __widths:Object = {}; static public var __heights:Number = 150; static public var __initialized:Boolean = false; static public function initialize():void { initializeMotifs(); initializeWidths(); __initialized = true; } static private function initializeMotifs():void { ... ... ... } static private function initializeWidths():void { ... ... ... } override public function get motifs():Object{ if(!__initialized)initialize(); return __motifs; } override public function get widths():Object{ if(!__initialized)initialize(); return __widths; } override public function get height():Number{ if(!__initialized)initialize(); return __heights; } } } ------------------------------------------------------------------------------- (11) そしてメインのクラス内で実行すればOK。 ■main.as(ドキュメントクラス) ------------------------------------------------------------------------------- package { import flash.events.* import five3D.typography.Meyrio; import org.papervision3d.typography.Text3D; import org.papervision3d.view.BasicView; import org.papervision3d.typography.Font3D; import org.papervision3d.materials.special.Letter3DMaterial; public class Main extends BasicView { private var text3D:Text3D; private var textMaterial:Letter3DMaterial; public function Main():void { initText(); startRendering(); } private function initText():void { var meyrio:Meyrio = new Meyrio(); textMaterial = new Letter3DMaterial(0xFFFFFF,1); textMaterial.doubleSided = true; text3D = new Text3D("あいうえお", meyrio, textMaterial); scene.addChild(text3D); } override protected function onRenderTick(e:Event = null):void { super.onRenderTick(e); text3D.yaw(0.8); } } } ------------------------------------------------------------------------------- 今回はサンプルSWFを作りました >>[DEMO] pv3d Flve3d Text3D 任意のフォント表示 スポンサーサイト
|


| ホーム |