BDelphi
VR-Studio(tm), UC-3DVR/Road, UC-win/Road SDK•• VR-Studio, UC-win/Road• UC-win/Road SDK

2FORUM 8 Company profile
FORUM8. Co., Ltd,◎◎

UCUC-1

1981

12,524 2009.4.17◎◎/◎4

FORUM 8 Company profile
FORUM8(China)
Shanghai China

FORUM 8 (NZ)

FORUM 8

New Zealand

Japan

Tokyo
NagoyaFukuoka

Christ Church

Osaka
Miyazaki

FORUM8 representative
officeLondon office Beijing
Thai land New!
Singapore
New Delhi
SydneyFORUM8 AZ (Arizona) New!
5VR-Studio(tm), UC-win/Road

VRVRwin/Road1999
1999
2000
2001
2002
2002

2
452911341

VR

★2008

A
7

UCUC-win/Road Configuration

8

★

9

UCUC-win/Road

DEMONSTRATION•
http://vr.forum8.co.jp/

10VR-Studio

2006-120249

VR-Studio
D Stereo View
Multi User
Large Scale
Multiple Realties

Multi Core / CPU
Enhanced Traffic simulation
Advanced Shading Lighting
Multi Modal Editors

11UC-win/Road SDK
3DVR• UC-win/Road S• UC-win/Road• UC-win/Road• Delphi Interface

API••• UC-win/Road
•

13

SDK

UCwinRoad.exe(UC-win/Road)

Plugins¥Plugin1.bpl()
Plugins¥Plugin2.bpl()

プラグインロード処理

UCwinRoad.exe(UC-win/Road)
Plugin1.bpl
Plugin2.bpl※ UC-win/Road
14

UCUC-win/Road SDK• UC-win/Road 3.4• APIDelphi 2007™

• API• API••15

UCUC-win/Road API••3D• GUI•••••

16

UCUC-win/Road API

•

VR•
•
•

•
•
• OpenGL

17

UCUC-win/Road API• UC-win/Road
•

•
•

•

API

18

UCUC-win/Road API
UC-win/Road API

ON/OFF

19

UCUC-win/Road SDK

••
•
•
•
•
•
•
•
•
•

IP

★
D★
★

D★…

20

1 3D
DUC-win/RoadUC-win/Road VR

DD→ X,Y,Z→ X,Y,Z→ X,Y21

1 3D3D→ X,Y,Z→ X,Y,ZY
0,0,0X
Z→ X,YY

1,10,10,0X

0,01,022

1 3D

11D
UC-win/Road VR

DX,Y,Z
1: CreateModel.pas
procedure AddModel(project : IF8ProjectForRoad;
IF8ProjectForRoad filename : WideString);
WideString
project : UC-win/Roadfilename :23

1 3D
SDK

1Delphi

TStringList (+ function LoadFromFile →+ property Text : String →+ property CommaText : String →+ property Lines[index : integer] : String →+ property Count : Integer →IF8Project (+ function CreateThreeDModel : IF8ThreeDeeStudio →1+ function MakeModel ( currentModel : IF8ThreeDeeStudio ; xx , yy : double ) : IF8ModelInstancecurrentModel :xx :_x
yy :_z+ property refreshModels : boolean →

True

24

1 3D

1IF8ThreeDeeStudio ( D+ procedure AddTrianglesToGroup ( groupIndex : integer; triangles : F8TriangleArrayType ) →groupIndex →Triangles →+ procedure Center →+ property name : WideString →F8TriangleArrayType = array of F8TriangleType →F8TriangleType = array [ 1 .. 3 ] of GLPointType → 3
GLPointType = array [ 1 .. 4 ] of GLfloat →

25

1 3D
2UC-win/Road VR

2D

1: CreateModel.pas
procedure AddModelWithTexture(project : IF8ProjectForRoad;
IF8ProjectForRoad filename :WideString);
WideString
project : UC-win/Roadfilename :

26

1 3D

2SDKDelphi

IF8ThreeDeeStudio ( D+ procedure AddTexturedTriangleToGroup ( groupIndex : integer ; triangles : F8TexturedTriangleArrayType ) →groupIndex →Triangles →+ property groupHas3DSTextures [ index : integer ] : boolean →+ property groupUse3DSTextureCoord [ index : integer ] : boolean →

True
True

F8TexturedTriangleArrayType = array of F8TexturedTriangle →F8TexturedTriangle = record
vertex : F8TriangleType; →normal : F8TriangleType; →textureUV : F8TriangleType; →
end ;

27

2UC-win/Road

•D
••

→
1
X,Y,Z
X
5000
5001
5001

15001 5001

TABY
5000
5000
5001

•Z
2020205000 5000

5001 50001•••

0.5:28

229

2SDK

Delphi

IF8ProjectForRoad (+ property numberOfCharacters : Integer; →md3
md3+ property character [i : integer] : IF8QuakeIII; →+ function CreateCharacterInstance (model : IF8QuakeIII; const transient : boolean) : IF8CharacterInstance; →md3
model → md3
transient →True+ procedure DeleteCharacterInstance (character : IF8CharacterInstance); →character →+ procedure DeleteCharacterInstance ( i : Integer);i →30

2IF8CharacterInstance (+ property instancePosition : GLPointType; →+ property onMove : OnMoveEventProc; →+ property onDestroy : OnDestroyEventProc; →+ property yawAngle : double; →+ property pitchAngle : double; →+ property rollAngle : double; →+ property walkForward : boolean → md3
False

OpenGL

True+ OnMoveEventProc = procedure (dTimeInSeconds : double; Instance : IF8MovingObjectInstance) of Object; →dTimeInSecond →Instance →+ OnDestroyEventProc = procedure (Instance : IF8MovingObjectInstance) of Object; →Instance →31

2
OpenGL

32

2

X0,Y0

X1,Y1
Δ =0.5s

δX,Y+δ
t=0
X0,Y0,X1,Y1
X=X0+(X1-X0) * (t+δt)/Δ
Y=Y0+(Y1-Y0) * (t+δt)/Δ
t= t+δt33

3SDK Delphi
IF8LogServer (+ procedure RegisterOnLogProcedure(method: TMethod); →+ procedure UnRegisterOnLogProcedure(method: TMethod); →+ procedure StartLogs; →+ procedure StopLogs; →OnLogServerPushLogProc= procedure(dTimeInSeconds : double; instance : IF8DBObject; group : TLogExportOption) of Object;→dTimeInSecond →Instance →TLogExportOption = ( →_leoUsersVehicle,_leoDriverInFront,_leoSurroundingMovingObjects,_leoOtherMovingObjects//*//*//*//* _leoSurroundingVehicles.
.

);

34

3function Supports(const
const Instance: IInterface; const IID: TGUID; out Intf): Boolean;
Instance :
IID
Intf
True

Intf

IF8VehicleLogs
IF8InstanceLog35